summaryrefslogtreecommitdiff
path: root/src/com/android
diff options
context:
space:
mode:
authorJack Yu <jackyu@google.com>2020-05-26 23:11:14 -0700
committerJack Yu <jackyu@google.com>2020-05-27 12:02:24 -0700
commit5f066330fb5911a60518fcc3cae10f592660b6e6 (patch)
treecded13874098f6829fec1b86c2e4d40a1f838338 /src/com/android
parent3db43b7ae0678b81b3e7a33ee5f6c14f599837f1 (diff)
downloadCellBroadcastReceiver-5f066330fb5911a60518fcc3cae10f592660b6e6.tar.gz
Added few more changes for Hong Kong
1. Disable alert message copying. 2. When override DND is enabled, always enable vibration. Bug: 154533160 Test: Manual Change-Id: I1345b89c13499796788f0db46778b8b2c3279f24
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java3
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java44
2 files changed, 41 insertions, 6 deletions
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java
index 0159dfeb6..d8cc2c499 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java
@@ -326,7 +326,8 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI
// retrieve whether to play alert sound in full volume regardless Do Not Disturb is on.
mOverrideDnd = intent.getBooleanExtra(ALERT_AUDIO_OVERRIDE_DND_EXTRA, false);
// retrieve the vibrate settings from cellbroadcast receiver settings.
- mEnableVibrate = prefs.getBoolean(CellBroadcastSettings.KEY_ENABLE_ALERT_VIBRATE, true);
+ mEnableVibrate = prefs.getBoolean(CellBroadcastSettings.KEY_ENABLE_ALERT_VIBRATE, true)
+ || mOverrideDnd;
// retrieve the vibration patterns.
mVibrationPattern = intent.getIntArrayExtra(ALERT_AUDIO_VIBRATION_PATTERN_EXTRA);
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
index 1f424ba63..7fd57ecda 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
@@ -187,6 +187,7 @@ public class CellBroadcastSettings extends Activity {
private TwoStatePreference mAreaUpdateInfoCheckBox;
private TwoStatePreference mTestCheckBox;
private TwoStatePreference mStateLocalTestCheckBox;
+ private TwoStatePreference mEnableVibrateCheckBox;
private Preference mAlertHistory;
private PreferenceCategory mAlertCategory;
private PreferenceCategory mAlertPreferencesCategory;
@@ -254,6 +255,7 @@ public class CellBroadcastSettings extends Activity {
mAlertHistory = findPreference(KEY_EMERGENCY_ALERT_HISTORY);
mReceiveCmasInSecondLanguageCheckBox = (TwoStatePreference) findPreference
(KEY_RECEIVE_CMAS_IN_SECOND_LANGUAGE);
+ mEnableVibrateCheckBox = findPreference(KEY_ENABLE_ALERT_VIBRATE);
// Show checkbox for Presidential alerts in settings
mPresidentialCheckBox = (TwoStatePreference)
@@ -364,15 +366,17 @@ public class CellBroadcastSettings extends Activity {
startConfigServiceListener);
}
- if (mOverrideDndCheckBox != null
- && !sp.getBoolean(KEY_OVERRIDE_DND_SETTINGS_CHANGED, false)) {
- // If the user hasn't changed this settings yet, use the default settings from
- // resource overlay.
- mOverrideDndCheckBox.setChecked(res.getBoolean(R.bool.override_dnd_default));
+ if (mOverrideDndCheckBox != null) {
+ if (!sp.getBoolean(KEY_OVERRIDE_DND_SETTINGS_CHANGED, false)) {
+ // If the user hasn't changed this settings yet, use the default settings
+ // from resource overlay.
+ mOverrideDndCheckBox.setChecked(res.getBoolean(R.bool.override_dnd_default));
+ }
mOverrideDndCheckBox.setOnPreferenceChangeListener(
(pref, newValue) -> {
sp.edit().putBoolean(KEY_OVERRIDE_DND_SETTINGS_CHANGED,
true).apply();
+ updateVibrationPreference((boolean) newValue);
return true;
});
}
@@ -387,10 +391,30 @@ public class CellBroadcastSettings extends Activity {
});
}
+ updateVibrationPreference(sp.getBoolean(CellBroadcastSettings.KEY_OVERRIDE_DND,
+ false));
updatePreferenceVisibility();
}
/**
+ * Update the vibration preference based on override DND. If DND is overridden, then do
+ * not allow users to turn off vibration.
+ *
+ * @param overrideDnd {@code true} if the alert will be played at full volume, regardless
+ * DND settings.
+ */
+ private void updateVibrationPreference(boolean overrideDnd) {
+ if (mEnableVibrateCheckBox != null) {
+ if (overrideDnd) {
+ // If DND is enabled, always enable vibration.
+ mEnableVibrateCheckBox.setChecked(true);
+ }
+ // Grey out the preference if DND is overridden.
+ mEnableVibrateCheckBox.setEnabled(!overrideDnd);
+ }
+ }
+
+ /**
* Dynamically update each preference's visibility based on configuration.
*/
private void updatePreferenceVisibility() {
@@ -460,6 +484,16 @@ public class CellBroadcastSettings extends Activity {
if (mOverrideDndCheckBox != null) {
mOverrideDndCheckBox.setVisible(res.getBoolean(R.bool.show_override_dnd_settings));
}
+
+ if (mEnableVibrateCheckBox != null) {
+ // Only show vibrate toggle when override DND toggle is available to users, or when
+ // override DND default is turned off.
+ // In some countries, override DND is always on, which means vibration is always on.
+ // In that case, no need to show vibration toggle for users.
+ mEnableVibrateCheckBox.setVisible(
+ res.getBoolean(R.bool.show_override_dnd_settings)
+ || !res.getBoolean(R.bool.override_dnd_default));
+ }
}
private void initReminderIntervalList() {