app

Local-first trade for farms and co-ops
git clone https://radroots.dev/git/app.git
Log | Files | Refs | README | LICENSE

commit 017f95a6a2d1fc4c87e2c335c53255d989fcecfd
parent 17e9f67aa93e6b6562df827e3707bc5da1528eb7
Author: triesap <tyson@radroots.org>
Date:   Sun, 12 Apr 2026 04:57:54 +0000

launchers: use shared accounts bootstrap helpers

Diffstat:
Mcrates/launchers/android/src/storage.rs | 16+++++++---------
Mcrates/launchers/desktop/src/main.rs | 11++++++-----
Mcrates/launchers/ios/src/storage.rs | 16++++++----------
3 files changed, 19 insertions(+), 24 deletions(-)

diff --git a/crates/launchers/android/src/storage.rs b/crates/launchers/android/src/storage.rs @@ -1,16 +1,12 @@ -use radroots_studio_app_core::mobile_native_app_storage_layout; #[cfg(target_os = "android")] use radroots_studio_app_android_security::{ ANDROID_NOSTR_SERVICE, RadrootsAndroidKeystoreVault, resolve_radroots_base_root, }; +use radroots_studio_app_core::mobile_native_app_storage_layout; #[cfg(target_os = "android")] -use radroots_nostr_accounts::prelude::{ - RadrootsNostrAccountsManager, RadrootsNostrFileAccountStore, -}; +use radroots_nostr_accounts::prelude::RadrootsNostrAccountsManager; use radroots_runtime_paths::{RadrootsPaths, RadrootsPlatform}; use std::path::{Path, PathBuf}; -#[cfg(target_os = "android")] -use std::sync::Arc; fn app_paths_from_base_root(base_root: &Path) -> Result<RadrootsPaths, String> { Ok(mobile_native_app_storage_layout(RadrootsPlatform::Android, base_root)?.app_paths) @@ -36,9 +32,11 @@ pub(crate) fn accounts_path() -> Result<PathBuf, String> { #[cfg(target_os = "android")] pub(crate) fn accounts_manager() -> Result<RadrootsNostrAccountsManager, String> { - let store = Arc::new(RadrootsNostrFileAccountStore::new(accounts_path()?)); - let vault = Arc::new(RadrootsAndroidKeystoreVault::new(ANDROID_NOSTR_SERVICE)); - RadrootsNostrAccountsManager::new(store, vault).map_err(|source| source.to_string()) + RadrootsNostrAccountsManager::new_file_backed_with_vault( + accounts_path()?, + RadrootsAndroidKeystoreVault::new(ANDROID_NOSTR_SERVICE), + ) + .map_err(|source| source.to_string()) } pub(crate) fn app_data_root_from_base_root(base_root: &Path) -> Result<PathBuf, String> { diff --git a/crates/launchers/desktop/src/main.rs b/crates/launchers/desktop/src/main.rs @@ -21,11 +21,10 @@ use radroots_studio_app_core::{ use radroots_identity::RadrootsIdentity; #[cfg(target_os = "macos")] use radroots_nostr_accounts::prelude::{ - RadrootsNostrAccountsManager, RadrootsNostrFileAccountStore, RadrootsNostrSelectedAccountStatus, + RadrootsNostrAccountsManager, RadrootsNostrSelectedAccountStatus, }; use radroots_runtime_paths::{RadrootsPathResolver, RadrootsPaths}; use std::path::{Path, PathBuf}; -use std::sync::Arc; #[cfg(target_os = "macos")] use zeroize::Zeroizing; @@ -161,9 +160,11 @@ impl DesktopBackend { Self::ensure_private_directory_tree(parent)?; } - let store = Arc::new(RadrootsNostrFileAccountStore::new(accounts_path)); - let vault = Arc::new(RadrootsAppleKeychainVault::new_desktop(APPLE_NOSTR_SERVICE)); - RadrootsNostrAccountsManager::new(store, vault).map_err(|source| source.to_string()) + RadrootsNostrAccountsManager::new_file_backed_with_vault( + accounts_path, + RadrootsAppleKeychainVault::new_desktop(APPLE_NOSTR_SERVICE), + ) + .map_err(|source| source.to_string()) } #[cfg(target_os = "macos")] diff --git a/crates/launchers/ios/src/storage.rs b/crates/launchers/ios/src/storage.rs @@ -2,13 +2,9 @@ use radroots_studio_app_apple_security::{APPLE_NOSTR_SERVICE, RadrootsAppleKeychainVault}; use radroots_studio_app_core::mobile_native_app_storage_layout; #[cfg(target_os = "ios")] -use radroots_nostr_accounts::prelude::{ - RadrootsNostrAccountsManager, RadrootsNostrFileAccountStore, -}; +use radroots_nostr_accounts::prelude::RadrootsNostrAccountsManager; use radroots_runtime_paths::{RadrootsPaths, RadrootsPlatform}; use std::path::{Path, PathBuf}; -#[cfg(target_os = "ios")] -use std::sync::Arc; fn mobile_base_root_from_home(home: &Path) -> PathBuf { home.join("Library") @@ -45,11 +41,11 @@ pub(crate) fn app_data_root() -> Result<PathBuf, String> { #[cfg(target_os = "ios")] pub(crate) fn accounts_manager() -> Result<RadrootsNostrAccountsManager, String> { - let store = Arc::new(RadrootsNostrFileAccountStore::new(accounts_path()?)); - let vault = Arc::new(RadrootsAppleKeychainVault::new_device_local( - APPLE_NOSTR_SERVICE, - )); - RadrootsNostrAccountsManager::new(store, vault).map_err(|source| source.to_string()) + RadrootsNostrAccountsManager::new_file_backed_with_vault( + accounts_path()?, + RadrootsAppleKeychainVault::new_device_local(APPLE_NOSTR_SERVICE), + ) + .map_err(|source| source.to_string()) } fn accounts_path_from_home(home: &Path) -> Result<PathBuf, String> {