chiark / gitweb /
Add a couple more primary timelines.
authorSimon Tatham <anakin@pobox.com>
Sat, 30 Dec 2023 11:25:27 +0000 (11:25 +0000)
committerSimon Tatham <anakin@pobox.com>
Sat, 30 Dec 2023 11:25:27 +0000 (11:25 +0000)
src/activity_stack.rs
src/file.rs
src/menu.rs
src/tui.rs

index 21d7af576d016e429cdeca54da147746a3ac28e0..ac3b252e0fde7c49f52b0f5f3a9bf0c9f929c957 100644 (file)
@@ -2,6 +2,8 @@
 pub enum NonUtilityActivity {
     MainMenu,
     HomeTimelineFile,
+    PublicTimelineFile,
+    LocalTimelineFile,
 }
 
 #[derive(PartialEq, Eq, Debug, Clone)]
index 181d4c876ae4c22fd240e1fdf30cc0de1e5c55a9..d24e04e93e6b5f3d4c66affd0103ee9aaf1deec7 100644 (file)
@@ -424,3 +424,21 @@ pub fn home_timeline(client: &mut Client) ->
         "HHHHHHHHHHHHHHHHHKH"))?;
     Ok(Box::new(file))
 }
+
+pub fn local_timeline(client: &mut Client) ->
+    Result<Box<dyn ActivityState>, ClientError>
+{
+    let file = FeedFile::new(client, FeedId::Local, ColouredString::general(
+        "Local public timeline   <L>",
+        "HHHHHHHHHHHHHHHHHHHHHHHHHKH"))?;
+    Ok(Box::new(file))
+}
+
+pub fn public_timeline(client: &mut Client) ->
+    Result<Box<dyn ActivityState>, ClientError>
+{
+    let file = FeedFile::new(client, FeedId::Public, ColouredString::general(
+        "Public timeline   <P>",
+        "HHHHHHHHHHHHHHHHHHHKH"))?;
+    Ok(Box::new(file))
+}
index b26d494b2b9158897c4dd0825de47a258ecc4542..edd434f3294240acc898736a88944019e21b0c86 100644 (file)
@@ -188,9 +188,11 @@ pub fn main_menu() -> Box<dyn ActivityState> {
         NonUtilityActivity::HomeTimelineFile.into()));
     menu.add_blank_line();
     menu.add_action(Pr('P'), "Public timeline (all servers)",
-                    LogicalAction::NYI);
+                    LogicalAction::Goto(
+                        NonUtilityActivity::PublicTimelineFile.into()));
     menu.add_action(Pr('L'), "Local public timeline (this server)",
-                    LogicalAction::NYI);
+                    LogicalAction::Goto(
+                        NonUtilityActivity::LocalTimelineFile.into()));
     menu.add_action(Pr('#'), "Timeline for a #hashtag",
                     LogicalAction::NYI);
     menu.add_blank_line();
index beaa9569faed2489420f5563c7f665f620d949f0..b36fa5022316c5a47751d0f5e9261e4da5c16a1a 100644 (file)
@@ -371,6 +371,10 @@ fn new_activity_state(activity: Activity, client: &mut Client) ->
             Ok(logs_menu_2()),
         Activity::NonUtil(NonUtilityActivity::HomeTimelineFile) =>
             home_timeline(client),
+        Activity::NonUtil(NonUtilityActivity::PublicTimelineFile) =>
+            public_timeline(client),
+        Activity::NonUtil(NonUtilityActivity::LocalTimelineFile) =>
+            local_timeline(client),
         _ => panic!("FIXME"),
     };