From 8aa98d63fd7af3c7e347c226270f942db92038cc Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Tue, 12 Oct 2021 19:43:16 +0800 Subject: [PATCH] [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 --- .../network/EraseEuiccDataDialogFragment.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/network/EraseEuiccDataDialogFragment.java b/src/com/android/settings/network/EraseEuiccDataDialogFragment.java index 819d3b1fc6e..2c3847c9f2b 100644 --- a/src/com/android/settings/network/EraseEuiccDataDialogFragment.java +++ b/src/com/android/settings/network/EraseEuiccDataDialogFragment.java @@ -19,6 +19,7 @@ package com.android.settings.network; 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 @@ public class EraseEuiccDataDialogFragment extends InstrumentedDialogFragment imp } 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); } }); }