From 0b0ab1e5a451cdd6ae5fd2166314037c1997d292 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Fri, 21 May 2021 01:36:00 +0200 Subject: Jump to room when submitting notification --- plugins/Matrix.hpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'plugins/Matrix.hpp') diff --git a/plugins/Matrix.hpp b/plugins/Matrix.hpp index bcb4058..1c71733 100644 --- a/plugins/Matrix.hpp +++ b/plugins/Matrix.hpp @@ -213,7 +213,7 @@ namespace QuickMedia { bool message_contains_user_mention(const std::string &msg, const std::string &username); bool message_is_timeline(Message *message); - void body_set_selected_item(Body *body, BodyItem *selected_item); + void body_set_selected_item_by_url(Body *body, const std::string &url); std::string create_transaction_id(); enum class MatrixPageType { @@ -312,7 +312,7 @@ namespace QuickMedia { class MatrixRoomsPage : public Page { public: - MatrixRoomsPage(Program *program, Body *body, std::string title, MatrixRoomTagsPage *room_tags_page); + MatrixRoomsPage(Program *program, Body *body, std::string title, MatrixRoomTagsPage *room_tags_page, SearchBar *search_bar); ~MatrixRoomsPage() override; const char* get_title() const override { return title.c_str(); } @@ -330,14 +330,17 @@ namespace QuickMedia { void set_room_as_read(RoomData *room); + void clear_search(); + void clear_data(); MatrixQuickMedia *matrix_delegate = nullptr; - private: Body *body = nullptr; + private: std::string title; MatrixRoomTagsPage *room_tags_page = nullptr; MatrixChatPage *current_chat_page = nullptr; + SearchBar *search_bar; }; class MatrixRoomTagsPage : public Page { @@ -477,20 +480,21 @@ namespace QuickMedia { class MatrixNotificationsPage : public LazyFetchPage { public: - MatrixNotificationsPage(Program *program, Matrix *matrix, Body *notifications_body); + MatrixNotificationsPage(Program *program, Matrix *matrix, Body *notifications_body, MatrixRoomsPage *all_rooms_page); const char* get_title() const override { return "Notifications"; } - PluginResult submit(const std::string&, const std::string&, std::vector&) override { - return PluginResult::OK; - } + PluginResult submit(const std::string&, const std::string&, std::vector&) override; PluginResult get_page(const std::string &str, int page, BodyItems &result_items) override; PluginResult lazy_fetch(BodyItems &result_items) override; bool is_ready() override; + bool submit_is_async() override { return false; } + bool clear_search_after_submit() override { return true; } void add_notification(MatrixNotification notification); void set_room_as_read(RoomData *room); private: Matrix *matrix; Body *notifications_body; + MatrixRoomsPage *all_rooms_page; }; class Matrix { -- cgit v1.2.3