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

Commit 619e3627 authored by Hao Dong's avatar Hao Dong
Browse files

Fix recreate crash on Enroll v2.

Replay sensorType once to avoid |contentLayoutId| to be null when
Education is recreated.

Bug: 295206773
Test: manual test - proceed Enroll page and rotate, no crash happens
Change-Id: I0ec49d138ebe74044ba3554b38722984e78ed5d7
parent 9952d054
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -255,6 +255,9 @@ class FingerprintEnrollmentV2Activity : FragmentActivity() {
          }

        if (theClass != null) {
          supportFragmentManager.fragments.onEach { fragment ->
            supportFragmentManager.beginTransaction().remove(fragment).commit()
          }
          supportFragmentManager
            .beginTransaction()
            .setReorderingAllowed(true)
+5 −1
Original line number Diff line number Diff line
@@ -25,11 +25,13 @@ import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollSta
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.combineTransform
import kotlinx.coroutines.flow.filterNotNull
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.shareIn
import kotlinx.coroutines.flow.transform
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
@@ -45,7 +47,9 @@ class FingerprintEnrollFindSensorViewModel(
) : ViewModel() {
  /** Represents the stream of sensor type. */
  val sensorType: Flow<FingerprintSensorType> =
    fingerprintEnrollViewModel.sensorType.filterWhenEducationIsShown()
    fingerprintEnrollViewModel.sensorType
      .filterWhenEducationIsShown()
      .shareIn(viewModelScope, SharingStarted.WhileSubscribed(), 1)
  private val _isUdfps: Flow<Boolean> =
    sensorType.map {
      it == FingerprintSensorType.UDFPS_OPTICAL || it == FingerprintSensorType.UDFPS_ULTRASONIC