From 5d2a7d977f9b0a1604e106f4e2b0c2c9b89c3235 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 10 Nov 2022 11:53:58 +0100 Subject: Matrix: add settings page with join room and logout button --- src/plugins/Matrix.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/plugins/Matrix.cpp') diff --git a/src/plugins/Matrix.cpp b/src/plugins/Matrix.cpp index 82ca583..f79b10c 100644 --- a/src/plugins/Matrix.cpp +++ b/src/plugins/Matrix.cpp @@ -966,6 +966,34 @@ namespace QuickMedia { title = "Invites (0)"; } + PluginResult MatrixSettingsPage::submit(const SubmitArgs &args, std::vector &result_tabs) { + if(args.url == "join") { + result_tabs.push_back(Tab{create_body(), std::make_unique(program, matrix), create_search_bar("Enter room id...", SEARCH_DELAY_FILTER)}); + return PluginResult::OK; + } else if(args.url == "logout") { + matrix->logout(); + program->set_go_to_previous_page(); + return PluginResult::OK; + } else { + return PluginResult::ERR; + } + } + + PluginResult MatrixRoomInputPage::submit(const SubmitArgs &args, std::vector&) { + if(args.title.empty()) { + show_notification("QuickMedia", "Room id can't be empty", Urgency::CRITICAL); + return PluginResult::OK; + } + + if(matrix->join_room(args.title) == PluginResult::OK) { + show_notification("QuickMedia", "You joined " + args.title, Urgency::NORMAL); + program->set_go_to_previous_page(); + } else { + show_notification("QuickMedia", "Failed to join " + args.title, Urgency::CRITICAL); + } + return PluginResult::OK; + } + MatrixChatPage::MatrixChatPage(Program *program, std::string room_id, MatrixRoomsPage *rooms_page, std::string jump_to_event_id) : Page(program), room_id(std::move(room_id)), rooms_page(rooms_page), jump_to_event_id(std::move(jump_to_event_id)) { -- cgit v1.2.3