mirror of
https://github.com/greenart7c3/Amber.git
synced 2026-10-05 19:08:23 +00:00
refactor check for logged in account
This commit is contained in:
@@ -206,7 +206,7 @@ class MainActivity : AppCompatActivity() {
|
||||
CircularProgressIndicator()
|
||||
}
|
||||
} else {
|
||||
val npub = intent.getStringExtra("current_user")?.ifBlank { mainViewModel.getAccount() } ?: mainViewModel.getAccount()
|
||||
val npub = mainViewModel.getAccount(intent.getStringExtra("current_user"))
|
||||
|
||||
val accountStateViewModel: AccountStateViewModel =
|
||||
viewModel {
|
||||
@@ -218,11 +218,13 @@ class MainActivity : AppCompatActivity() {
|
||||
val currentAccount = LocalPreferences.currentAccount(context)
|
||||
if (currentAccount != null && npub != null && currentAccount != npub && npub.isNotBlank()) {
|
||||
if (npub.startsWith("npub")) {
|
||||
Log.d("Account", "Switching account to $npub")
|
||||
if (LocalPreferences.containsAccount(context, npub)) {
|
||||
accountStateViewModel.switchUser(npub, Route.IncomingRequest.route)
|
||||
}
|
||||
} else {
|
||||
val localNpub = Hex.decode(npub).toNpub()
|
||||
Log.d("Account", "Switching account to $localNpub")
|
||||
if (LocalPreferences.containsAccount(context, localNpub)) {
|
||||
accountStateViewModel.switchUser(localNpub, Route.IncomingRequest.route)
|
||||
}
|
||||
|
||||
@@ -24,14 +24,47 @@ class MainViewModel(val context: Context) : ViewModel() {
|
||||
val intents = MutableStateFlow<List<IntentData>>(listOf())
|
||||
var navController: NavHostController? = null
|
||||
|
||||
fun getAccount(): String? {
|
||||
fun getAccount(userFromIntent: String?): String? {
|
||||
val currentAccount = LocalPreferences.currentAccount(context)
|
||||
if (userFromIntent != null) {
|
||||
if (userFromIntent.startsWith("npub")) {
|
||||
if (LocalPreferences.containsAccount(context, userFromIntent)) {
|
||||
Log.d("MainViewModel", "getAccount: $userFromIntent")
|
||||
return userFromIntent
|
||||
}
|
||||
} else {
|
||||
val localNpub = Hex.decode(userFromIntent).toNpub()
|
||||
if (LocalPreferences.containsAccount(context, localNpub)) {
|
||||
Log.d("MainViewModel", "getAccount: $localNpub")
|
||||
return localNpub
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val pubKeys =
|
||||
intents.value.mapNotNull {
|
||||
it.event?.pubKey
|
||||
it.event?.pubKey ?: it.bunkerRequest?.currentAccount
|
||||
}.filter { it.isNotBlank() }
|
||||
|
||||
if (pubKeys.isEmpty()) {
|
||||
if (currentAccount != null && LocalPreferences.containsAccount(context, currentAccount)) {
|
||||
Log.d("MainViewModel", "getAccount: $currentAccount")
|
||||
return currentAccount
|
||||
}
|
||||
|
||||
if (pubKeys.isEmpty()) return null
|
||||
return Hex.decode(pubKeys.first()).toNpub()
|
||||
val acc = LocalPreferences.allSavedAccounts(context).firstOrNull()
|
||||
if (acc != null) {
|
||||
Log.d("MainViewModel", "getAccount: ${acc.npub}")
|
||||
return acc.npub
|
||||
} else {
|
||||
Log.d("MainViewModel", "getAccount: null")
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
val npub = Hex.decode(pubKeys.first()).toNpub()
|
||||
Log.d("MainViewModel", "getAccount: $npub")
|
||||
return npub
|
||||
}
|
||||
|
||||
fun showBunkerRequests(callingPackage: String?) {
|
||||
|
||||
@@ -38,7 +38,6 @@ import androidx.navigation.NavHostController
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import com.anggrayudi.storage.SimpleStorageHelper
|
||||
import com.greenart7c3.nostrsigner.BuildConfig
|
||||
import com.greenart7c3.nostrsigner.LocalPreferences
|
||||
import com.greenart7c3.nostrsigner.NostrSigner
|
||||
import com.greenart7c3.nostrsigner.R
|
||||
import com.greenart7c3.nostrsigner.models.IntentData
|
||||
@@ -89,20 +88,6 @@ fun AccountScreen(
|
||||
}
|
||||
}
|
||||
}
|
||||
val data =
|
||||
intents.firstOrNull {
|
||||
it.currentAccount.isNotBlank()
|
||||
}
|
||||
|
||||
data?.bunkerRequest?.let {
|
||||
if (it.currentAccount.isNotBlank()) {
|
||||
if (LocalPreferences.currentAccount(context) != it.currentAccount) {
|
||||
if (LocalPreferences.containsAccount(context, it.currentAccount)) {
|
||||
accountStateViewModel.switchUser(it.currentAccount, null)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val database = NostrSigner.getInstance().getDatabase(state.account.signer.keyPair.pubKey.toNpub())
|
||||
|
||||
Reference in New Issue
Block a user