Allow 1st party app to set Line 1 number for display purpose.
After the number is set, TelephonyManager.getLine1Number will actually
return this one instead of the actual MSISDN/MDN.
Bug: 11900806
Change-Id: I4df3fac7b483ddae2bbda14b5a85629486e400cf
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index dad9cee..8e03568 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -59,6 +59,7 @@
import com.android.internal.telephony.CommandException;
import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.dataconnection.DctController;
+import com.android.internal.telephony.uicc.AdnRecord;
import com.android.internal.telephony.uicc.IccIoResult;
import com.android.internal.telephony.uicc.IccUtils;
import com.android.internal.telephony.uicc.UiccCarrierPrivilegeRules;
@@ -127,6 +128,7 @@
* subscription.
*/
Set<Long> mSimplifiedNetworkSettings;
+ Map<Long, AdnRecord> mAdnRecordsForDisplay;
/**
* A request object to use for transmitting data to an ICC.
@@ -567,6 +569,7 @@
mSimplifiedNetworkSettings = new HashSet<Long>();
mAppOps = (AppOpsManager)app.getSystemService(Context.APP_OPS_SERVICE);
mMainThreadHandler = new MainThreadHandler();
+ mAdnRecordsForDisplay = new HashMap<Long, AdnRecord>();
publish();
}
@@ -1734,4 +1737,36 @@
enforceReadPermission();
return mSimplifiedNetworkSettings.contains(subId);
}
+
+ @Override
+ public void setLine1NumberForDisplay(long subId, String alphaTag, String number) {
+ enforceModifyPermission();
+ mAdnRecordsForDisplay.put(subId, new AdnRecord(alphaTag, number));
+ }
+
+ @Override
+ public String getLine1NumberForDisplay(long subId) {
+ enforceReadPermission();
+ if (!mAdnRecordsForDisplay.containsKey(subId)) {
+ return null;
+ }
+ AdnRecord adnRecord = mAdnRecordsForDisplay.get(subId);
+ if (adnRecord.getNumber() == null || adnRecord.getNumber().isEmpty()) {
+ return null;
+ }
+ return adnRecord.getNumber();
+ }
+
+ @Override
+ public String getLine1AlphaTagForDisplay(long subId) {
+ enforceReadPermission();
+ if (!mAdnRecordsForDisplay.containsKey(subId)) {
+ return null;
+ }
+ AdnRecord adnRecord = mAdnRecordsForDisplay.get(subId);
+ if (adnRecord.getAlphaTag() == null || adnRecord.getAlphaTag().isEmpty()) {
+ return null;
+ }
+ return adnRecord.getAlphaTag();
+ }
}