Mainline:SimStatusDialogController decouple TelephonyManager hidden APIs
- telephonymanager set subid by createForSubscriptionId -getDataNetworkType(I) -getVoiceNetworkType(I) -getSimSerialNumber(I) -getServiceStateForSubscriber(I) - copy getNetworkTypeName() to SimStatusDialogController Bug: 143998492 Test: Build pass. make RunSettingsRoboTests ROBOTEST_FILTER\ =SimStatusDialogControllerTest Change-Id: Ieb8547496a4b0da7332abd227056f9b786c7ef6a
This commit is contained in:
@@ -25,6 +25,7 @@ import android.content.res.Resources;
|
||||
import android.os.Bundle;
|
||||
import android.os.PersistableBundle;
|
||||
import android.os.UserHandle;
|
||||
import android.telephony.Annotation;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.CellSignalStrength;
|
||||
import android.telephony.PhoneStateListener;
|
||||
@@ -105,15 +106,18 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
||||
public void onSubscriptionsChanged() {
|
||||
mSubscriptionInfo = mSubscriptionManager.getActiveSubscriptionInfo(
|
||||
mSubscriptionInfo.getSubscriptionId());
|
||||
mTelephonyManager = mTelephonyManager.createForSubscriptionId(
|
||||
mSubscriptionInfo.getSubscriptionId());
|
||||
updateNetworkProvider();
|
||||
}
|
||||
};
|
||||
|
||||
private SubscriptionInfo mSubscriptionInfo;
|
||||
|
||||
private final int mSlotIndex;
|
||||
private TelephonyManager mTelephonyManager;
|
||||
|
||||
private final SimStatusDialogFragment mDialog;
|
||||
private final TelephonyManager mTelephonyManager;
|
||||
private final SubscriptionManager mSubscriptionManager;
|
||||
private final CarrierConfigManager mCarrierConfigManager;
|
||||
private final EuiccManager mEuiccManager;
|
||||
@@ -171,11 +175,13 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
||||
mPhoneStateListener = getPhoneStateListener();
|
||||
updateNetworkProvider();
|
||||
|
||||
final ServiceState serviceState = getCurrentServiceState();
|
||||
final ServiceState serviceState = mTelephonyManager.getServiceState();
|
||||
final SignalStrength signalStrength = mTelephonyManager.getSignalStrength();
|
||||
|
||||
updatePhoneNumber();
|
||||
updateLatestAreaInfo();
|
||||
updateServiceState(serviceState);
|
||||
updateSignalStrength(getSignalStrength());
|
||||
updateSignalStrength(signalStrength);
|
||||
updateNetworkType();
|
||||
updateRoamingStatus(serviceState);
|
||||
updateIccidNumber();
|
||||
@@ -187,12 +193,12 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
||||
if (mSubscriptionInfo == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
mTelephonyManager.createForSubscriptionId(mSubscriptionInfo.getSubscriptionId())
|
||||
.listen(mPhoneStateListener,
|
||||
PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
|
||||
| PhoneStateListener.LISTEN_SIGNAL_STRENGTHS
|
||||
| PhoneStateListener.LISTEN_SERVICE_STATE);
|
||||
mTelephonyManager = mTelephonyManager.createForSubscriptionId(
|
||||
mSubscriptionInfo.getSubscriptionId());
|
||||
mTelephonyManager.listen(mPhoneStateListener,
|
||||
PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
|
||||
| PhoneStateListener.LISTEN_SIGNAL_STRENGTHS
|
||||
| PhoneStateListener.LISTEN_SERVICE_STATE);
|
||||
mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangedListener);
|
||||
|
||||
if (mShowLatestAreaInfo) {
|
||||
@@ -214,8 +220,7 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
||||
}
|
||||
|
||||
mSubscriptionManager.removeOnSubscriptionsChangedListener(mOnSubscriptionsChangedListener);
|
||||
mTelephonyManager.createForSubscriptionId(mSubscriptionInfo.getSubscriptionId())
|
||||
.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
|
||||
mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
|
||||
|
||||
if (mShowLatestAreaInfo) {
|
||||
mContext.unregisterReceiver(mAreaInfoReceiver);
|
||||
@@ -318,7 +323,7 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
||||
return;
|
||||
}
|
||||
|
||||
ServiceState serviceState = getCurrentServiceState();
|
||||
ServiceState serviceState = mTelephonyManager.getServiceState();
|
||||
if (serviceState == null || !Utils.isInService(serviceState)) {
|
||||
return;
|
||||
}
|
||||
@@ -347,13 +352,13 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
||||
String dataNetworkTypeName = null;
|
||||
String voiceNetworkTypeName = null;
|
||||
final int subId = mSubscriptionInfo.getSubscriptionId();
|
||||
final int actualDataNetworkType = mTelephonyManager.getDataNetworkType(subId);
|
||||
final int actualVoiceNetworkType = mTelephonyManager.getVoiceNetworkType(subId);
|
||||
final int actualDataNetworkType = mTelephonyManager.getDataNetworkType();
|
||||
final int actualVoiceNetworkType = mTelephonyManager.getVoiceNetworkType();
|
||||
if (TelephonyManager.NETWORK_TYPE_UNKNOWN != actualDataNetworkType) {
|
||||
dataNetworkTypeName = mTelephonyManager.getNetworkTypeName(actualDataNetworkType);
|
||||
dataNetworkTypeName = getNetworkTypeName(actualDataNetworkType);
|
||||
}
|
||||
if (TelephonyManager.NETWORK_TYPE_UNKNOWN != actualVoiceNetworkType) {
|
||||
voiceNetworkTypeName = mTelephonyManager.getNetworkTypeName(actualVoiceNetworkType);
|
||||
voiceNetworkTypeName = getNetworkTypeName(actualVoiceNetworkType);
|
||||
}
|
||||
|
||||
boolean show4GForLTE = false;
|
||||
@@ -398,7 +403,7 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
||||
mDialog.removeSettingFromScreen(ICCID_INFO_LABEL_ID);
|
||||
mDialog.removeSettingFromScreen(ICCID_INFO_VALUE_ID);
|
||||
} else {
|
||||
mDialog.setText(ICCID_INFO_VALUE_ID, getSimSerialNumber(subscriptionId));
|
||||
mDialog.setText(ICCID_INFO_VALUE_ID, mTelephonyManager.getSimSerialNumber());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -464,12 +469,6 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
||||
return SubscriptionManager.from(mContext).getActiveSubscriptionInfoForSimSlotIndex(slotId);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
ServiceState getCurrentServiceState() {
|
||||
return mTelephonyManager.getServiceStateForSubscriber(
|
||||
mSubscriptionInfo.getSubscriptionId());
|
||||
}
|
||||
|
||||
private int getDbm(SignalStrength signalStrength) {
|
||||
List<CellSignalStrength> cellSignalStrengthList = signalStrength.getCellSignalStrengths();
|
||||
int dbm = -1;
|
||||
@@ -528,12 +527,50 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
SignalStrength getSignalStrength() {
|
||||
return mTelephonyManager.getSignalStrength();
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
String getSimSerialNumber(int subscriptionId) {
|
||||
return mTelephonyManager.getSimSerialNumber(subscriptionId);
|
||||
static String getNetworkTypeName(@Annotation.NetworkType int type) {
|
||||
switch (type) {
|
||||
case TelephonyManager.NETWORK_TYPE_GPRS:
|
||||
return "GPRS";
|
||||
case TelephonyManager.NETWORK_TYPE_EDGE:
|
||||
return "EDGE";
|
||||
case TelephonyManager.NETWORK_TYPE_UMTS:
|
||||
return "UMTS";
|
||||
case TelephonyManager.NETWORK_TYPE_HSDPA:
|
||||
return "HSDPA";
|
||||
case TelephonyManager.NETWORK_TYPE_HSUPA:
|
||||
return "HSUPA";
|
||||
case TelephonyManager.NETWORK_TYPE_HSPA:
|
||||
return "HSPA";
|
||||
case TelephonyManager.NETWORK_TYPE_CDMA:
|
||||
return "CDMA";
|
||||
case TelephonyManager.NETWORK_TYPE_EVDO_0:
|
||||
return "CDMA - EvDo rev. 0";
|
||||
case TelephonyManager.NETWORK_TYPE_EVDO_A:
|
||||
return "CDMA - EvDo rev. A";
|
||||
case TelephonyManager.NETWORK_TYPE_EVDO_B:
|
||||
return "CDMA - EvDo rev. B";
|
||||
case TelephonyManager.NETWORK_TYPE_1xRTT:
|
||||
return "CDMA - 1xRTT";
|
||||
case TelephonyManager.NETWORK_TYPE_LTE:
|
||||
return "LTE";
|
||||
case TelephonyManager.NETWORK_TYPE_EHRPD:
|
||||
return "CDMA - eHRPD";
|
||||
case TelephonyManager.NETWORK_TYPE_IDEN:
|
||||
return "iDEN";
|
||||
case TelephonyManager.NETWORK_TYPE_HSPAP:
|
||||
return "HSPA+";
|
||||
case TelephonyManager.NETWORK_TYPE_GSM:
|
||||
return "GSM";
|
||||
case TelephonyManager.NETWORK_TYPE_TD_SCDMA:
|
||||
return "TD_SCDMA";
|
||||
case TelephonyManager.NETWORK_TYPE_IWLAN:
|
||||
return "IWLAN";
|
||||
case TelephonyManager.NETWORK_TYPE_LTE_CA:
|
||||
return "LTE_CA";
|
||||
case TelephonyManager.NETWORK_TYPE_NR:
|
||||
return "NR";
|
||||
default:
|
||||
return "UNKNOWN";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user