OSDN Git Service

Night display settings UI v2
authorJustin Klaassen <justinklaassen@google.com>
Wed, 27 Jul 2016 03:57:27 +0000 (20:57 -0700)
committerJustin Klaassen <justinklaassen@google.com>
Wed, 27 Jul 2016 19:10:51 +0000 (12:10 -0700)
Bug: 30155646
Change-Id: I912e90e5ec5e8d7426c68484da8396219a40c5ad

res/values/strings.xml
res/xml/display_settings.xml
res/xml/night_display_settings.xml
src/com/android/settings/display/NightDisplayPreference.java
src/com/android/settings/display/NightDisplaySettings.java

index 021e502..0e516f0 100644 (file)
     <!-- Night display screen, setting option name to enable night display (renamed "Night Light" with title caps). [CHAR LIMIT=30] -->
     <string name="night_display_title">Night Light</string>
     <!-- Night display screen, description of night display feature (renamed "Night Light" with title caps). [CHAR LIMIT=NONE] -->
-    <string name="night_display_text">Night Light tints your screen red at night. This makes it easier to look at your screen or read in dim light, and may help you fall asleep more easily.</string>
+    <string name="night_display_text">Night Light tints your screen red. This makes it easier to look at your screen or read in dim light, and may help you fall asleep more easily.</string>
+    <!-- Night display screen, category title for settings to schedule when night display activates automatically. [CHAR LIMIT=30] -->
+    <string name="night_display_category_schedule">Schedule</string>
+    <!-- Night display screen, category title for settings to manually activate night display. [CHAR LIMIT=30] -->
+    <string name="night_display_category_status">Status</string>
     <!-- Night display screen, setting option name to configure whether night display turn on/off automatically. [CHAR LIMIT=30] -->
     <string name="night_display_auto_mode_title">Turn on automatically</string>
     <!-- Night display screen, setting option value for night display to *never* turn on/off automatically. [CHAR LIMIT=30] -->
index a89d687..6f55982 100644 (file)
@@ -36,6 +36,7 @@
                 android:key="night_display"
                 android:title="@string/night_display_title"
                 android:fragment="com.android.settings.display.NightDisplaySettings"
+                android:widgetLayout="@null"
                 settings:keywords="@string/keywords_display_night_display" />
 
         <!-- Hide night mode for now
index 531f606..76b9323 100644 (file)
         xmlns:settings="http://schemas.android.com/apk/res-auto"
         android:title="@string/night_display_title">
 
-    <DropDownPreference
-            android:key="night_display_auto_mode"
-            android:title="@string/night_display_auto_mode_title"
-            android:persistent="false"
-            android:summary="%s" />
-
-    <Preference
-            android:key="night_display_start_time"
-            android:title="@string/night_display_start_time_title" />
-
-    <Preference
-            android:key="night_display_end_time"
-            android:title="@string/night_display_end_time_title" />
+    <PreferenceCategory
+            android:title="@string/night_display_category_schedule">
+
+        <DropDownPreference
+                android:key="night_display_auto_mode"
+                android:title="@string/night_display_auto_mode_title"
+                android:summary="%s" />
+
+        <Preference
+                android:key="night_display_start_time"
+                android:title="@string/night_display_start_time_title" />
+
+        <Preference
+                android:key="night_display_end_time"
+                android:title="@string/night_display_end_time_title" />
+
+    </PreferenceCategory>
+
+    <PreferenceCategory
+            android:title="@string/night_display_category_status">
+
+        <com.android.settings.display.NightDisplayPreference
+                android:key="night_display_activated"
+                android:title="@string/night_display_title" />
+
+    </PreferenceCategory>
 
     <com.android.settings.fuelgauge.WallOfTextPreference
             android:summary="@string/night_display_text"
index 73ecf49..38b57a2 100644 (file)
@@ -15,7 +15,7 @@
 package com.android.settings.display;
 
 import android.content.Context;
-import android.support.v7.preference.Preference;
+import android.support.v14.preference.SwitchPreference;
 import android.util.AttributeSet;
 
 import com.android.internal.app.NightDisplayController;
@@ -25,7 +25,8 @@ import java.text.DateFormat;
 import java.util.Calendar;
 import java.util.TimeZone;
 
-public class NightDisplayPreference extends Preference implements NightDisplayController.Callback {
+public class NightDisplayPreference extends SwitchPreference
+        implements NightDisplayController.Callback {
 
     private NightDisplayController mController;
     private DateFormat mTimeFormatter;
index 5048272..7eb1217 100644 (file)
@@ -22,15 +22,13 @@ import android.content.Context;
 import android.os.Bundle;
 import android.support.v7.preference.DropDownPreference;
 import android.support.v7.preference.Preference;
-import android.widget.Switch;
+import android.support.v7.preference.TwoStatePreference;
 import android.widget.TimePicker;
 
 import com.android.internal.app.NightDisplayController;
 import com.android.internal.logging.MetricsProto.MetricsEvent;
 import com.android.settings.R;
-import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.widget.SwitchBar;
 
 import java.text.DateFormat;
 import java.util.Calendar;
@@ -39,14 +37,13 @@ import java.util.TimeZone;
 /**
  * Settings screen for Night display.
  */
-public class NightDisplaySettings extends SettingsPreferenceFragment implements
-        NightDisplayController.Callback,
-        Preference.OnPreferenceChangeListener,
-        SwitchBar.OnSwitchChangeListener {
+public class NightDisplaySettings extends SettingsPreferenceFragment
+        implements NightDisplayController.Callback, Preference.OnPreferenceChangeListener {
 
     private static final String KEY_NIGHT_DISPLAY_AUTO_MODE = "night_display_auto_mode";
     private static final String KEY_NIGHT_DISPLAY_START_TIME = "night_display_start_time";
     private static final String KEY_NIGHT_DISPLAY_END_TIME = "night_display_end_time";
+    private static final String KEY_NIGHT_DISPLAY_ACTIVATED = "night_display_activated";
 
     private static final int DIALOG_START_TIME = 0;
     private static final int DIALOG_END_TIME = 1;
@@ -57,8 +54,7 @@ public class NightDisplaySettings extends SettingsPreferenceFragment implements
     private DropDownPreference mAutoModePreference;
     private Preference mStartTimePreference;
     private Preference mEndTimePreference;
-
-    private SwitchBar mSwitchBar;
+    private TwoStatePreference mActivatedPreference;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -81,6 +77,7 @@ public class NightDisplaySettings extends SettingsPreferenceFragment implements
         mAutoModePreference = (DropDownPreference) findPreference(KEY_NIGHT_DISPLAY_AUTO_MODE);
         mStartTimePreference = findPreference(KEY_NIGHT_DISPLAY_START_TIME);
         mEndTimePreference = findPreference(KEY_NIGHT_DISPLAY_END_TIME);
+        mActivatedPreference = (TwoStatePreference) findPreference(KEY_NIGHT_DISPLAY_ACTIVATED);
 
         mAutoModePreference.setEntries(new CharSequence[] {
                 getString(R.string.night_display_auto_mode_never),
@@ -93,15 +90,7 @@ public class NightDisplaySettings extends SettingsPreferenceFragment implements
                 String.valueOf(NightDisplayController.AUTO_MODE_TWILIGHT)
         });
         mAutoModePreference.setOnPreferenceChangeListener(this);
-    }
-
-    @Override
-    public void onActivityCreated(Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-
-        mSwitchBar = ((SettingsActivity) getActivity()).getSwitchBar();
-        mSwitchBar.addOnSwitchChangeListener(this);
-        mSwitchBar.show();
+        mActivatedPreference.setOnPreferenceChangeListener(this);
     }
 
     @Override
@@ -168,7 +157,7 @@ public class NightDisplaySettings extends SettingsPreferenceFragment implements
 
     @Override
     public void onActivated(boolean activated) {
-        mSwitchBar.setChecked(activated);
+        mActivatedPreference.setChecked(activated);
     }
 
     @Override
@@ -201,20 +190,11 @@ public class NightDisplaySettings extends SettingsPreferenceFragment implements
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
-        // Attempt to update the NIGHT_DISPLAY_ACTIVATED setting if necessary.
-        final boolean isActivated = mController.isActivated();
-        if (isActivated != isChecked) {
-            if (mController.setActivated(isChecked)) {
-                switchView.setChecked(isActivated);
-            }
-        }
-    }
-
-    @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         if (preference == mAutoModePreference) {
             return mController.setAutoMode(Integer.parseInt((String) newValue));
+        } else if (preference == mActivatedPreference) {
+            return mController.setActivated((Boolean) newValue);
         }
         return false;
     }