OSDN Git Service

Allow selecting vibration mode during zen priority mode.
authorDanny Baumann <dannybaumann@web.de>
Mon, 17 Oct 2016 14:42:20 +0000 (16:42 +0200)
committerGerrit Code Review <gerrit@cyanogenmod.org>
Thu, 27 Oct 2016 12:11:41 +0000 (05:11 -0700)
Change-Id: I4e80e920e4d8f42b0255fd3f528c464b7f094d0e

res/values/cm_strings.xml
res/xml/zen_mode_priority_settings.xml
src/com/android/settings/notification/ZenModePrioritySettings.java

index 9879df7..a28a772 100644 (file)
     <!-- [CHAR LIMIT=50] Like zen_mode_summary_selected_messages, but part of a list, so lower case if needed -->
     <string name="zen_mode_summary_selected_messages">selected messages</string>
 
+    <!-- Allow vibration in zen mode -->
+    <string name="zen_mode_vibration">Vibration</string>
+    <string name="zen_mode_vibration_never">Don\'t vibrate</string>
+    <string name="zen_mode_vibration_calls_only">Only vibrate for calls</string>
+    <string name="zen_mode_vibration_calls_and_notifications">Vibrate for calls and notifications</string>
+
     <!-- About phone settings screen, setting option dialog title to show regulatory information [CHAR LIMIT=25] -->
     <string name="regulatory_information_dialog_title" translatable="false">@string/regulatory_information</string>
 
index 37ec317..567b9e7 100644 (file)
         android:title="@string/zen_mode_repeat_callers"
         android:persistent="false"/>
 
+       <com.android.settings.DropDownPreference
+        android:key="vibration"
+        android:title="@string/zen_mode_vibration"
+        android:persistent="false" />
+
     <com.android.settings.cyanogenmod.CMSystemSettingSwitchPreference
         android:key="zen_priority_allow_lights"
         android:title="@string/notification_light_title"
index e8a8bb1..08e0350 100644 (file)
@@ -28,6 +28,7 @@ import com.android.internal.logging.MetricsLogger;
 import com.android.settings.DropDownPreference;
 import com.android.settings.R;
 import com.android.settings.search.Indexable;
+import cyanogenmod.providers.CMSettings;
 
 public class ZenModePrioritySettings extends ZenModeSettingsBase implements Indexable {
     private static final String KEY_REMINDERS = "reminders";
@@ -35,6 +36,7 @@ public class ZenModePrioritySettings extends ZenModeSettingsBase implements Inde
     private static final String KEY_MESSAGES = "messages";
     private static final String KEY_CALLS = "calls";
     private static final String KEY_REPEAT_CALLERS = "repeat_callers";
+    private static final String KEY_VIBRATION = "vibration";
     private static final String KEY_ALLOW_LIGHTS = "zen_priority_allow_lights";
 
     private static final int SOURCE_NONE = -1;
@@ -146,6 +148,21 @@ public class ZenModePrioritySettings extends ZenModeSettingsBase implements Inde
             }
         });
 
+        DropDownPreference vibration = (DropDownPreference) root.findPreference(KEY_VIBRATION);
+        vibration.addItem(R.string.zen_mode_vibration_never, null);
+        vibration.addItem(R.string.zen_mode_vibration_calls_only, null);
+        vibration.addItem(R.string.zen_mode_vibration_calls_and_notifications, null);
+        vibration.setSelectedItem(CMSettings.System.getInt(getContentResolver(),
+                    CMSettings.System.ZEN_PRIORITY_VIBRATION_MODE, 0));
+        vibration.setCallback(new DropDownPreference.Callback() {
+            @Override
+            public boolean onItemSelected(int pos, Object newValue) {
+                CMSettings.System.putInt(getContentResolver(),
+                        CMSettings.System.ZEN_PRIORITY_VIBRATION_MODE, pos);
+                return true;
+            }
+        });
+
         // Remove of the "Allow notification light" setting if LED is not supported
         if (!getResources().getBoolean(
                 com.android.internal.R.bool.config_intrusiveNotificationLed)) {