eSIM profile is not erased during Reset mobile network settings flow
The CL fixes the bug that eSIM profile is not erased even if user choose to erase eSIM during Reset Mobile Network Settings flow. The issue was introduced when adding background operations to restart Phone process and RILD. Restart Phone process performed earlier. It may interrup the previous reset operations (e.g. eSIM erasing). The fix here is to arrange reset Phone and RILD in the end of the flow, only performed after all other reset operations. Bug: 345854350 Test: atest ResetNetworkOperationBuilderTest Test: Manual regression test Change-Id: If2bd492d417a07a7056bf9fd0d051f8811ba6369
This commit is contained in:
@@ -270,6 +270,7 @@ public class ResetNetworkRequest {
|
||||
if ((mResetOptions & RESET_IMS_STACK) != 0) {
|
||||
builder.resetIms(mSubscriptionIdToResetIms);
|
||||
}
|
||||
// Reset phone process and RILD may impact above components, keep them at the end
|
||||
if ((mResetOptions & RESET_PHONE_PROCESS) != 0) {
|
||||
builder.restartPhoneProcess();
|
||||
}
|
||||
|
@@ -256,6 +256,7 @@ public class ResetNetworkOperationBuilder {
|
||||
* @return this
|
||||
*/
|
||||
public ResetNetworkOperationBuilder restartPhoneProcess() {
|
||||
Runnable runnable = () -> {
|
||||
try {
|
||||
mContext.getContentResolver().call(
|
||||
getResetTelephonyContentProviderAuthority(),
|
||||
@@ -266,6 +267,8 @@ public class ResetNetworkOperationBuilder {
|
||||
} catch (IllegalArgumentException iae) {
|
||||
Log.w(TAG, "Fail to restart phone process: " + iae);
|
||||
}
|
||||
};
|
||||
mResetSequence.add(runnable);
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -275,6 +278,7 @@ public class ResetNetworkOperationBuilder {
|
||||
* @return this
|
||||
*/
|
||||
public ResetNetworkOperationBuilder restartRild() {
|
||||
Runnable runnable = () -> {
|
||||
try {
|
||||
mContext.getContentResolver().call(
|
||||
getResetTelephonyContentProviderAuthority(),
|
||||
@@ -285,6 +289,8 @@ public class ResetNetworkOperationBuilder {
|
||||
} catch (IllegalArgumentException iae) {
|
||||
Log.w(TAG, "Fail to restart RILD: " + iae);
|
||||
}
|
||||
};
|
||||
mResetSequence.add(runnable);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@@ -188,7 +188,7 @@ public class ResetNetworkOperationBuilderTest {
|
||||
doThrow(new IllegalArgumentException()).when(mContentProvider).call(
|
||||
anyString(), anyString(), anyString(), any());
|
||||
|
||||
mBuilder.restartPhoneProcess();
|
||||
mBuilder.restartPhoneProcess().build().run();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -196,12 +196,12 @@ public class ResetNetworkOperationBuilderTest {
|
||||
doThrow(new IllegalArgumentException()).when(mContentProvider).call(
|
||||
anyString(), anyString(), anyString(), any());
|
||||
|
||||
mBuilder.restartRild();
|
||||
mBuilder.restartRild().build().run();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void restartPhoneProcess_withTelephonyContentProvider_shouldCallRestartPhoneProcess() {
|
||||
mBuilder.restartPhoneProcess();
|
||||
mBuilder.restartPhoneProcess().build().run();
|
||||
|
||||
verify(mContentProvider).call(
|
||||
eq(mBuilder.getResetTelephonyContentProviderAuthority()),
|
||||
@@ -212,7 +212,7 @@ public class ResetNetworkOperationBuilderTest {
|
||||
|
||||
@Test
|
||||
public void restartRild_withTelephonyContentProvider_shouldCallRestartRild() {
|
||||
mBuilder.restartRild();
|
||||
mBuilder.restartRild().build().run();
|
||||
|
||||
verify(mContentProvider).call(
|
||||
eq(mBuilder.getResetTelephonyContentProviderAuthority()),
|
||||
|
Reference in New Issue
Block a user