Fix Settings crash
When pressing back from fingerprint enrollment flow, Settings will get crashed. That was caused by calling a destroied fragment manager to create an error dialog. Bug: 184234884 Test: manual test 1) Settings -> Security -> Fingerprint 2) Following the enrollment flow, then pressing back from either find sensor or enrolling page 3) Observe and see if there's no crash Change-Id: I2028df0c6a65e8e960a627161834660681b7b70a
This commit is contained in:
@@ -20,6 +20,8 @@ import android.app.settings.SettingsEnums;
|
|||||||
import android.hardware.fingerprint.FingerprintManager;
|
import android.hardware.fingerprint.FingerprintManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.biometrics.BiometricEnrollBase;
|
import com.android.settings.biometrics.BiometricEnrollBase;
|
||||||
import com.android.settings.biometrics.BiometricErrorDialog;
|
import com.android.settings.biometrics.BiometricErrorDialog;
|
||||||
@@ -31,7 +33,10 @@ public class FingerprintErrorDialog extends BiometricErrorDialog {
|
|||||||
public static void showErrorDialog(BiometricEnrollBase host, int errMsgId) {
|
public static void showErrorDialog(BiometricEnrollBase host, int errMsgId) {
|
||||||
final CharSequence errMsg = host.getText(getErrorMessage(errMsgId));
|
final CharSequence errMsg = host.getText(getErrorMessage(errMsgId));
|
||||||
final FingerprintErrorDialog dialog = newInstance(errMsg, errMsgId);
|
final FingerprintErrorDialog dialog = newInstance(errMsg, errMsgId);
|
||||||
dialog.show(host.getSupportFragmentManager(), FingerprintErrorDialog.class.getName());
|
final FragmentManager fragmentManager = host.getSupportFragmentManager();
|
||||||
|
if (!fragmentManager.isDestroyed()) {
|
||||||
|
dialog.show(fragmentManager, FingerprintErrorDialog.class.getName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int getErrorMessage(int errMsgId) {
|
private static int getErrorMessage(int errMsgId) {
|
||||||
|
Reference in New Issue
Block a user