Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7335b650 authored by Justin Klaassen's avatar Justin Klaassen
Browse files

Night display settings UI v2

Bug: 30155646
Change-Id: I912e90e5ec5e8d7426c68484da8396219a40c5ad
parent 0a2a3a6a
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -2139,7 +2139,11 @@
    <!-- 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] -->
+1 −0
Original line number Diff line number Diff line
@@ -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
+26 −13
Original line number Diff line number Diff line
@@ -19,10 +19,12 @@
        xmlns:settings="http://schemas.android.com/apk/res-auto"
        android:title="@string/night_display_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:persistent="false"
                android:summary="%s" />

        <Preference
@@ -33,6 +35,17 @@
                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"
            android:selectable="false"
+3 −2
Original line number Diff line number Diff line
@@ -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;
+10 −30
Original line number Diff line number Diff line
@@ -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
@@ -200,21 +189,12 @@ public class NightDisplaySettings extends SettingsPreferenceFragment implements
        mEndTimePreference.setSummary(getFormattedTimeString(endTime));
    }

    @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;
    }