SIM network depersonalization for DSDS
Current network depesonalization dialog always sends depersonalization
unlock code to the default phone, which causes that SIM2 can not be
unlocked.
So need pass correct phone to the depersonalization dialog.
Bug: 73018138
Test: Manual
Change-Id: I5642a5f7416fce36bcfbb56b17c39d3cd85aab8e
diff --git a/src/com/android/phone/IccNetworkDepersonalizationPanel.java b/src/com/android/phone/IccNetworkDepersonalizationPanel.java
index 9dff461..8bd10a2 100644
--- a/src/com/android/phone/IccNetworkDepersonalizationPanel.java
+++ b/src/com/android/phone/IccNetworkDepersonalizationPanel.java
@@ -74,7 +74,7 @@
/**
* Shows the network depersonalization dialog, but only if it is not already visible.
*/
- public static void showDialog() {
+ public static void showDialog(Phone phone) {
if (sShowingDialog) {
Log.i(TAG, "[IccNetworkDepersonalizationPanel] - showDialog; skipped already shown.");
return;
@@ -82,7 +82,7 @@
Log.i(TAG, "[IccNetworkDepersonalizationPanel] - showDialog; showing dialog.");
sShowingDialog = true;
IccNetworkDepersonalizationPanel ndpPanel =
- new IccNetworkDepersonalizationPanel(PhoneGlobals.getInstance());
+ new IccNetworkDepersonalizationPanel(PhoneGlobals.getInstance(), phone);
ndpPanel.show();
}
@@ -133,6 +133,13 @@
//constructor
public IccNetworkDepersonalizationPanel(Context context) {
super(context);
+ mPhone = PhoneGlobals.getPhone();
+ }
+
+ //constructor
+ public IccNetworkDepersonalizationPanel(Context context, Phone phone) {
+ super(context);
+ mPhone = phone == null ? PhoneGlobals.getPhone() : phone;
}
@Override
@@ -172,8 +179,6 @@
//status panel is used since we're having problems with the alert dialog.
mStatusPanel = (LinearLayout) findViewById(R.id.status_panel);
mStatusText = (TextView) findViewById(R.id.status_text);
-
- mPhone = PhoneGlobals.getPhone();
}
@Override
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 98b94cc..948d2ab 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -202,7 +202,8 @@
// The user won't be able to do anything else until
// they enter a valid SIM network PIN.
Log.i(LOG_TAG, "show sim depersonal panel");
- IccNetworkDepersonalizationPanel.showDialog();
+ Phone phone = (Phone) ((AsyncResult) msg.obj).userObj;
+ IccNetworkDepersonalizationPanel.showDialog(phone);
}
break;