Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58897d9b authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Bug fix caused by animation." into udc-dev

parents 596240b3 76694b6e
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ class CredentialManagerRepo(
    private val context: Context,
    intent: Intent,
    userConfigRepo: UserConfigRepo,
    isNewActivity: Boolean,
) {
    val requestInfo: RequestInfo?
    private val providerEnabledList: List<ProviderData>
@@ -125,7 +126,8 @@ class CredentialManagerRepo(
                        isPasskeyFirstUse = isPasskeyFirstUse,
                    )!!,
                    getCredentialUiState = null,
                    cancelRequestState = cancelUiRequestState
                    cancelRequestState = cancelUiRequestState,
                    isInitialRender = isNewActivity,
                )
            }
            RequestInfo.TYPE_GET -> {
@@ -140,7 +142,8 @@ class CredentialManagerRepo(
                    if (autoSelectEntry == null) ProviderActivityState.NOT_APPLICABLE
                    else ProviderActivityState.READY_TO_LAUNCH,
                    isAutoSelectFlow = autoSelectEntry != null,
                    cancelRequestState = cancelUiRequestState
                    cancelRequestState = cancelUiRequestState,
                    isInitialRender = isNewActivity,
                )
            }
            else -> {
@@ -149,6 +152,7 @@ class CredentialManagerRepo(
                        createCredentialUiState = null,
                        getCredentialUiState = null,
                        cancelRequestState = cancelUiRequestState,
                        isInitialRender = isNewActivity,
                    )
                } else {
                    throw IllegalStateException("Unrecognized request type: ${requestInfo?.type}")
+4 −2
Original line number Diff line number Diff line
@@ -62,7 +62,8 @@ class CredentialSelectorActivity : ComponentActivity() {
                return
            }
            val userConfigRepo = UserConfigRepo(this)
            val credManRepo = CredentialManagerRepo(this, intent, userConfigRepo)
            val credManRepo = CredentialManagerRepo(
                this, intent, userConfigRepo, isNewActivity = true)

            val backPressedCallback = object : OnBackPressedCallback(
                true // default to enabled
@@ -103,7 +104,8 @@ class CredentialSelectorActivity : ComponentActivity() {
                }
            } else {
                val userConfigRepo = UserConfigRepo(this)
                val credManRepo = CredentialManagerRepo(this, intent, userConfigRepo)
                val credManRepo = CredentialManagerRepo(
                    this, intent, userConfigRepo, isNewActivity = false)
                viewModel.onNewCredentialManagerRepo(credManRepo)
            }
        } catch (e: Exception) {
+6 −1
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ data class UiState(
    // launched immediately, and canceling it will cancel the whole UI flow.
    val isAutoSelectFlow: Boolean = false,
    val cancelRequestState: CancelUiRequestState?,
    val isInitialRender: Boolean,
)

data class CancelUiRequestState(
@@ -82,6 +83,10 @@ class CredentialSelectorViewModel(
        uiState = uiState.copy(dialogState = DialogState.COMPLETE)
    }

    fun onInitialRenderComplete() {
        uiState = uiState.copy(isInitialRender = false)
    }

    fun onCancellationUiRequested(appDisplayName: String?) {
        uiState = uiState.copy(cancelRequestState = CancelUiRequestState(appDisplayName))
    }
@@ -96,7 +101,7 @@ class CredentialSelectorViewModel(

    fun onNewCredentialManagerRepo(credManRepo: CredentialManagerRepo) {
        this.credManRepo = credManRepo
        uiState = credManRepo.initState()
        uiState = credManRepo.initState().copy(isInitialRender = false)

        if (this.credManRepo.requestInfo?.token != credManRepo.requestInfo?.token) {
            this.uiMetrics.resetInstanceId()
+4 −7
Original line number Diff line number Diff line
@@ -20,10 +20,6 @@ import androidx.compose.foundation.background
import androidx.compose.foundation.layout.ColumnScope
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
@@ -40,9 +36,10 @@ import kotlinx.coroutines.launch
@Composable
fun ModalBottomSheet(
    sheetContent: @Composable ColumnScope.() -> Unit,
    onDismiss: () -> Unit
    onDismiss: () -> Unit,
    isInitialRender: Boolean,
    onInitialRenderComplete: () -> Unit,
) {
    var isInitialRender by remember { mutableStateOf(true) }
    val scope = rememberCoroutineScope()
    val state = rememberModalBottomSheetState(
        initialValue = ModalBottomSheetValue.Hidden,
@@ -64,7 +61,7 @@ fun ModalBottomSheet(
    LaunchedEffect(state.currentValue) {
        if (state.currentValue == ModalBottomSheetValue.Hidden) {
            if (isInitialRender) {
                isInitialRender = false
                onInitialRenderComplete()
                scope.launch { state.show() }
            } else {
                onDismiss()
+3 −1
Original line number Diff line number Diff line
@@ -164,7 +164,9 @@ fun CreateCredentialScreen(
                }
            }
        },
        onDismiss = viewModel::onUserCancel
        onDismiss = viewModel::onUserCancel,
        isInitialRender = viewModel.uiState.isInitialRender,
        onInitialRenderComplete = viewModel::onInitialRenderComplete,
    )
}

Loading