[Sim UI enhancement] remove the "Tap to show info"
Bug: 318310357
Bug: 298898436
Bug: 298891941
Test: atest PhoneNumberPreferenceControllerTest
atest ImeiInfoPreferenceControllerTest
atest SimEidPreferenceControllerTest
Change-Id: Iadd82173b55b8f66409c1ff056dd4c323d6dcc35
diff --git a/res/xml/my_device_info.xml b/res/xml/my_device_info.xml
index 29c3c62..62bc040 100644
--- a/res/xml/my_device_info.xml
+++ b/res/xml/my_device_info.xml
@@ -52,11 +52,12 @@
settings:controller="com.android.settings.deviceinfo.BrandedAccountPreferenceController"/>
<!-- Phone number -->
- <com.android.settings.deviceinfo.PhoneNumberSummaryPreference
+ <Preference
android:key="phone_number"
android:order="3"
android:title="@string/status_number"
android:summary="@string/summary_placeholder"
+ android:selectable="false"
settings:isPreferenceVisible="@bool/config_show_sim_info"
settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController"
settings:enableCopying="true"/>
@@ -118,7 +119,6 @@
android:key="eid_info"
android:order="31"
android:title="@string/status_eid"
- android:summary="@string/device_info_protected_single_press"
android:positiveButtonText="@string/dlg_ok"
android:dialogLayout="@layout/dialog_eid_status"
settings:isPreferenceVisible="@bool/config_show_sim_info"
@@ -126,7 +126,7 @@
settings:controller="com.android.settings.deviceinfo.simstatus.SimEidPreferenceController"/>
<!-- IMEI -->
- <com.android.settings.deviceinfo.PhoneNumberSummaryPreference
+ <Preference
android:key="imei_info"
android:order="32"
android:title="@string/status_imei"
diff --git a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
index d1bf808..8e583fd 100644
--- a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
@@ -56,28 +56,6 @@
}
@Override
- public CharSequence getSummary() {
- return mContext.getString(R.string.device_info_protected_single_press);
- }
-
- @Override
- public boolean handlePreferenceTreeClick(Preference preference) {
- String prefKey = preference.getKey();
- if (prefKey.startsWith(KEY_PHONE_NUMBER)) {
- int simSlotNumber = 0;
- if (!TextUtils.equals(prefKey, KEY_PHONE_NUMBER)) {
- // Get multisim slot number from preference key.
- // Multisim preference key is KEY_PHONE_NUMBER + simSlotNumber
- simSlotNumber = Integer.parseInt(
- prefKey.replaceAll("[^0-9]", ""));
- }
- final Preference simStatusPreference = mPreferenceList.get(simSlotNumber);
- simStatusPreference.setSummary(getPhoneNumber(simSlotNumber));
- }
- return super.handlePreferenceTreeClick(preference);
- }
-
- @Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
@@ -105,7 +83,7 @@
for (int simSlotNumber = 0; simSlotNumber < mPreferenceList.size(); simSlotNumber++) {
final Preference simStatusPreference = mPreferenceList.get(simSlotNumber);
simStatusPreference.setTitle(getPreferenceTitle(simSlotNumber));
- simStatusPreference.setSummary(getSummary());
+ simStatusPreference.setSummary(getPhoneNumber(simSlotNumber));
}
}
@@ -155,7 +133,7 @@
}
@VisibleForTesting
- protected CharSequence getFormattedPhoneNumber(SubscriptionInfo subscriptionInfo) {
+ protected String getFormattedPhoneNumber(SubscriptionInfo subscriptionInfo) {
final String phoneNumber = SubscriptionUtil.getBidiFormattedPhoneNumber(mContext,
subscriptionInfo);
return TextUtils.isEmpty(phoneNumber) ? mContext.getString(R.string.device_info_default)
@@ -164,6 +142,6 @@
@VisibleForTesting
protected Preference createNewPreference(Context context) {
- return new PhoneNumberSummaryPreference(context);
+ return new Preference(context);
}
}
diff --git a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
index 2045b96..ff55184 100644
--- a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
@@ -33,7 +33,6 @@
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.deviceinfo.PhoneNumberSummaryPreference;
import com.android.settings.deviceinfo.simstatus.SlotSimStatus;
import com.android.settings.network.SubscriptionUtil;
import com.android.settingslib.Utils;
@@ -103,6 +102,7 @@
multiImeiPreference.setKey(DEFAULT_KEY + (1 + simSlotNumber));
multiImeiPreference.setEnabled(true);
multiImeiPreference.setCopyingEnabled(true);
+
category.addPreference(multiImeiPreference);
}
}
@@ -112,11 +112,6 @@
updatePreference(preference, keyToSlotIndex(preference.getKey()));
}
- @Override
- public CharSequence getSummary() {
- return mContext.getString(R.string.device_info_protected_single_press);
- }
-
private CharSequence getSummary(int simSlot) {
final int phoneType = getPhoneType(simSlot);
return phoneType == PHONE_TYPE_CDMA ? mTelephonyManager.getMeid(simSlot)
@@ -150,8 +145,12 @@
@VisibleForTesting
protected void updatePreference(Preference preference, int simSlot) {
+ if (simSlot < 0) {
+ preference.setVisible(false);
+ return;
+ }
preference.setTitle(getTitle(simSlot));
- preference.setSummary(getSummary());
+ preference.setSummary(getSummary(simSlot));
}
private CharSequence getTitleForGsmPhone(int simSlot, boolean isPrimaryImei) {
@@ -195,6 +194,6 @@
@VisibleForTesting
Preference createNewPreference(Context context) {
- return new PhoneNumberSummaryPreference(context);
+ return new Preference(context);
}
}
diff --git a/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt b/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt
index e0376dc..f765d8c 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt
+++ b/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt
@@ -92,6 +92,7 @@
}
preference.title = title
preference.dialogTitle = title
+ preference.summary = eid
updateDialog()
}
}
@@ -130,9 +131,6 @@
val qrCodeView = dialog.requireViewById<ImageView>(R.id.esim_id_qrcode)
qrCodeView.setImageBitmap(getEidQrCode(eid))
-
- // After "Tap to show", eid is displayed on preference.
- preference.summary = textView.text
}
override fun handlePreferenceTreeClick(preference: Preference): Boolean {
diff --git a/tests/unit/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java
index 5f02b04..9a5399c 100644
--- a/tests/unit/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java
@@ -37,7 +37,6 @@
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
-import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.ResourcesUtils;
import org.junit.Before;
@@ -89,27 +88,10 @@
mCategory.setKey(categoryKey);
mScreen.addPreference(mCategory);
- doReturn(mSubscriptionInfo).when(mController).getSubscriptionInfo(anyInt());
doReturn(mSecondPreference).when(mController).createNewPreference(mContext);
}
@Test
- public void getAvailabilityStatus_isVoiceCapable_shouldBeAVAILABLE() {
- when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(
- BasePreferenceController.AVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_isNotVoiceCapable_shouldBeUNSUPPORTED_ON_DEVICE() {
- when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(
- BasePreferenceController.UNSUPPORTED_ON_DEVICE);
- }
-
- @Test
public void displayPreference_multiSim_shouldAddSecondPreference() {
when(mTelephonyManager.getPhoneCount()).thenReturn(2);
@@ -123,6 +105,7 @@
@Test
public void updateState_singleSim_shouldUpdateTitleAndPhoneNumber() {
final String phoneNumber = "1111111111";
+ doReturn(mSubscriptionInfo).when(mController).getSubscriptionInfo(anyInt());
doReturn(phoneNumber).when(mController).getFormattedPhoneNumber(mSubscriptionInfo);
when(mTelephonyManager.getPhoneCount()).thenReturn(1);
mController.displayPreference(mScreen);
@@ -136,6 +119,7 @@
@Test
public void updateState_multiSim_shouldUpdateTitleAndPhoneNumberOfMultiplePreferences() {
final String phoneNumber = "1111111111";
+ doReturn(mSubscriptionInfo).when(mController).getSubscriptionInfo(anyInt());
doReturn(phoneNumber).when(mController).getFormattedPhoneNumber(mSubscriptionInfo);
when(mTelephonyManager.getPhoneCount()).thenReturn(2);
mController.displayPreference(mScreen);
@@ -153,11 +137,11 @@
@Test
public void getSummary_cannotGetActiveSubscriptionInfo_shouldShowUnknown() {
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(null);
+ mController.displayPreference(mScreen);
- CharSequence primaryNumber = mController.getSummary();
+ mController.updateState(mPreference);
- assertThat(primaryNumber).isNotNull();
- assertThat(primaryNumber).isEqualTo(ResourcesUtils.getResourcesString(
+ verify(mPreference).setSummary(ResourcesUtils.getResourcesString(
mContext, "device_info_default"));
}
@@ -166,9 +150,10 @@
List<SubscriptionInfo> infos = new ArrayList<>();
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(infos);
- CharSequence primaryNumber = mController.getSummary();
+ mController.displayPreference(mScreen);
+ mController.updateState(mPreference);
- assertThat(primaryNumber).isEqualTo(ResourcesUtils.getResourcesString(
+ verify(mPreference).setSummary(ResourcesUtils.getResourcesString(
mContext, "device_info_default"));
}
}