From 7c29c1956b8b8896fd02bb9cd60092cf40805895 Mon Sep 17 00:00:00 2001 From: jhenrique09 Date: Sat, 11 Dec 2021 14:23:43 -0300 Subject: [PATCH] MSIM Ringtone: Improve on devices with ESIM MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ib0e0348b29d9bcb567f2d3c0725dd6950a3bbc1e Signed-off-by: Hưng Phan Signed-off-by: Pranav Vashi --- .../PhoneRingtone2PreferenceController.java | 3 +++ .../PhoneRingtonePreferenceController.java | 6 ++---- .../RingtonePreferenceControllerBase.java | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/notification/PhoneRingtone2PreferenceController.java b/src/com/android/settings/notification/PhoneRingtone2PreferenceController.java index 2c2e07bb26e..1233e28642a 100644 --- a/src/com/android/settings/notification/PhoneRingtone2PreferenceController.java +++ b/src/com/android/settings/notification/PhoneRingtone2PreferenceController.java @@ -55,6 +55,9 @@ public class PhoneRingtone2PreferenceController extends RingtonePreferenceContro @Override public boolean isAvailable() { + if (isBuiltInEuiccSlot(SLOT_ID)) { + return false; + } TelephonyManager telephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); return Utils.isVoiceCapable(mContext) && telephonyManager.isMultiSimEnabled(); diff --git a/src/com/android/settings/notification/PhoneRingtonePreferenceController.java b/src/com/android/settings/notification/PhoneRingtonePreferenceController.java index 9c681d437a5..f70ee66c9c8 100644 --- a/src/com/android/settings/notification/PhoneRingtonePreferenceController.java +++ b/src/com/android/settings/notification/PhoneRingtonePreferenceController.java @@ -44,12 +44,10 @@ public class PhoneRingtonePreferenceController extends RingtonePreferenceControl TelephonyManager telephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); - if (telephonyManager.isMultiSimEnabled()) { - // For Multi SIM device, shoud show "Phone ringtone - SIM 1" for slot1 ringtone setting. + if (telephonyManager.isMultiSimEnabled() && !isDeviceSupportsESIM()) { DefaultRingtonePreference ringtonePreference = (DefaultRingtonePreference) screen.findPreference(KEY_PHONE_RINGTONE); - ringtonePreference.setTitle(mContext.getString(R.string.ringtone_title) + " - " + - String.format(mContext.getString(R.string.sim_card_number_title), 1)); + ringtonePreference.setTitle(mContext.getString(R.string.ringtone_title)); ringtonePreference.setEnabled(hasCard()); } } diff --git a/src/com/android/settings/notification/RingtonePreferenceControllerBase.java b/src/com/android/settings/notification/RingtonePreferenceControllerBase.java index 359ea71abdf..12a156e4b62 100644 --- a/src/com/android/settings/notification/RingtonePreferenceControllerBase.java +++ b/src/com/android/settings/notification/RingtonePreferenceControllerBase.java @@ -70,4 +70,19 @@ public abstract class RingtonePreferenceControllerBase extends AbstractPreferenc public abstract int getRingtoneType(); + public boolean isBuiltInEuiccSlot(int slotIndex) { + int[] euiccSlots = mContext.getResources() + .getIntArray(com.android.internal.R.array.non_removable_euicc_slots); + for (int slot : euiccSlots) { + if (slot == slotIndex) { + return true; + } + } + return false; + } + + public boolean isDeviceSupportsESIM() { + return mContext.getResources() + .getIntArray(com.android.internal.R.array.non_removable_euicc_slots).length > 0; + } }