From 18552c4a12d4d0644a1490a7209d953933747d64 Mon Sep 17 00:00:00 2001 From: Alexandre Ferris Date: Fri, 24 Nov 2023 12:26:38 +0100 Subject: [PATCH] fix: app lock dialog blinking (WPB-5610) (#2464) --- .../main/kotlin/com/wire/android/ui/WireActivity.kt | 12 +++++++++--- .../com/wire/android/ui/WireActivityViewModel.kt | 4 ++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/wire/android/ui/WireActivity.kt b/app/src/main/kotlin/com/wire/android/ui/WireActivity.kt index a4ea6d68ba0..a8193f7d758 100644 --- a/app/src/main/kotlin/com/wire/android/ui/WireActivity.kt +++ b/app/src/main/kotlin/com/wire/android/ui/WireActivity.kt @@ -93,6 +93,7 @@ import com.wire.android.util.debug.FeatureVisibilityFlags import com.wire.android.util.debug.LocalFeatureVisibilityFlags import com.wire.android.util.deeplink.DeepLinkResult import com.wire.android.util.ui.updateScreenSettings +import com.wire.kalium.logic.data.user.UserId import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.collectLatest @@ -201,7 +202,10 @@ class WireActivity : AppCompatActivity() { setUpNavigation(navigator.navController, onComplete) isLoaded = true handleScreenshotCensoring() - handleDialogs(navigator::navigate) + handleDialogs( + navigator::navigate, + viewModel.currentUserId.value + ) } } } @@ -255,8 +259,10 @@ class WireActivity : AppCompatActivity() { } @Composable - private fun handleDialogs(navigate: (NavigationCommand) -> Unit) { - featureFlagNotificationViewModel.loadInitialSync() + private fun handleDialogs(navigate: (NavigationCommand) -> Unit, userId: UserId?) { + LaunchedEffect(userId) { + featureFlagNotificationViewModel.loadInitialSync() + } with(featureFlagNotificationViewModel.featureFlagState) { if (shouldShowTeamAppLockDialog) { TeamAppLockFeatureFlagDialog( diff --git a/app/src/main/kotlin/com/wire/android/ui/WireActivityViewModel.kt b/app/src/main/kotlin/com/wire/android/ui/WireActivityViewModel.kt index d2aaf5addc4..eed6339bcf2 100644 --- a/app/src/main/kotlin/com/wire/android/ui/WireActivityViewModel.kt +++ b/app/src/main/kotlin/com/wire/android/ui/WireActivityViewModel.kt @@ -21,6 +21,7 @@ package com.wire.android.ui import android.content.Intent +import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue @@ -120,6 +121,7 @@ class WireActivityViewModel @Inject constructor( if (it.accountInfo.isValid().not()) { handleInvalidSession((it.accountInfo as AccountInfo.Invalid).logoutReason) } + currentUserId.value = it.accountInfo.userId } } .map { result -> @@ -137,6 +139,8 @@ class WireActivityViewModel @Inject constructor( private val _observeSyncFlowState: MutableStateFlow = MutableStateFlow(null) val observeSyncFlowState: StateFlow = _observeSyncFlowState + val currentUserId: MutableState = mutableStateOf(null) + init { observeSyncState() observeUpdateAppState()