Update the "When to dream" settings am: 47d84b41ac
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20302008 Change-Id: Id0ae8f8af81ab9cea7e61b1050e077afbe51a1f1 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -1216,6 +1216,20 @@
|
||||
<item>90</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Options for screensaver "When to start" for devices that do not support screensavers
|
||||
while on battery -->
|
||||
<string-array name="when_to_start_screensaver_entries_no_battery" translatable="false">
|
||||
<item>@string/screensaver_settings_summary_sleep</item>
|
||||
<item>@string/screensaver_settings_summary_dock_and_charging</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Values for screensaver "When to start" for devices that do not support screensavers
|
||||
while on battery -->
|
||||
<string-array name="when_to_start_screensaver_values_no_battery" translatable="false">
|
||||
<item>while_charging_only</item>
|
||||
<item>while_docked_only</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="when_to_start_screensaver_entries" translatable="false">
|
||||
<item>@string/screensaver_settings_summary_sleep</item>
|
||||
<item>@string/screensaver_settings_summary_dock</item>
|
||||
|
@@ -3371,6 +3371,8 @@
|
||||
<string name="screensaver_settings_toggle_title">Use screen saver</string>
|
||||
<!-- Display settings screen, summary fragment for screen saver options, activated when docked or asleep and charging [CHAR LIMIT=35] -->
|
||||
<string name="screensaver_settings_summary_either_long">While charging or docked</string>
|
||||
<!-- Display settings screen, summary fragment for screen saver options, actived while docked and charging [CHAR LIMIT=35] -->
|
||||
<string name="screensaver_settings_summary_dock_and_charging">While docked and charging</string>
|
||||
<!-- Display settings screen, summary fragment for screen saver options, activated when asleep and charging [CHAR LIMIT=35] -->
|
||||
<string name="screensaver_settings_summary_sleep">While charging</string>
|
||||
<!-- Display settings screen, summary fragment for screen saver options, activated when docked [CHAR LIMIT=35] -->
|
||||
|
@@ -90,12 +90,14 @@ public class DreamSettings extends DashboardFragment implements OnMainSwitchChan
|
||||
}
|
||||
}
|
||||
|
||||
static int getDreamSettingDescriptionResId(@WhenToDream int dreamSetting) {
|
||||
static int getDreamSettingDescriptionResId(@WhenToDream int dreamSetting,
|
||||
boolean enabledOnBattery) {
|
||||
switch (dreamSetting) {
|
||||
case WHILE_CHARGING:
|
||||
return R.string.screensaver_settings_summary_sleep;
|
||||
case WHILE_DOCKED:
|
||||
return R.string.screensaver_settings_summary_dock;
|
||||
return enabledOnBattery ? R.string.screensaver_settings_summary_dock
|
||||
: R.string.screensaver_settings_summary_dock_and_charging;
|
||||
case EITHER:
|
||||
return R.string.screensaver_settings_summary_either_long;
|
||||
case NEVER:
|
||||
|
@@ -32,12 +32,15 @@ public class WhenToDreamPicker extends RadioButtonPickerFragment {
|
||||
|
||||
private static final String TAG = "WhenToDreamPicker";
|
||||
private DreamBackend mBackend;
|
||||
private boolean mDreamsSupportedOnBattery;
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
|
||||
mBackend = DreamBackend.getInstance(context);
|
||||
mDreamsSupportedOnBattery = getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_dreamsEnabledOnBattery);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -69,11 +72,17 @@ public class WhenToDreamPicker extends RadioButtonPickerFragment {
|
||||
}
|
||||
|
||||
private String[] entries() {
|
||||
return getResources().getStringArray(R.array.when_to_start_screensaver_entries);
|
||||
if (mDreamsSupportedOnBattery) {
|
||||
return getResources().getStringArray(R.array.when_to_start_screensaver_entries);
|
||||
}
|
||||
return getResources().getStringArray(R.array.when_to_start_screensaver_entries_no_battery);
|
||||
}
|
||||
|
||||
private String[] keys() {
|
||||
return getResources().getStringArray(R.array.when_to_start_screensaver_values);
|
||||
if (mDreamsSupportedOnBattery) {
|
||||
return getResources().getStringArray(R.array.when_to_start_screensaver_values);
|
||||
}
|
||||
return getResources().getStringArray(R.array.when_to_start_screensaver_values_no_battery);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -33,19 +33,24 @@ public class WhenToDreamPreferenceController extends AbstractPreferenceControlle
|
||||
private static final String WHEN_TO_START = "when_to_start";
|
||||
private final DreamBackend mBackend;
|
||||
private final boolean mDreamsDisabledByAmbientModeSuppression;
|
||||
private final boolean mDreamsEnabledOnBattery;
|
||||
|
||||
WhenToDreamPreferenceController(Context context) {
|
||||
this(context, context.getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_dreamsDisabledByAmbientModeSuppressionConfig));
|
||||
com.android.internal.R.bool.config_dreamsDisabledByAmbientModeSuppressionConfig),
|
||||
context.getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_dreamsEnabledOnBattery));
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
WhenToDreamPreferenceController(Context context,
|
||||
boolean dreamsDisabledByAmbientModeSuppression) {
|
||||
boolean dreamsDisabledByAmbientModeSuppression,
|
||||
boolean dreamsEnabledOnBattery) {
|
||||
super(context);
|
||||
|
||||
mBackend = DreamBackend.getInstance(context);
|
||||
mDreamsDisabledByAmbientModeSuppression = dreamsDisabledByAmbientModeSuppression;
|
||||
mDreamsEnabledOnBattery = dreamsEnabledOnBattery;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -57,7 +62,7 @@ public class WhenToDreamPreferenceController extends AbstractPreferenceControlle
|
||||
preference.setSummary(R.string.screensaver_settings_when_to_dream_bedtime);
|
||||
} else {
|
||||
final int resId = DreamSettings.getDreamSettingDescriptionResId(
|
||||
mBackend.getWhenToDreamSetting());
|
||||
mBackend.getWhenToDreamSetting(), mDreamsEnabledOnBattery);
|
||||
preference.setSummary(resId);
|
||||
}
|
||||
}
|
||||
|
@@ -29,33 +29,40 @@ import com.android.settingslib.dream.DreamBackend.WhenToDream;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class DreamSettingsTest {
|
||||
|
||||
private static final List<String> KEYS = Arrays.asList(
|
||||
DreamSettings.WHILE_CHARGING_ONLY,
|
||||
DreamSettings.WHILE_DOCKED_ONLY,
|
||||
DreamSettings.EITHER_CHARGING_OR_DOCKED,
|
||||
DreamSettings.NEVER_DREAM
|
||||
DreamSettings.WHILE_CHARGING_ONLY,
|
||||
DreamSettings.WHILE_DOCKED_ONLY,
|
||||
DreamSettings.EITHER_CHARGING_OR_DOCKED,
|
||||
DreamSettings.NEVER_DREAM
|
||||
);
|
||||
|
||||
private static final @WhenToDream int[] SETTINGS = {
|
||||
DreamBackend.WHILE_CHARGING,
|
||||
DreamBackend.WHILE_DOCKED,
|
||||
DreamBackend.EITHER,
|
||||
DreamBackend.NEVER,
|
||||
DreamBackend.WHILE_CHARGING,
|
||||
DreamBackend.WHILE_DOCKED,
|
||||
DreamBackend.EITHER,
|
||||
DreamBackend.NEVER,
|
||||
};
|
||||
|
||||
private static final int[] RES_IDS = {
|
||||
R.string.screensaver_settings_summary_sleep,
|
||||
R.string.screensaver_settings_summary_dock,
|
||||
R.string.screensaver_settings_summary_either_long,
|
||||
R.string.screensaver_settings_summary_never
|
||||
R.string.screensaver_settings_summary_sleep,
|
||||
R.string.screensaver_settings_summary_dock,
|
||||
R.string.screensaver_settings_summary_either_long,
|
||||
R.string.screensaver_settings_summary_never
|
||||
};
|
||||
|
||||
private static final int[] RES_IDS_NO_BATTERY = {
|
||||
R.string.screensaver_settings_summary_sleep,
|
||||
R.string.screensaver_settings_summary_dock_and_charging,
|
||||
R.string.screensaver_settings_summary_either_long,
|
||||
R.string.screensaver_settings_summary_never
|
||||
};
|
||||
|
||||
@Test
|
||||
@@ -81,11 +88,17 @@ public class DreamSettingsTest {
|
||||
@Test
|
||||
public void getDreamSettingDescriptionResId() {
|
||||
for (int i = 0; i < SETTINGS.length; i++) {
|
||||
assertThat(DreamSettings.getDreamSettingDescriptionResId(SETTINGS[i]))
|
||||
assertThat(DreamSettings.getDreamSettingDescriptionResId(
|
||||
SETTINGS[i], /* enabledOnBattery= */ false))
|
||||
.isEqualTo(RES_IDS_NO_BATTERY[i]);
|
||||
assertThat(DreamSettings.getDreamSettingDescriptionResId(
|
||||
SETTINGS[i], /* enabledOnBattery= */ true))
|
||||
.isEqualTo(RES_IDS[i]);
|
||||
}
|
||||
// Default
|
||||
assertThat(DreamSettings.getDreamSettingDescriptionResId(-1))
|
||||
assertThat(DreamSettings.getDreamSettingDescriptionResId(-1, /* enabledOnBattery= */ false))
|
||||
.isEqualTo(R.string.screensaver_settings_summary_never);
|
||||
assertThat(DreamSettings.getDreamSettingDescriptionResId(-1, /* enabledOnBattery= */ true))
|
||||
.isEqualTo(R.string.screensaver_settings_summary_never);
|
||||
}
|
||||
|
||||
|
@@ -28,6 +28,7 @@ import android.os.UserManager;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
||||
import com.android.settingslib.dream.DreamBackend;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -37,9 +38,11 @@ import org.mockito.Answers;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = SettingsShadowResources.class)
|
||||
public class WhenToDreamPickerTest {
|
||||
|
||||
private WhenToDreamPicker mPicker;
|
||||
@@ -53,10 +56,15 @@ public class WhenToDreamPickerTest {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
final Context context = spy(ApplicationProvider.getApplicationContext());
|
||||
|
||||
SettingsShadowResources.overrideResource(
|
||||
com.android.internal.R.bool.config_dreamsEnabledOnBattery,
|
||||
true);
|
||||
|
||||
when(context.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
|
||||
FakeFeatureFactory.setupForTest();
|
||||
|
||||
mPicker = new WhenToDreamPicker();
|
||||
mPicker = spy(new WhenToDreamPicker());
|
||||
when(mPicker.getContext()).thenReturn(context);
|
||||
mPicker.onAttach(context);
|
||||
|
||||
ReflectionHelpers.setField(mPicker, "mBackend", mBackend);
|
||||
|
@@ -64,7 +64,7 @@ public class WhenToDreamPreferenceControllerTest {
|
||||
public void setup() throws Exception {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = spy(ApplicationProvider.getApplicationContext());
|
||||
mController = new WhenToDreamPreferenceController(mContext, true);
|
||||
mController = new WhenToDreamPreferenceController(mContext, true, true);
|
||||
ReflectionHelpers.setField(mController, "mBackend", mBackend);
|
||||
when(mContext.getSystemService(PowerManager.class)).thenReturn(mPowerManager);
|
||||
when(mPowerManager.isAmbientDisplaySuppressedForTokenByApp(anyString(), anyInt()))
|
||||
@@ -88,7 +88,7 @@ public class WhenToDreamPreferenceControllerTest {
|
||||
final Preference mockPref = mock(Preference.class);
|
||||
when(mockPref.getContext()).thenReturn(mContext);
|
||||
when(mBackend.getWhenToDreamSetting()).thenReturn(testSetting);
|
||||
final int expectedResId = DreamSettings.getDreamSettingDescriptionResId(testSetting);
|
||||
final int expectedResId = DreamSettings.getDreamSettingDescriptionResId(testSetting, true);
|
||||
|
||||
mController.updateState(mockPref);
|
||||
verify(mockPref).setSummary(expectedResId);
|
||||
|
Reference in New Issue
Block a user