Merge "Revert "Do not reuse phonestatelistener"" into qt-dev-plus-aosp

am: d02e198fde

Change-Id: I4a20ff324aadcc3270f93c743b616b9d59365bde
This commit is contained in:
Jordan Liu
2019-04-11 15:48:47 -07:00
committed by android-build-merger

View File

@@ -228,7 +228,7 @@ public class RadioInfo extends Activity {
private ConnectivityManager mConnectivityManager;
private TelephonyManager mTelephonyManager;
private ImsManager mImsManager = null;
private Phone mPhone = null;
private Phone phone = null;
private String mPingHostnameResultV4;
private String mPingHostnameResultV6;
@@ -256,9 +256,7 @@ public class RadioInfo extends Activity {
}
};
// not final because we need to recreate this object to register on a new subId (b/117555407)
private PhoneStateListener mPhoneStateListener = new RadioInfoPhoneStateListener();
private class RadioInfoPhoneStateListener extends PhoneStateListener {
private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
@Override
public void onDataConnectionStateChanged(int state) {
updateDataState();
@@ -326,7 +324,7 @@ public class RadioInfo extends Activity {
updatePhysicalChannelConfiguration(configs);
}
}
};
private void updatePhysicalChannelConfiguration(List<PhysicalChannelConfig> configs) {
StringBuilder sb = new StringBuilder();
@@ -355,15 +353,15 @@ public class RadioInfo extends Activity {
private void updatePhoneIndex(int phoneIndex, int subId) {
// unregister listeners on the old subId
unregisterPhoneStateListener();
mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
mTelephonyManager.setCellInfoListRate(CELL_INFO_LIST_RATE_DISABLED);
// update the subId
mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId);
mImsManager = ImsManager.getInstance(getApplicationContext(), phoneIndex);
// update the phoneId
mImsManager = ImsManager.getInstance(getApplicationContext(), phoneIndex);
mPhone = PhoneFactory.getPhone(phoneIndex);
phone = PhoneFactory.getPhone(phoneIndex);
updateAllFields();
}
@@ -426,7 +424,7 @@ public class RadioInfo extends Activity {
mTelephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
mConnectivityManager = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE);
mPhone = PhoneFactory.getDefaultPhone();
phone = PhoneFactory.getDefaultPhone();
mImsManager = ImsManager.getInstance(getApplicationContext(),
SubscriptionManager.getDefaultVoicePhoneId());
@@ -486,7 +484,7 @@ public class RadioInfo extends Activity {
imsWfcProvisionedSwitch = (Switch) findViewById(R.id.wfc_provisioned_switch);
eabProvisionedSwitch = (Switch) findViewById(R.id.eab_provisioned_switch);
if (!ImsManager.isImsSupportedOnDevice(mPhone.getContext())) {
if (!ImsManager.isImsSupportedOnDevice(phone.getContext())) {
imsVolteProvisionedSwitch.setVisibility(View.GONE);
imsVtProvisionedSwitch.setVisibility(View.GONE);
imsWfcProvisionedSwitch.setVisibility(View.GONE);
@@ -547,7 +545,7 @@ public class RadioInfo extends Activity {
mSelectedPhoneIndex = 0; //phone 0
//FIXME: Replace with TelephonyManager call
mPhone.getPreferredNetworkType(
phone.getPreferredNetworkType(
mHandler.obtainMessage(EVENT_QUERY_PREFERRED_TYPE_DONE));
restoreFromBundle(icicle);
@@ -604,7 +602,6 @@ public class RadioInfo extends Activity {
cbrsDataSwitch.setOnCheckedChangeListener(mCbrsDataSwitchChangeListener);
}
unregisterPhoneStateListener();
registerPhoneStateListener();
mConnectivityManager.registerNetworkCallback(
@@ -669,7 +666,7 @@ public class RadioInfo extends Activity {
R.string.radioInfo_menu_viewFDN).setOnMenuItemClickListener(mViewFDNCallback);
menu.add(1, MENU_ITEM_VIEW_SDN, 0,
R.string.radioInfo_menu_viewSDN).setOnMenuItemClickListener(mViewSDNCallback);
if (ImsManager.isImsSupportedOnDevice(mPhone.getContext())) {
if (ImsManager.isImsSupportedOnDevice(phone.getContext())) {
menu.add(1, MENU_ITEM_GET_IMS_STATUS,
0, R.string.radioInfo_menu_getIMS).setOnMenuItemClickListener(mGetImsStatus);
}
@@ -712,32 +709,8 @@ public class RadioInfo extends Activity {
return labels;
}
private void unregisterPhoneStateListener() {
mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
// clear all fields so they are blank until the next listener event occurs
operatorName.setText("");
gprsState.setText("");
dataNetwork.setText("");
voiceNetwork.setText("");
sent.setText("");
received.setText("");
callState.setText("");
mLocation.setText("");
mMwiValue = false;
mMwi.setText("");
mCfiValue = false;
mCfi.setText("");
mCellInfo.setText("");
dBm.setText("");
gsmState.setText("");
roamingState.setText("");
mPhyChanConfig.setText("");
}
// register mPhoneStateListener for relevant fields using the current TelephonyManager
private void registerPhoneStateListener() {
mPhoneStateListener = new RadioInfoPhoneStateListener();
mTelephonyManager.listen(mPhoneStateListener,
PhoneStateListener.LISTEN_CALL_STATE
//b/27803938 - RadioInfo currently cannot read PRECISE_CALL_STATE
@@ -755,7 +728,7 @@ public class RadioInfo extends Activity {
private void updateDnsCheckState() {
//FIXME: Replace with a TelephonyManager call
dnsCheckState.setText(mPhone.isDnsCheckDisabled() ?
dnsCheckState.setText(phone.isDnsCheckDisabled() ?
"0.0.0.0 allowed" :"0.0.0.0 not allowed");
}
@@ -975,7 +948,7 @@ public class RadioInfo extends Activity {
}
private final void updateSubscriptionIds() {
mSubscriptionId.setText(Integer.toString(mPhone.getSubId()));
mSubscriptionId.setText(Integer.toString(phone.getSubId()));
mDds.setText(Integer.toString(SubscriptionManager.getDefaultDataSubscriptionId()));
}
@@ -1065,12 +1038,12 @@ public class RadioInfo extends Activity {
}
private final void updateNetworkType() {
if(mPhone != null) {
ServiceState ss = mPhone.getServiceState();
if(phone != null) {
ServiceState ss = phone.getServiceState();
dataNetwork.setText(ServiceState.rilRadioTechnologyToString(
mPhone.getServiceState().getRilDataRadioTechnology()));
phone.getServiceState().getRilDataRadioTechnology()));
voiceNetwork.setText(ServiceState.rilRadioTechnologyToString(
mPhone.getServiceState().getRilVoiceRadioTechnology()));
phone.getServiceState().getRilVoiceRadioTechnology()));
}
}
@@ -1079,16 +1052,16 @@ public class RadioInfo extends Activity {
String s;
Resources r = getResources();
s = mPhone.getDeviceId();
s = phone.getDeviceId();
if (s == null) s = r.getString(R.string.radioInfo_unknown);
mDeviceId.setText(s);
s = mPhone.getSubscriberId();
s = phone.getSubscriberId();
if (s == null) s = r.getString(R.string.radioInfo_unknown);
mSubscriberId.setText(s);
//FIXME: Replace with a TelephonyManager call
s = mPhone.getLine1Number();
s = phone.getLine1Number();
if (s == null) s = r.getString(R.string.radioInfo_unknown);
number.setText(s);
}
@@ -1165,7 +1138,7 @@ public class RadioInfo extends Activity {
private void refreshSmsc() {
//FIXME: Replace with a TelephonyManager call
mPhone.getSmscAddress(mHandler.obtainMessage(EVENT_QUERY_SMSC_DONE));
phone.getSmscAddress(mHandler.obtainMessage(EVENT_QUERY_SMSC_DONE));
}
private final void updateAllCellInfo() {
@@ -1237,7 +1210,8 @@ public class RadioInfo extends Activity {
// the content provider, which causes it to be loaded in a process
// other than the Dialer process, which causes a lot of stuff to
// break.
intent.setClassName("com.android.phone", "com.android.phone.SimContacts");
intent.setClassName("com.android.phone",
"com.android.phone.SimContacts");
startActivity(intent);
return true;
}
@@ -1251,7 +1225,8 @@ public class RadioInfo extends Activity {
// the content provider, which causes it to be loaded in a process
// other than the Dialer process, which causes a lot of stuff to
// break.
intent.setClassName("com.android.phone", "com.android.phone.settings.fdn.FdnList");
intent.setClassName("com.android.phone",
"com.android.phone.settings.fdn.FdnList");
startActivity(intent);
return true;
}
@@ -1266,7 +1241,8 @@ public class RadioInfo extends Activity {
// the content provider, which causes it to be loaded in a process
// other than the Dialer process, which causes a lot of stuff to
// break.
intent.setClassName("com.android.phone", "com.android.phone.ADNList");
intent.setClassName("com.android.phone",
"com.android.phone.ADNList");
startActivity(intent);
return true;
}
@@ -1274,11 +1250,11 @@ public class RadioInfo extends Activity {
private MenuItem.OnMenuItemClickListener mGetImsStatus = new MenuItem.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
boolean isImsRegistered = mPhone.isImsRegistered();
boolean availableVolte = mPhone.isVolteEnabled();
boolean availableWfc = mPhone.isWifiCallingEnabled();
boolean availableVt = mPhone.isVideoEnabled();
boolean availableUt = mPhone.isUtEnabled();
boolean isImsRegistered = phone.isImsRegistered();
boolean availableVolte = phone.isVolteEnabled();
boolean availableWfc = phone.isWifiCallingEnabled();
boolean availableVt = phone.isVideoEnabled();
boolean availableUt = phone.isUtEnabled();
final String imsRegString = isImsRegistered ?
getString(R.string.radio_info_ims_reg_status_registered) :
@@ -1335,7 +1311,7 @@ public class RadioInfo extends Activity {
private boolean isRadioOn() {
//FIXME: Replace with a TelephonyManager call
return mPhone.getServiceState().getState() != ServiceState.STATE_POWER_OFF;
return phone.getServiceState().getState() != ServiceState.STATE_POWER_OFF;
}
private void updateRadioPowerState() {
@@ -1367,7 +1343,7 @@ public class RadioInfo extends Activity {
}
void setImsConfigProvisionedState(int configItem, boolean state) {
if (mPhone != null && mImsManager != null) {
if (phone != null && mImsManager != null) {
QueuedWork.queue(new Runnable() {
public void run() {
try {
@@ -1386,14 +1362,14 @@ public class RadioInfo extends Activity {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
log("toggle radio power: currently " + (isRadioOn()?"on":"off"));
mPhone.setRadioPower(isChecked);
phone.setRadioPower(isChecked);
}
};
private boolean isImsVolteProvisioned() {
if (mPhone != null && mImsManager != null) {
return mImsManager.isVolteEnabledByPlatform(mPhone.getContext())
&& mImsManager.isVolteProvisionedOnDevice(mPhone.getContext());
if (phone != null && mImsManager != null) {
return mImsManager.isVolteEnabledByPlatform(phone.getContext())
&& mImsManager.isVolteProvisionedOnDevice(phone.getContext());
}
return false;
}
@@ -1406,9 +1382,9 @@ public class RadioInfo extends Activity {
};
private boolean isImsVtProvisioned() {
if (mPhone != null && mImsManager != null) {
return mImsManager.isVtEnabledByPlatform(mPhone.getContext())
&& mImsManager.isVtProvisionedOnDevice(mPhone.getContext());
if (phone != null && mImsManager != null) {
return mImsManager.isVtEnabledByPlatform(phone.getContext())
&& mImsManager.isVtProvisionedOnDevice(phone.getContext());
}
return false;
}
@@ -1421,9 +1397,9 @@ public class RadioInfo extends Activity {
};
private boolean isImsWfcProvisioned() {
if (mPhone != null && mImsManager != null) {
return mImsManager.isWfcEnabledByPlatform(mPhone.getContext())
&& mImsManager.isWfcProvisionedOnDevice(mPhone.getContext());
if (phone != null && mImsManager != null) {
return mImsManager.isWfcEnabledByPlatform(phone.getContext())
&& mImsManager.isWfcProvisionedOnDevice(phone.getContext());
}
return false;
}
@@ -1478,7 +1454,7 @@ public class RadioInfo extends Activity {
}
private void updateImsProvisionedState() {
if (!ImsManager.isImsSupportedOnDevice(mPhone.getContext())) {
if (!ImsManager.isImsSupportedOnDevice(phone.getContext())) {
return;
}
log("updateImsProvisionedState isImsVolteProvisioned()=" + isImsVolteProvisioned());
@@ -1488,31 +1464,31 @@ public class RadioInfo extends Activity {
imsVolteProvisionedSwitch.setChecked(isImsVolteProvisioned());
imsVolteProvisionedSwitch.setOnCheckedChangeListener(mImsVolteCheckedChangeListener);
imsVolteProvisionedSwitch.setEnabled(!Build.IS_USER
&& mImsManager.isVolteEnabledByPlatform(mPhone.getContext()));
&& mImsManager.isVolteEnabledByPlatform(phone.getContext()));
imsVtProvisionedSwitch.setOnCheckedChangeListener(null);
imsVtProvisionedSwitch.setChecked(isImsVtProvisioned());
imsVtProvisionedSwitch.setOnCheckedChangeListener(mImsVtCheckedChangeListener);
imsVtProvisionedSwitch.setEnabled(!Build.IS_USER
&& mImsManager.isVtEnabledByPlatform(mPhone.getContext()));
&& mImsManager.isVtEnabledByPlatform(phone.getContext()));
imsWfcProvisionedSwitch.setOnCheckedChangeListener(null);
imsWfcProvisionedSwitch.setChecked(isImsWfcProvisioned());
imsWfcProvisionedSwitch.setOnCheckedChangeListener(mImsWfcCheckedChangeListener);
imsWfcProvisionedSwitch.setEnabled(!Build.IS_USER
&& mImsManager.isWfcEnabledByPlatform(mPhone.getContext()));
&& mImsManager.isWfcEnabledByPlatform(phone.getContext()));
eabProvisionedSwitch.setOnCheckedChangeListener(null);
eabProvisionedSwitch.setChecked(isEabProvisioned());
eabProvisionedSwitch.setOnCheckedChangeListener(mEabCheckedChangeListener);
eabProvisionedSwitch.setEnabled(!Build.IS_USER
&& isEabEnabledByPlatform(mPhone.getContext()));
&& isEabEnabledByPlatform(phone.getContext()));
}
OnClickListener mDnsCheckButtonHandler = new OnClickListener() {
public void onClick(View v) {
//FIXME: Replace with a TelephonyManager call
mPhone.disableDnsCheck(!mPhone.isDnsCheckDisabled());
phone.disableDnsCheck(!phone.isDnsCheckDisabled());
updateDnsCheckState();
}
};
@@ -1539,7 +1515,7 @@ public class RadioInfo extends Activity {
OnClickListener mUpdateSmscButtonHandler = new OnClickListener() {
public void onClick(View v) {
updateSmscButton.setEnabled(false);
mPhone.setSmscAddress(smsc.getText().toString(),
phone.setSmscAddress(smsc.getText().toString(),
mHandler.obtainMessage(EVENT_UPDATE_SMSC_DONE));
}
};
@@ -1584,40 +1560,14 @@ public class RadioInfo extends Activity {
// want this setting to be set, so that if the radio hiccups and this setting
// is for some reason unsuccessful, future calls to the radio will reflect
// the users's preference which is set here.
final int subId = mPhone.getSubId();
final int subId = phone.getSubId();
if (SubscriptionManager.isUsableSubIdValue(subId)) {
Settings.Global.putInt(mPhone.getContext().getContentResolver(),
Settings.Global.putInt(phone.getContext().getContentResolver(),
PREFERRED_NETWORK_MODE + subId, mPreferredNetworkTypeResult);
}
log("Calling setPreferredNetworkType(" + mPreferredNetworkTypeResult + ")");
Message msg = mHandler.obtainMessage(EVENT_SET_PREFERRED_TYPE_DONE);
mPhone.setPreferredNetworkType(mPreferredNetworkTypeResult, msg);
}
}
public void onNothingSelected(AdapterView parent) {
}
};
AdapterView.OnItemSelectedListener mSelectPhoneIndexHandler =
new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView parent, View v, int pos, long id) {
if (pos >= 0 && pos <= mPhoneIndexLabels.length - 1) {
// the array position is equal to the phone index
int phoneIndex = pos;
Phone[] phones = PhoneFactory.getPhones();
if (phones == null || phones.length <= phoneIndex) {
return;
}
// getSubId says it takes a slotIndex, but it actually takes a phone index
int[] subIds = SubscriptionManager.getSubId(phoneIndex);
if (subIds == null || subIds.length < 1) {
return;
}
mSelectedPhoneIndex = phoneIndex;
updatePhoneIndex(phoneIndex, subIds[0]);
phone.setPreferredNetworkType(mPreferredNetworkTypeResult, msg);
}
}