diff --git a/res/layout/dream_start_button.xml b/res/layout/dream_start_button.xml
new file mode 100644
index 00000000000..17ba78dbb7a
--- /dev/null
+++ b/res/layout/dream_start_button.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
diff --git a/res/values/config.xml b/res/values/config.xml
index 277176f5471..48d698cc465 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -492,6 +492,9 @@
false
+
+ true
+
true
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 76816745835..c6c05990d6e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3249,6 +3249,8 @@
When to start
Current screen saver
+
+ Start now
Settings
@@ -13607,8 +13609,6 @@
Use adaptive brightness
Use Wi‑Fi calling
-
- Use screen saver
See all apps
diff --git a/res/xml/dream_fragment_overview.xml b/res/xml/dream_fragment_overview.xml
index 6e18a979f3e..42b0334385b 100644
--- a/res/xml/dream_fragment_overview.xml
+++ b/res/xml/dream_fragment_overview.xml
@@ -19,11 +19,6 @@
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/screensaver_settings_title">
-
-
+
+
+
+
diff --git a/res/xml/top_level_settings.xml b/res/xml/top_level_settings.xml
index 280c3f31bc3..c9e60170eb9 100644
--- a/res/xml/top_level_settings.xml
+++ b/res/xml/top_level_settings.xml
@@ -162,6 +162,7 @@
android:icon="@drawable/ic_settings_emergency"
android:order="-20"
android:fragment="com.android.settings.emergency.EmergencyDashboardFragment"
+ settings:isPreferenceVisible="@bool/config_show_emergency_settings"
settings:highlightableMenuKey="@string/menu_key_emergency"/>
{
+ mMetricsFeatureProvider.logClickedPreference(pref,
+ pref.getExtras().getInt(DashboardFragment.CATEGORY));
mBackend.startDreaming();
- }
- return true;
+ });
}
@Override
- public int getSliceHighlightMenuRes() {
- return R.string.menu_key_display;
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ final Button startButton = ((LayoutPreference) preference)
+ .findViewById(R.id.dream_start_now_button);
+ startButton.setEnabled(mBackend.getWhenToDreamSetting() != DreamBackend.NEVER);
}
}
diff --git a/tests/robotests/src/com/android/settings/dream/StartNowPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/dream/StartNowPreferenceControllerTest.java
index 6c8a8f60cbd..98ba1ce2b31 100644
--- a/tests/robotests/src/com/android/settings/dream/StartNowPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/dream/StartNowPreferenceControllerTest.java
@@ -16,17 +16,18 @@
package com.android.settings.dream;
-import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.widget.Button;
import androidx.preference.PreferenceScreen;
+import com.android.settings.R;
import com.android.settingslib.dream.DreamBackend;
-import com.android.settingslib.widget.MainSwitchPreference;
+import com.android.settingslib.widget.LayoutPreference;
import org.junit.Before;
import org.junit.Test;
@@ -46,7 +47,9 @@ public class StartNowPreferenceControllerTest {
@Mock
private PreferenceScreen mScreen;
@Mock
- private MainSwitchPreference mPref;
+ private LayoutPreference mLayoutPref;
+ @Mock
+ private Button mButton;
@Mock
private DreamBackend mBackend;
@@ -56,36 +59,29 @@ public class StartNowPreferenceControllerTest {
mContext = spy(RuntimeEnvironment.application);
mController = new StartNowPreferenceController(mContext, "key");
- mPref = mock(MainSwitchPreference.class);
- when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPref);
+ when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mLayoutPref);
+ when(mLayoutPref.findViewById(R.id.dream_start_now_button)).thenReturn(mButton);
ReflectionHelpers.setField(mController, "mBackend", mBackend);
}
@Test
- public void displayPreference_shouldAddOnSwitchChangeListener() {
- mController.displayPreference(mScreen);
-
- verify(mPref).addOnSwitchChangeListener(mController);
- }
-
- @Test
- public void updateState_neverDreaming_preferenceShouldDidabled() {
+ public void updateState_neverDreaming_buttonShouldDidabled() {
when(mBackend.getWhenToDreamSetting()).thenReturn(DreamBackend.NEVER);
mController.displayPreference(mScreen);
- mController.updateState(mPref);
+ mController.updateState(mLayoutPref);
- verify(mPref).setEnabled(false);
+ verify(mButton).setEnabled(false);
}
@Test
- public void updateState_dreamIsAvailable_preferenceShouldEnabled() {
+ public void updateState_dreamIsAvailable_buttonShouldEnabled() {
when(mBackend.getWhenToDreamSetting()).thenReturn(DreamBackend.EITHER);
mController.displayPreference(mScreen);
- mController.updateState(mPref);
+ mController.updateState(mLayoutPref);
- verify(mPref).setEnabled(true);
+ verify(mButton).setEnabled(true);
}
}