app

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

commit e46c61c61c9de9a031e2a9a05d4a1874d244ac44
parent 19234ef5e7315794e742fba4b79a7993d31cb935
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_app_core::mobile_native_app_storage_layout; #[cfg(target_os = "android")] use radroots_app_android_security::{ ANDROID_NOSTR_SERVICE, RadrootsAndroidKeystoreVault, resolve_radroots_base_root, }; +use radroots_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_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_app_apple_security::{APPLE_NOSTR_SERVICE, RadrootsAppleKeychainVault}; use radroots_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> {