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