Add settings for scheduling dark theme

Adding a settings page similar to night light for Dark theme. it will allow the user to schedule
dark mode from sunrise to sunset

Test: make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.display.DarkUIPreferenceControllerTest" && \
make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.display.darkmode.DarkModeActivationPreferenceControllerTest" && \
make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.display.darkmode.DarkModeObserverTest" && \
make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.display.darkmode.DarkModeScheduleSelectorControllerTest"

Fixes: 141567787

Change-Id: I3094b655c04f59c23a95162a1be5ee8260e28a48
(cherry picked from commit 0828e6be9c)
This commit is contained in:
Jay Aliomer
2019-10-24 13:42:38 -04:00
parent 713143df37
commit 7141b142df
17 changed files with 903 additions and 71 deletions

View File

@@ -16,25 +16,9 @@
package com.android.settings.display;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.os.Handler;
import android.os.IPowerManager;
import android.os.PowerManager;
import androidx.fragment.app.Fragment;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
import org.junit.Assert;
import com.android.settings.display.darkmode.DarkModePreference;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -43,6 +27,10 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
@RunWith(RobolectricTestRunner.class)
public class DarkUIPreferenceControllerTest {
@@ -57,7 +45,7 @@ public class DarkUIPreferenceControllerTest {
mContext = spy(RuntimeEnvironment.application);
mController = spy(new DarkUIPreferenceController(mContext, "dark_ui_mode"));
mController.setParentFragment(mFragment);
mController.mPreference = new SwitchPreference(mContext);
mController.mPreference = new DarkModePreference(mContext, null /* AttributeSet attrs */);
mController.onStart();
}