From e60e722eb547825261aa5ebe66e2c026e06348bb Mon Sep 17 00:00:00 2001 From: maxwen Date: Wed, 6 Mar 2019 14:07:22 +0100 Subject: [PATCH] Settings: enable SIM card ringtone only if slot not empty [1/2] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit same as in SIM card settings page Change-Id: I3d0478080fdb838e0b730fdf7900dfa2f2e2ffe0 Signed-off-by: Hưng Phan Signed-off-by: Pranav Vashi --- res/values/strings.xml | 11 +++++------ .../PhoneRingtone2PreferenceController.java | 7 +++++++ .../PhoneRingtonePreferenceController.java | 8 ++++++++ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 0b54f9f0b23..ef38c78b809 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -8417,12 +8417,6 @@ Data usage charges may apply. Phone ringtone - - Phone ringtone - SIM 1 - - - Phone ringtone - SIM 2 - Default notification sound @@ -14413,4 +14407,9 @@ Data usage charges may apply. Enter supervision PIN %1$s animation + + + Phone ringtone - SIM 1 + + Phone ringtone - SIM 2 diff --git a/src/com/android/settings/notification/PhoneRingtone2PreferenceController.java b/src/com/android/settings/notification/PhoneRingtone2PreferenceController.java index 6215936d3af..2acda015e5d 100644 --- a/src/com/android/settings/notification/PhoneRingtone2PreferenceController.java +++ b/src/com/android/settings/notification/PhoneRingtone2PreferenceController.java @@ -41,6 +41,7 @@ public class PhoneRingtone2PreferenceController extends RingtonePreferenceContro DefaultRingtonePreference ringtonePreference = (DefaultRingtonePreference) screen.findPreference(KEY_PHONE_RINGTONE2); ringtonePreference.setSlotId(SLOT_ID); + ringtonePreference.setEnabled(hasCard()); } @Override @@ -59,4 +60,10 @@ public class PhoneRingtone2PreferenceController extends RingtonePreferenceContro public int getRingtoneType() { return RingtoneManager.TYPE_RINGTONE; } + + private boolean hasCard() { + TelephonyManager telephonyManager = + (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); + return telephonyManager.hasIccCard(SLOT_ID); + } } diff --git a/src/com/android/settings/notification/PhoneRingtonePreferenceController.java b/src/com/android/settings/notification/PhoneRingtonePreferenceController.java index c8611b437c7..bb9d0da84c2 100644 --- a/src/com/android/settings/notification/PhoneRingtonePreferenceController.java +++ b/src/com/android/settings/notification/PhoneRingtonePreferenceController.java @@ -31,6 +31,7 @@ import com.android.settings.Utils; public class PhoneRingtonePreferenceController extends RingtonePreferenceControllerBase { + private static final int SLOT_ID = 0; private static final String KEY_PHONE_RINGTONE = "phone_ringtone"; public PhoneRingtonePreferenceController(Context context) { @@ -48,6 +49,7 @@ public class PhoneRingtonePreferenceController extends RingtonePreferenceControl DefaultRingtonePreference ringtonePreference = (DefaultRingtonePreference) screen.findPreference(KEY_PHONE_RINGTONE); ringtonePreference.setTitle(mContext.getString(R.string.ringtone1_title)); + ringtonePreference.setEnabled(hasCard()); } } @@ -73,4 +75,10 @@ public class PhoneRingtonePreferenceController extends RingtonePreferenceControl return Flags.enableRingtoneHapticsCustomization() && mContext.getResources().getBoolean( com.android.internal.R.bool.config_ringtoneVibrationSettingsSupported); } + + private boolean hasCard() { + TelephonyManager telephonyManager = + (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); + return telephonyManager.hasIccCard(SLOT_ID); + } }