From f8056b90276e45c78c31cc94269c0660a62c82bc Mon Sep 17 00:00:00 2001 From: hasibprince Date: Fri, 16 Jun 2023 18:07:38 +0600 Subject: [PATCH] fixed: showing signature mismatch dialog --- .../java/foundation/e/apps/ui/MainActivity.kt | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/foundation/e/apps/ui/MainActivity.kt b/app/src/main/java/foundation/e/apps/ui/MainActivity.kt index fb76120bd..d53cb2126 100644 --- a/app/src/main/java/foundation/e/apps/ui/MainActivity.kt +++ b/app/src/main/java/foundation/e/apps/ui/MainActivity.kt @@ -26,9 +26,11 @@ import android.os.StatFs import android.os.storage.StorageManager import android.view.View import androidx.appcompat.app.AppCompatActivity +import androidx.lifecycle.Lifecycle import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.distinctUntilChanged import androidx.lifecycle.lifecycleScope +import androidx.lifecycle.repeatOnLifecycle import androidx.navigation.NavController import androidx.navigation.NavOptions import androidx.navigation.findNavController @@ -124,6 +126,7 @@ class MainActivity : AppCompatActivity() { navController.popBackStack() navController.navigate(R.id.signInFragment) } + else -> {} } @@ -154,6 +157,7 @@ class MainActivity : AppCompatActivity() { R.id.signInFragment -> { bottomNavigationView.visibility = View.GONE } + else -> { bottomNavigationView.visibility = View.VISIBLE } @@ -217,22 +221,32 @@ class MainActivity : AppCompatActivity() { viewModel.updateAppWarningList() - lifecycleScope.launchWhenResumed { - observeInvalidAuth() + lifecycleScope.launch { + repeatOnLifecycle(Lifecycle.State.STARTED) { + launch { + observeInvalidAuth() + } - EventBus.events.filter { appEvent -> - appEvent is AppEvent.SignatureMissMatchError - }.collectLatest { - val appName = viewModel.getAppNameByPackageName(it.data.toString()) - ApplicationDialogFragment( - title = getString(R.string.update_error), - message = getString(R.string.error_signature_mismatch, appName), - positiveButtonText = getString(R.string.ok) - ).show(supportFragmentManager, TAG) + launch { + observeSignatureMissMatchError() + } } } } + private suspend fun observeSignatureMissMatchError() { + EventBus.events.filter { appEvent -> + appEvent is AppEvent.SignatureMissMatchError + }.collectLatest { + val appName = viewModel.getAppNameByPackageName(it.data.toString()) + ApplicationDialogFragment( + title = getString(R.string.update_error), + message = getString(R.string.error_signature_mismatch, appName), + positiveButtonText = getString(R.string.ok) + ).show(supportFragmentManager, TAG) + } + } + private suspend fun observeInvalidAuth() { EventBus.events.filter { appEvent -> appEvent is AppEvent.InvalidAuthEvent -- GitLab