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

Commit 5e2e046d authored by Helen Qin's avatar Helen Qin Committed by Android (Google) Code Review
Browse files

Merge "Fix another race condition for provider ui launching."

parents 8913ac48 bc42ccda
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -118,7 +118,7 @@ fun CreateCredentialScreen(
                        onCancel = viewModel::onCancel,
                    )
                }
            } else if (uiState.hidden && uiState.selectedEntry != null) {
            } else if (uiState.selectedEntry != null && !uiState.providerActivityPending) {
                viewModel.launchProviderUi(providerActivityLauncher)
            }
        },
+5 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ data class CreateCredentialUiState(
  val activeEntry: ActiveEntry? = null,
  val selectedEntry: EntryInfo? = null,
  val hidden: Boolean = false,
  val providerActivityPending: Boolean = false,
)

class CreateCredentialViewModel(
@@ -162,6 +163,9 @@ class CreateCredentialViewModel(
  ) {
    val entry = uiState.selectedEntry
    if (entry != null && entry.pendingIntent != null) {
      uiState = uiState.copy(
        providerActivityPending = true,
      )
      val intentSenderRequest = IntentSenderRequest.Builder(entry.pendingIntent)
        .setFillInIntent(entry.fillInIntent).build()
      launcher.launch(intentSenderRequest)
@@ -192,6 +196,7 @@ class CreateCredentialViewModel(
      uiState = uiState.copy(
        selectedEntry = null,
        hidden = false,
        providerActivityPending = false,
      )
    } else {
      if (entry != null) {
+1 −1
Original line number Diff line number Diff line
@@ -97,7 +97,7 @@ fun GetCredentialScreen(
                        onBackButtonClicked = viewModel::onBackToPrimarySelectionScreen,
                    )
                }
            } else if (uiState.hidden && uiState.selectedEntry != null) {
            } else if (uiState.selectedEntry != null && !uiState.providerActivityPending) {
                viewModel.launchProviderUi(providerActivityLauncher)
            }
        },
+5 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ data class GetCredentialUiState(
  val providerDisplayInfo: ProviderDisplayInfo = toProviderDisplayInfo(providerInfoList),
  val selectedEntry: EntryInfo? = null,
  val hidden: Boolean = false,
  val providerActivityPending: Boolean = false,
)

class GetCredentialViewModel(
@@ -79,6 +80,9 @@ class GetCredentialViewModel(
  ) {
    val entry = uiState.selectedEntry
    if (entry != null && entry.pendingIntent != null) {
      uiState = uiState.copy(
        providerActivityPending = true,
      )
      val intentSenderRequest = IntentSenderRequest.Builder(entry.pendingIntent)
        .setFillInIntent(entry.fillInIntent).build()
      launcher.launch(intentSenderRequest)
@@ -96,6 +100,7 @@ class GetCredentialViewModel(
      uiState = uiState.copy(
        selectedEntry = null,
        hidden = false,
        providerActivityPending = false,
      )
    } else {
      if (entry != null) {