[Settings] Crash when resetting downloaded eSIM
Context need to be maintained when performing async operation in
background thread.
Bug: 202787946
Test: local
Change-Id: Ia5b81ae66e9482b10df5133b2f1444fc007a78e8
(cherry picked from commit 8aa98d63fd7af3c7e347c226270f942db92038cc)
diff --git a/src/com/android/settings/network/EraseEuiccDataDialogFragment.java b/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
index 819d3b1..2c3847c 100644
--- a/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
+++ b/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
@@ -19,6 +19,7 @@
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.settings.SettingsEnums;
+import android.content.Context;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Bundle;
@@ -75,23 +76,24 @@
}
if (which == DialogInterface.BUTTON_POSITIVE) {
- if (ConfirmationSimDeletionPredicate.getSingleton().test(getContext())) {
+ Context context = getContext();
+ if (ConfirmationSimDeletionPredicate.getSingleton().test(context)) {
// Create a "verify it's you" verification over keyguard
// when "erase" button been pressed.
// This might protect from erasing by some automation process.
- WifiDppUtils.showLockScreen(getContext(), () -> runAsyncWipe());
+ WifiDppUtils.showLockScreen(context, () -> runAsyncWipe(context));
} else {
- runAsyncWipe();
+ runAsyncWipe(context);
}
}
}
- private void runAsyncWipe() {
+ private void runAsyncWipe(Context context) {
AsyncTask.execute(new Runnable() {
@Override
public void run() {
RecoverySystem.wipeEuiccData(
- getContext(), PACKAGE_NAME_EUICC_DATA_MANAGEMENT_CALLBACK);
+ context, PACKAGE_NAME_EUICC_DATA_MANAGEMENT_CALLBACK);
}
});
}