commit 72c44bdf2d7ebbf8cdfb52ce99778b88e4e0d9fc
parent 34f0c3b0ce052b234ddc4683cc7ee5b52254ecdd
Author: kernelkind <kernelkind@gmail.com>
Date:   Thu,  5 Dec 2024 19:48:30 -0500
use new serialization
Signed-off-by: kernelkind <kernelkind@gmail.com>
Diffstat:
2 files changed, 23 insertions(+), 62 deletions(-)
diff --git a/src/app.rs b/src/app.rs
@@ -1,5 +1,5 @@
 use crate::{
-    accounts::{Accounts, AccountsRoute},
+    accounts::Accounts,
     app_creation::setup_cc,
     app_size_handler::AppSizeHandler,
     args::Args,
@@ -450,13 +450,19 @@ impl Damus {
             .as_ref()
             .map(|a| a.pubkey.bytes());
 
-        let columns = if parsed_args.columns.is_empty() {
-            if let Some(serializable_columns) = storage::load_columns(&path) {
-                info!("Using columns from disk");
-                serializable_columns.into_columns(&ndb, account)
+        let decks_cache = if parsed_args.columns.is_empty() {
+            if let Some(decks_cache) = storage::load_decks_cache(&path, &ndb) {
+                info!("Using decks cache from disk");
+                decks_cache
             } else {
-                info!("Could not load columns from disk");
-                Columns::new()
+                info!("Could read not decks cache from disk");
+                let mut cache = DecksCache::new_with_demo_config(&ndb);
+                for account in accounts.get_accounts() {
+                    cache.add_deck_default(account.pubkey);
+                }
+                set_demo(&mut cache, &ndb, &mut accounts, &mut unknown_ids);
+
+                cache
             }
         } else {
             let mut columns: Columns = Columns::new();
@@ -466,41 +472,18 @@ impl Damus {
                 }
             }
 
-            columns
-        };
-
-        let mut decks_cache = {
             let mut decks_cache = DecksCache::default();
-
             let mut decks = Decks::default();
             *decks.active_mut().columns_mut() = columns;
 
             if let Some(acc) = account {
                 decks_cache.add_decks(Pubkey::new(*acc), decks);
             }
-
             decks_cache
         };
 
         let debug = parsed_args.debug;
 
-        if get_active_columns(&accounts, &decks_cache)
-            .columns()
-            .is_empty()
-        {
-            if accounts.get_accounts().is_empty() {
-                set_demo(
-                    &path,
-                    &ndb,
-                    &mut accounts,
-                    &mut decks_cache,
-                    &mut unknown_ids,
-                );
-            } else {
-                get_active_columns_mut(&accounts, &mut decks_cache).new_column_picker();
-            }
-        }
-
         let app_rect_handler = AppSizeHandler::new(&path);
         let support = Support::new(&path);
 
@@ -659,7 +642,7 @@ fn render_damus_mobile(ctx: &egui::Context, app: &mut Damus) {
         if !app.columns().columns().is_empty()
             && nav::render_nav(0, app, ui).process_render_nav_response(app)
         {
-            storage::save_columns(&app.path, app.columns().as_serializable_columns());
+            storage::save_decks_cache(&app.path, &app.decks_cache);
         }
     });
 }
@@ -774,7 +757,7 @@ fn timelines_view(ui: &mut egui::Ui, sizes: Size, app: &mut Damus) {
             }
 
             if save_cols {
-                storage::save_columns(&app.path, app.columns().as_serializable_columns());
+                storage::save_decks_cache(&app.path, &app.decks_cache);
             }
         });
 }
@@ -829,36 +812,14 @@ pub fn get_decks_mut<'a>(accounts: &Accounts, decks_cache: &'a mut DecksCache) -
 }
 
 pub fn set_demo(
-    data_path: &DataPath,
+    decks_cache: &mut DecksCache,
     ndb: &Ndb,
     accounts: &mut Accounts,
-    decks_cache: &mut DecksCache,
     unk_ids: &mut UnknownIds,
 ) {
-    let demo_pubkey = *decks_cache.get_fallback_pubkey();
-    let columns = get_active_columns_mut(accounts, decks_cache);
-
-    {
-        let txn = Transaction::new(ndb).expect("txn");
-        accounts
-            .add_account(Keypair::only_pubkey(demo_pubkey))
-            .process_action(unk_ids, ndb, &txn);
-        accounts.select_account(0);
-    }
-
-    columns.add_column(crate::column::Column::new(vec![
-        crate::route::Route::AddColumn(ui::add_column::AddColumnRoute::Base),
-        crate::route::Route::Accounts(AccountsRoute::Accounts),
-    ]));
-
-    if let Some(timeline) =
-        timeline::TimelineKind::contact_list(timeline::PubkeySource::Explicit(demo_pubkey))
-            .into_timeline(ndb, Some(demo_pubkey.bytes()))
-    {
-        columns.add_new_timeline_column(timeline);
-    }
-
-    columns.add_new_timeline_column(Timeline::hashtag("introductions".to_string()));
-
-    storage::save_columns(data_path, columns.as_serializable_columns());
+    let txn = Transaction::new(ndb).expect("txn");
+    accounts
+        .add_account(Keypair::only_pubkey(*decks_cache.get_fallback_pubkey()))
+        .process_action(unk_ids, ndb, &txn);
+    accounts.select_account(accounts.num_accounts() - 1);
 }
diff --git a/src/storage/mod.rs b/src/storage/mod.rs
@@ -1,8 +1,8 @@
-mod columns;
+mod decks;
 mod file_key_storage;
 mod file_storage;
 
-pub use columns::{load_columns, save_columns};
+pub use decks::{load_decks_cache, save_decks_cache};
 pub use file_key_storage::FileKeyStorage;
 pub use file_storage::{delete_file, write_file, DataPath, DataPathType, Directory};