diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/MainActivity.kt b/app/src/main/java/com/greenart7c3/nostrsigner/MainActivity.kt index 600943d4..032dd987 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/MainActivity.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/MainActivity.kt @@ -23,7 +23,7 @@ class MainViewModel : ViewModel() { var intents = IntentLiveData() } -class IntentLiveData : MutableLiveData>(mutableListOf()) +class IntentLiveData : MutableLiveData>(mutableListOf()) class MainActivity : AppCompatActivity() { private val mainViewModel = MainViewModel() @@ -60,9 +60,10 @@ class MainActivity : AppCompatActivity() { super.onNewIntent(intent) if (intent == null) return - val list = mutableListOf(IntentUtils.getIntentData(intent)) + val intentData = IntentUtils.getIntentData(intent) ?: return + val list = mutableListOf(intentData) mainViewModel.intents.value?.forEach { - if (list.none { item -> item?.id == it?.id }) { + if (list.none { item -> item.id == it.id }) { list.add(it) } } diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/AccountScreen.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/AccountScreen.kt index feeda23a..b59d61c6 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/AccountScreen.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/AccountScreen.kt @@ -20,7 +20,7 @@ fun AccountScreen( mainViewModel: MainViewModel ) { val accountState by accountStateViewModel.accountContent.collectAsState() - val intents by mainViewModel.intents.observeAsState() + val intents by mainViewModel.intents.observeAsState(mutableListOf()) Column { Crossfade( @@ -33,9 +33,13 @@ fun AccountScreen( LoginPage(accountStateViewModel) } is AccountState.LoggedIn -> { - val localIntents = intents?.mapNotNull { it } ?: listOf() - val newIntents = localIntents.ifEmpty { - listOf(IntentUtils.getIntentData(intent)) + val newIntents = intents.ifEmpty { + val intentData = IntentUtils.getIntentData(intent) + if (intentData == null) { + listOf() + } else { + listOf(intentData) + } } MainScreen(state.account, accountStateViewModel, newIntents, packageName, appName, state.route) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/HomeScreen.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/HomeScreen.kt index 2e0d29d8..a9b48ce2 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/HomeScreen.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/HomeScreen.kt @@ -22,7 +22,7 @@ import com.greenart7c3.nostrsigner.ui.components.SingleEventHomeScreen @Composable fun HomeScreen( modifier: Modifier, - intents: List, + intents: List, packageName: String?, applicationName: String?, account: Account @@ -34,7 +34,7 @@ fun HomeScreen( Box( modifier ) { - if (intents.filterNotNull().isEmpty()) { + if (intents.isEmpty()) { Column( Modifier.fillMaxSize(), Arrangement.Center, @@ -43,17 +43,15 @@ fun HomeScreen( Text(stringResource(R.string.no_event_to_sign)) } } else if (intents.size == 1) { - intents.first()?.let { - SingleEventHomeScreen( - packageName, - applicationName, - it, - account - ) - } + SingleEventHomeScreen( + packageName, + applicationName, + intents.first(), + account + ) } else { MultiEventHomeScreen( - intents.filterNotNull(), + intents, applicationName, packageName, account diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt index 9a377915..4028110c 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/MainScreen.kt @@ -175,7 +175,7 @@ fun GoToTop(goToTop: () -> Unit) { fun MainScreen( account: Account, accountStateViewModel: AccountStateViewModel, - intents: List, + intents: List, packageName: String?, appName: String?, route: String?