diff --git a/res/xml/dream_fragment_overview.xml b/res/xml/dream_fragment_overview.xml index ba689c7c7aa..a6214d18a17 100644 --- a/res/xml/dream_fragment_overview.xml +++ b/res/xml/dream_fragment_overview.xml @@ -16,13 +16,15 @@ + android:title="@string/screensaver_settings_title"> + android:fragment="com.android.settings.dream.CurrentDreamPicker" + settings:controller="com.android.settings.dream.CurrentDreamPreferenceController" /> 0; - } - - @Override - public String getPreferenceKey() { - return CURRENT_SCREENSAVER; + public int getAvailabilityStatus() { + return mBackend.getDreamInfos().size() > 0 ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } @Override public void updateState(Preference preference) { super.updateState(preference); - - preference.setSummary(mBackend.getActiveDreamName()); setGearClickListenerForPreference(preference); } - private void setGearClickListenerForPreference(Preference preference) { - if (!(preference instanceof GearPreference)) return; + @Override + public CharSequence getSummary() { + return mBackend.getActiveDreamName(); + } - GearPreference gearPreference = (GearPreference)preference; - Optional info = getActiveDreamInfo(); + private void setGearClickListenerForPreference(Preference preference) { + if (!(preference instanceof GearPreference)) { + return; + } + + final GearPreference gearPreference = (GearPreference) preference; + final Optional info = getActiveDreamInfo(); if (!info.isPresent() || info.get().settingsComponentName == null) { gearPreference.setOnGearClickListener(null); return; @@ -70,9 +67,9 @@ public class CurrentDreamPreferenceController extends AbstractPreferenceControll } private void launchScreenSaverSettings() { - Optional info = getActiveDreamInfo(); + final Optional info = getActiveDreamInfo(); if (!info.isPresent()) return; - mBackend.launchSettings(info.get()); + mBackend.launchSettings(mContext, info.get()); } private Optional getActiveDreamInfo() { diff --git a/src/com/android/settings/dream/DreamSettings.java b/src/com/android/settings/dream/DreamSettings.java index 9c9566e3e77..9a46b1e04d8 100644 --- a/src/com/android/settings/dream/DreamSettings.java +++ b/src/com/android/settings/dream/DreamSettings.java @@ -132,7 +132,6 @@ public class DreamSettings extends DashboardFragment { private static List buildPreferenceControllers(Context context) { List controllers = new ArrayList<>(); - controllers.add(new CurrentDreamPreferenceController(context)); controllers.add(new WhenToDreamPreferenceController(context)); controllers.add(new StartNowPreferenceController(context)); return controllers; diff --git a/tests/robotests/src/com/android/settings/dream/CurrentDreamPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/dream/CurrentDreamPreferenceControllerTest.java index 44199404d73..74847ee0ed6 100644 --- a/tests/robotests/src/com/android/settings/dream/CurrentDreamPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/dream/CurrentDreamPreferenceControllerTest.java @@ -56,7 +56,7 @@ public class CurrentDreamPreferenceControllerTest { public void setup() { MockitoAnnotations.initMocks(this); - mController = new CurrentDreamPreferenceController(mContext); + mController = new CurrentDreamPreferenceController(mContext, "test"); ReflectionHelpers.setField(mController, "mBackend", mBackend); }