From ed95f35423f9f4c44c0090f61b882ecd529a5280 Mon Sep 17 00:00:00 2001 From: althafvly Date: Fri, 25 Oct 2019 07:16:45 +0000 Subject: [PATCH] Settings: Protect sensitive data on the about phone - Hide some personal info like phone number and IMEI. - IMEI shows on a tap, so why not. - Avoid showing this in screenshot/screenrecord Co-authored-by: El Dainosor Change-Id: I45b7898da440c36045aec64a0a86fb804116cd9d --- res/values/strings.xml | 2 ++ res/xml/my_device_info.xml | 1 - .../PhoneNumberPreferenceController.java | 22 ++++++++++++++++--- .../imei/ImeiInfoPreferenceController.java | 5 +++-- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 25461aa0933..b8d5a8e25d6 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -29,6 +29,8 @@ Unknown + + Tap to show info You are now %1$d step away from being a developer. diff --git a/res/xml/my_device_info.xml b/res/xml/my_device_info.xml index 9547318a86e..9165745f472 100644 --- a/res/xml/my_device_info.xml +++ b/res/xml/my_device_info.xml @@ -57,7 +57,6 @@ android:order="3" android:title="@string/status_number" android:summary="@string/summary_placeholder" - android:selectable="false" settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController" settings:enableCopying="true"/> diff --git a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java index 99c572d527e..2ad9331a748 100644 --- a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java +++ b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java @@ -56,7 +56,24 @@ public class PhoneNumberPreferenceController extends BasePreferenceController { @Override public CharSequence getSummary() { - return getFirstPhoneNumber(); + 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 @@ -73,7 +90,6 @@ public class PhoneNumberPreferenceController extends BasePreferenceController { final Preference multiSimPreference = createNewPreference(screen.getContext()); multiSimPreference.setOrder(phonePreferenceOrder + simSlotNumber); multiSimPreference.setKey(KEY_PHONE_NUMBER + simSlotNumber); - multiSimPreference.setSelectable(false); category.addPreference(multiSimPreference); mPreferenceList.add(multiSimPreference); } @@ -84,7 +100,7 @@ public class PhoneNumberPreferenceController extends BasePreferenceController { for (int simSlotNumber = 0; simSlotNumber < mPreferenceList.size(); simSlotNumber++) { final Preference simStatusPreference = mPreferenceList.get(simSlotNumber); simStatusPreference.setTitle(getPreferenceTitle(simSlotNumber)); - simStatusPreference.setSummary(getPhoneNumber(simSlotNumber)); + simStatusPreference.setSummary(getSummary()); } } diff --git a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java index 027e8c806ca..e90477270e0 100644 --- a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java +++ b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java @@ -96,7 +96,7 @@ public class ImeiInfoPreferenceController extends BasePreferenceController { @Override public CharSequence getSummary() { - return getSummary(0); + return mContext.getString(R.string.device_info_protected_single_press); } private CharSequence getSummary(int simSlot) { @@ -113,6 +113,7 @@ public class ImeiInfoPreferenceController extends BasePreferenceController { } ImeiInfoDialogFragment.show(mFragment, simSlot, preference.getTitle().toString()); + preference.setSummary(getSummary(simSlot)); return true; } @@ -129,7 +130,7 @@ public class ImeiInfoPreferenceController extends BasePreferenceController { private void updatePreference(Preference preference, int simSlot) { preference.setTitle(getTitle(simSlot)); - preference.setSummary(getSummary(simSlot)); + preference.setSummary(getSummary()); } private CharSequence getTitleForGsmPhone(int simSlot) {