Fix crash when checking if the current account is the same as the event

This commit is contained in:
greenart7c3
2025-02-24 07:32:43 -03:00
parent d27b950cc7
commit 893e3eb7e2
@@ -26,27 +26,48 @@ class MainViewModel(val context: Context) : ViewModel() {
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
try {
if (!userFromIntent.isNullOrBlank()) {
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.bunkerRequest?.currentAccount
}.filter { it.isNotBlank() }
val pubKeys =
intents.value.mapNotNull {
it.event?.pubKey ?: it.bunkerRequest?.currentAccount
}.filter { it.isNotBlank() }
if (pubKeys.isEmpty()) {
if (pubKeys.isEmpty()) {
if (currentAccount != null && LocalPreferences.containsAccount(context, currentAccount)) {
Log.d("MainViewModel", "getAccount: $currentAccount")
return currentAccount
}
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
} catch (e: Exception) {
Log.e("MainViewModel", "Error getting account", e)
if (currentAccount != null && LocalPreferences.containsAccount(context, currentAccount)) {
Log.d("MainViewModel", "getAccount: $currentAccount")
return currentAccount
@@ -61,10 +82,6 @@ class MainViewModel(val context: Context) : ViewModel() {
return null
}
}
val npub = Hex.decode(pubKeys.first()).toNpub()
Log.d("MainViewModel", "getAccount: $npub")
return npub
}
fun showBunkerRequests(callingPackage: String?) {