Mainline: remove usage of hiddepn API SubscriptionManager#getPhoneId
am: 443ba6fc8d
Change-Id: Ie557d2f515b08635e3dfd24079c1caf8bac5accd
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.server;
|
||||
|
||||
import static android.telephony.SubscriptionManager.INVALID_SIM_SLOT_INDEX;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.AppOpsManager;
|
||||
import android.app.PendingIntent;
|
||||
@@ -37,6 +39,7 @@ import android.os.SystemClock;
|
||||
import android.os.UserHandle;
|
||||
import android.service.carrier.CarrierMessagingService;
|
||||
import android.telephony.SmsManager;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.util.Slog;
|
||||
@@ -512,11 +515,11 @@ public class MmsServiceBroker extends SystemService {
|
||||
|
||||
// Grant permission for the carrier app.
|
||||
Intent intent = new Intent(action);
|
||||
TelephonyManager telephonyManager =
|
||||
(TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
|
||||
List<String> carrierPackages =
|
||||
telephonyManager.getCarrierPackageNamesForIntentAndPhone(
|
||||
intent, SubscriptionManager.getPhoneId(subId));
|
||||
TelephonyManager telephonyManager = (TelephonyManager)
|
||||
mContext.getSystemService(Context.TELEPHONY_SERVICE);
|
||||
List<String> carrierPackages = telephonyManager
|
||||
.getCarrierPackageNamesForIntentAndPhone(
|
||||
intent, getPhoneIdFromSubId(subId));
|
||||
if (carrierPackages != null && carrierPackages.size() == 1) {
|
||||
LocalServices.getService(UriGrantsManagerInternal.class)
|
||||
.grantUriPermissionFromIntent(callingUid, carrierPackages.get(0),
|
||||
@@ -528,4 +531,13 @@ public class MmsServiceBroker extends SystemService {
|
||||
return contentUri;
|
||||
}
|
||||
}
|
||||
|
||||
private int getPhoneIdFromSubId(int subId) {
|
||||
SubscriptionManager subManager = (SubscriptionManager)
|
||||
mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
|
||||
if (subManager == null) return INVALID_SIM_SLOT_INDEX;
|
||||
SubscriptionInfo info = subManager.getActiveSubscriptionInfo(subId);
|
||||
if (info == null) return INVALID_SIM_SLOT_INDEX;
|
||||
return info.getSimSlotIndex();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.server;
|
||||
|
||||
import static android.telephony.SubscriptionManager.INVALID_SIM_SLOT_INDEX;
|
||||
import static android.telephony.TelephonyManager.ACTION_MULTI_SIM_CONFIG_CHANGED;
|
||||
import static android.telephony.TelephonyRegistryManager.SIM_ACTIVATION_TYPE_DATA;
|
||||
import static android.telephony.TelephonyRegistryManager.SIM_ACTIVATION_TYPE_VOICE;
|
||||
@@ -57,6 +58,7 @@ import android.telephony.PreciseDisconnectCause;
|
||||
import android.telephony.Rlog;
|
||||
import android.telephony.ServiceState;
|
||||
import android.telephony.SignalStrength;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.telephony.data.ApnSetting;
|
||||
@@ -95,7 +97,7 @@ import java.util.NoSuchElementException;
|
||||
* and 15973975 by saving the phoneId of the registrant and then using the
|
||||
* phoneId when deciding to to make a callback. This is necessary because
|
||||
* a subId changes from to a dummy value when a SIM is removed and thus won't
|
||||
* compare properly. Because SubscriptionManager.getPhoneId(int subId) handles
|
||||
* compare properly. Because getPhoneIdFromSubId(int subId) handles
|
||||
* the dummy value conversion we properly do the callbacks.
|
||||
*
|
||||
* Eventually we may want to remove the notion of dummy value but for now this
|
||||
@@ -128,7 +130,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
|
||||
int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
|
||||
int phoneId = SubscriptionManager.INVALID_PHONE_INDEX;
|
||||
int phoneId = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
|
||||
|
||||
boolean matchPhoneStateListenerEvent(int events) {
|
||||
return (callback != null) && ((events & this.events) != 0);
|
||||
@@ -226,7 +228,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
|
||||
private int mDefaultSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
|
||||
private int mDefaultPhoneId = SubscriptionManager.INVALID_PHONE_INDEX;
|
||||
private int mDefaultPhoneId = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
|
||||
|
||||
private int[] mRingingCallState;
|
||||
|
||||
@@ -355,7 +357,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
SubscriptionManager.getDefaultSubscriptionId());
|
||||
int newDefaultPhoneId = intent.getIntExtra(
|
||||
SubscriptionManager.EXTRA_SLOT_INDEX,
|
||||
SubscriptionManager.getPhoneId(newDefaultSubId));
|
||||
getPhoneIdFromSubId(newDefaultSubId));
|
||||
if (DBG) {
|
||||
log("onReceive:current mDefaultSubId=" + mDefaultSubId
|
||||
+ " current mDefaultPhoneId=" + mDefaultPhoneId
|
||||
@@ -751,7 +753,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
return;
|
||||
}
|
||||
|
||||
int phoneId = SubscriptionManager.getPhoneId(subId);
|
||||
int phoneId = getPhoneIdFromSubId(subId);
|
||||
synchronized (mRecords) {
|
||||
// register
|
||||
IBinder b = callback.asBinder();
|
||||
@@ -1077,7 +1079,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
// Called only by Telecomm to communicate call state across different phone accounts. So
|
||||
// there is no need to add a valid subId or slotId.
|
||||
broadcastCallStateChanged(state, phoneNumber,
|
||||
SubscriptionManager.INVALID_PHONE_INDEX,
|
||||
SubscriptionManager.INVALID_SIM_SLOT_INDEX,
|
||||
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
|
||||
}
|
||||
|
||||
@@ -1301,7 +1303,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
synchronized (mRecords) {
|
||||
mCarrierNetworkChangeState = active;
|
||||
for (int subId : subIds) {
|
||||
int phoneId = SubscriptionManager.getPhoneId(subId);
|
||||
int phoneId = getPhoneIdFromSubId(subId);
|
||||
|
||||
if (VDBG) {
|
||||
log("notifyCarrierNetworkChange: active=" + active + "subId: " + subId);
|
||||
@@ -1334,7 +1336,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
log("notifyCellInfoForSubscriber: subId=" + subId
|
||||
+ " cellInfo=" + cellInfo);
|
||||
}
|
||||
int phoneId = SubscriptionManager.getPhoneId(subId);
|
||||
int phoneId = getPhoneIdFromSubId(subId);
|
||||
synchronized (mRecords) {
|
||||
if (validatePhoneId(phoneId)) {
|
||||
mCellInfo.set(phoneId, cellInfo);
|
||||
@@ -1425,7 +1427,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
log("notifyCallForwardingChangedForSubscriber: subId=" + subId
|
||||
+ " cfi=" + cfi);
|
||||
}
|
||||
int phoneId = SubscriptionManager.getPhoneId(subId);
|
||||
int phoneId = getPhoneIdFromSubId(subId);
|
||||
synchronized (mRecords) {
|
||||
if (validatePhoneId(phoneId)) {
|
||||
mCallForwarding[phoneId] = cfi;
|
||||
@@ -1453,7 +1455,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
if (!checkNotifyPermission("notifyDataActivity()" )) {
|
||||
return;
|
||||
}
|
||||
int phoneId = SubscriptionManager.getPhoneId(subId);
|
||||
int phoneId = getPhoneIdFromSubId(subId);
|
||||
synchronized (mRecords) {
|
||||
if (validatePhoneId(phoneId)) {
|
||||
mDataActivity[phoneId] = state;
|
||||
@@ -1626,7 +1628,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
log("notifyCellLocationForSubscriber: subId=" + subId
|
||||
+ " cellLocation=" + cellLocation);
|
||||
}
|
||||
int phoneId = SubscriptionManager.getPhoneId(subId);
|
||||
int phoneId = getPhoneIdFromSubId(subId);
|
||||
synchronized (mRecords) {
|
||||
if (validatePhoneId(phoneId)) {
|
||||
mCellLocation[phoneId] = cellLocation;
|
||||
@@ -1735,7 +1737,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
if (!checkNotifyPermission("notifyImsCallDisconnectCause()")) {
|
||||
return;
|
||||
}
|
||||
int phoneId = SubscriptionManager.getPhoneId(subId);
|
||||
int phoneId = getPhoneIdFromSubId(subId);
|
||||
synchronized (mRecords) {
|
||||
if (validatePhoneId(phoneId)) {
|
||||
mImsReasonInfo.set(phoneId, imsReasonInfo);
|
||||
@@ -1802,7 +1804,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
if (VDBG) {
|
||||
log("notifySrvccStateChanged: subId=" + subId + " srvccState=" + state);
|
||||
}
|
||||
int phoneId = SubscriptionManager.getPhoneId(subId);
|
||||
int phoneId = getPhoneIdFromSubId(subId);
|
||||
synchronized (mRecords) {
|
||||
if (validatePhoneId(phoneId)) {
|
||||
mSrvccState[phoneId] = state;
|
||||
@@ -2208,7 +2210,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, subId);
|
||||
}
|
||||
// If the phoneId is invalid, the broadcast is for overall call state.
|
||||
if (phoneId != SubscriptionManager.INVALID_PHONE_INDEX) {
|
||||
if (phoneId != SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
|
||||
intent.putExtra(PHONE_CONSTANTS_SLOT_KEY, phoneId);
|
||||
intent.putExtra(SubscriptionManager.EXTRA_SLOT_INDEX, phoneId);
|
||||
}
|
||||
@@ -2673,4 +2675,18 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
private static CallQuality createCallQuality() {
|
||||
return new CallQuality(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
private int getPhoneIdFromSubId(int subId) {
|
||||
SubscriptionManager subManager = (SubscriptionManager)
|
||||
mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
|
||||
if (subManager == null) return INVALID_SIM_SLOT_INDEX;
|
||||
|
||||
if (subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID) {
|
||||
subId = SubscriptionManager.getDefaultSubscriptionId();
|
||||
}
|
||||
|
||||
SubscriptionInfo info = subManager.getActiveSubscriptionInfo(subId);
|
||||
if (info == null) return INVALID_SIM_SLOT_INDEX;
|
||||
return info.getSimSlotIndex();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user