Merge "Avoid IMEI overrided by getSummary() for dual SIM condition" into qt-dev
This commit is contained in:
@@ -126,13 +126,7 @@ public class ImeiInfoDialogController {
|
||||
}
|
||||
|
||||
private SubscriptionInfo getSubscriptionInfo(Context context, int slotId) {
|
||||
final List<SubscriptionInfo> subscriptionInfoList = SubscriptionManager.from(context)
|
||||
.getActiveSubscriptionInfoList(true);
|
||||
if (subscriptionInfoList == null || subscriptionInfoList.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return subscriptionInfoList.get(slotId);
|
||||
return SubscriptionManager.from(context).getActiveSubscriptionInfoForSimSlotIndex(slotId);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
|
@@ -20,6 +20,8 @@ import static android.telephony.TelephonyManager.PHONE_TYPE_CDMA;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.UserManager;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
@@ -76,11 +78,27 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
if (preference == null) {
|
||||
return;
|
||||
}
|
||||
int size = mPreferenceList.size();
|
||||
for (int i = 0; i < size; i++) {
|
||||
Preference pref = mPreferenceList.get(i);
|
||||
updatePreference(pref, i);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getSummary() {
|
||||
final int phoneType = mTelephonyManager.getPhoneType();
|
||||
return phoneType == PHONE_TYPE_CDMA ? mTelephonyManager.getMeid()
|
||||
: mTelephonyManager.getImei();
|
||||
return getSummary(0);
|
||||
}
|
||||
|
||||
private CharSequence getSummary(int simSlot) {
|
||||
final int phoneType = getPhoneType(simSlot);
|
||||
return phoneType == PHONE_TYPE_CDMA ? mTelephonyManager.getMeid(simSlot)
|
||||
: mTelephonyManager.getImei(simSlot);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -117,19 +135,12 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {
|
||||
|
||||
@Override
|
||||
public void copy() {
|
||||
Sliceable.setCopyContent(mContext, getSummary(), mContext.getText(R.string.status_imei));
|
||||
Sliceable.setCopyContent(mContext, getSummary(0), getTitle(0));
|
||||
}
|
||||
|
||||
private void updatePreference(Preference preference, int simSlot) {
|
||||
final int phoneType = mTelephonyManager.getPhoneType();
|
||||
if (phoneType == PHONE_TYPE_CDMA) {
|
||||
preference.setTitle(getTitleForCdmaPhone(simSlot));
|
||||
preference.setSummary(getMeid(simSlot));
|
||||
} else {
|
||||
// GSM phone
|
||||
preference.setTitle(getTitleForGsmPhone(simSlot));
|
||||
preference.setSummary(mTelephonyManager.getImei(simSlot));
|
||||
}
|
||||
preference.setTitle(getTitle(simSlot));
|
||||
preference.setSummary(getSummary(simSlot));
|
||||
}
|
||||
|
||||
private CharSequence getTitleForGsmPhone(int simSlot) {
|
||||
@@ -142,9 +153,17 @@ public class ImeiInfoPreferenceController extends BasePreferenceController {
|
||||
: mContext.getString(R.string.status_meid_number);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
String getMeid(int simSlot) {
|
||||
return mTelephonyManager.getMeid(simSlot);
|
||||
private CharSequence getTitle(int simSlot) {
|
||||
final int phoneType = getPhoneType(simSlot);
|
||||
return phoneType == PHONE_TYPE_CDMA ? getTitleForCdmaPhone(simSlot)
|
||||
: getTitleForGsmPhone(simSlot);
|
||||
}
|
||||
|
||||
private int getPhoneType(int slotIndex) {
|
||||
SubscriptionInfo subInfo = SubscriptionManager.from(mContext)
|
||||
.getActiveSubscriptionInfoForSimSlotIndex(slotIndex);
|
||||
return mTelephonyManager.getCurrentPhoneType(subInfo != null ? subInfo.getSubscriptionId()
|
||||
: SubscriptionManager.DEFAULT_SUBSCRIPTION_ID);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
|
@@ -93,7 +93,7 @@ public class ImeiInfoPreferenceControllerTest {
|
||||
public void displayPreference_multiSimGsm_shouldAddSecondPreference() {
|
||||
ReflectionHelpers.setField(mController, "mIsMultiSim", true);
|
||||
when(mTelephonyManager.getPhoneCount()).thenReturn(2);
|
||||
when(mTelephonyManager.getPhoneType()).thenReturn(PHONE_TYPE_GSM);
|
||||
when(mTelephonyManager.getCurrentPhoneType(anyInt())).thenReturn(PHONE_TYPE_GSM);
|
||||
|
||||
mController.displayPreference(mScreen);
|
||||
|
||||
@@ -104,8 +104,8 @@ public class ImeiInfoPreferenceControllerTest {
|
||||
public void displayPreference_singleSimCdmaPhone_shouldSetSingleSimCdmaTitleAndMeid() {
|
||||
ReflectionHelpers.setField(mController, "mIsMultiSim", false);
|
||||
final String meid = "125132215123";
|
||||
when(mTelephonyManager.getPhoneType()).thenReturn(PHONE_TYPE_CDMA);
|
||||
doReturn(meid).when(mController).getMeid(anyInt());
|
||||
when(mTelephonyManager.getCurrentPhoneType(anyInt())).thenReturn(PHONE_TYPE_CDMA);
|
||||
when(mTelephonyManager.getMeid(anyInt())).thenReturn(meid);
|
||||
|
||||
mController.displayPreference(mScreen);
|
||||
|
||||
@@ -118,8 +118,8 @@ public class ImeiInfoPreferenceControllerTest {
|
||||
ReflectionHelpers.setField(mController, "mIsMultiSim", true);
|
||||
final String meid = "125132215123";
|
||||
when(mTelephonyManager.getPhoneCount()).thenReturn(2);
|
||||
when(mTelephonyManager.getPhoneType()).thenReturn(PHONE_TYPE_CDMA);
|
||||
doReturn(meid).when(mController).getMeid(anyInt());
|
||||
when(mTelephonyManager.getCurrentPhoneType(anyInt())).thenReturn(PHONE_TYPE_CDMA);
|
||||
when(mTelephonyManager.getMeid(anyInt())).thenReturn(meid);
|
||||
|
||||
mController.displayPreference(mScreen);
|
||||
|
||||
@@ -134,7 +134,7 @@ public class ImeiInfoPreferenceControllerTest {
|
||||
public void displayPreference_singleSimGsmPhone_shouldSetSingleSimGsmTitleAndImei() {
|
||||
ReflectionHelpers.setField(mController, "mIsMultiSim", false);
|
||||
final String imei = "125132215123";
|
||||
when(mTelephonyManager.getPhoneType()).thenReturn(PHONE_TYPE_GSM);
|
||||
when(mTelephonyManager.getCurrentPhoneType(anyInt())).thenReturn(PHONE_TYPE_GSM);
|
||||
when(mTelephonyManager.getImei(anyInt())).thenReturn(imei);
|
||||
|
||||
mController.displayPreference(mScreen);
|
||||
@@ -148,7 +148,7 @@ public class ImeiInfoPreferenceControllerTest {
|
||||
ReflectionHelpers.setField(mController, "mIsMultiSim", true);
|
||||
final String imei = "125132215123";
|
||||
when(mTelephonyManager.getPhoneCount()).thenReturn(2);
|
||||
when(mTelephonyManager.getPhoneType()).thenReturn(PHONE_TYPE_GSM);
|
||||
when(mTelephonyManager.getCurrentPhoneType(anyInt())).thenReturn(PHONE_TYPE_GSM);
|
||||
when(mTelephonyManager.getImei(anyInt())).thenReturn(imei);
|
||||
|
||||
mController.displayPreference(mScreen);
|
||||
@@ -176,8 +176,8 @@ public class ImeiInfoPreferenceControllerTest {
|
||||
public void copy_shouldCopyImeiToClipboard() {
|
||||
ReflectionHelpers.setField(mController, "mIsMultiSim", false);
|
||||
final String meid = "125132215123";
|
||||
when(mTelephonyManager.getPhoneType()).thenReturn(PHONE_TYPE_CDMA);
|
||||
when(mTelephonyManager.getMeid()).thenReturn(meid);
|
||||
when(mTelephonyManager.getCurrentPhoneType(anyInt())).thenReturn(PHONE_TYPE_CDMA);
|
||||
when(mTelephonyManager.getMeid(anyInt())).thenReturn(meid);
|
||||
|
||||
mController.copy();
|
||||
|
||||
|
Reference in New Issue
Block a user