Merge "Add posturing dream trigger to Settings UI" into main

This commit is contained in:
Lucas Silva
2025-01-09 12:55:19 -08:00
committed by Android (Google) Code Review
5 changed files with 51 additions and 22 deletions

View File

@@ -3170,6 +3170,10 @@
<string name="screensaver_settings_summary_dock">While docked</string>
<!-- Display settings screen, summary fragment for screen saver options, activated never [CHAR LIMIT=35] -->
<string name="screensaver_settings_summary_never">Never</string>
<!-- Summary for when screensaver is enabled, only while stationary and upright [CHAR LIMIT=35] -->
<string name="screensaver_settings_summary_postured">While postured</string>
<!-- Summary for when screensaver is enabled, only while stationary and upright and charging [CHAR LIMIT=35] -->
<string name="screensaver_settings_summary_postured_and_charging">While postured and charging</string>
<!-- Display settings screen, summary for screen saver options, screen saver is turned on [CHAR LIMIT=50] -->
<string name="screensaver_settings_summary_on">
On / <xliff:g id="screen_saver" example="Art gallery">%1$s</xliff:g>

View File

@@ -17,10 +17,6 @@
package com.android.settings.dream;
import static com.android.settings.dream.DreamMainSwitchPreferenceController.MAIN_SWITCH_PREF_KEY;
import static com.android.settingslib.dream.DreamBackend.EITHER;
import static com.android.settingslib.dream.DreamBackend.NEVER;
import static com.android.settingslib.dream.DreamBackend.WHILE_CHARGING;
import static com.android.settingslib.dream.DreamBackend.WHILE_DOCKED;
import android.app.settings.SettingsEnums;
import android.content.Context;
@@ -57,6 +53,7 @@ public class DreamSettings extends DashboardFragment implements OnCheckedChangeL
static final String WHILE_CHARGING_ONLY = "while_charging_only";
static final String WHILE_DOCKED_ONLY = "while_docked_only";
static final String EITHER_CHARGING_OR_DOCKED = "either_charging_or_docked";
static final String WHILE_POSTURED_ONLY = "while_postured_only";
static final String NEVER_DREAM = "never";
private MainSwitchPreference mMainSwitchPreference;
@@ -75,26 +72,30 @@ public class DreamSettings extends DashboardFragment implements OnCheckedChangeL
static int getSettingFromPrefKey(String key) {
switch (key) {
case WHILE_CHARGING_ONLY:
return WHILE_CHARGING;
return DreamBackend.WHILE_CHARGING;
case WHILE_DOCKED_ONLY:
return WHILE_DOCKED;
return DreamBackend.WHILE_DOCKED;
case EITHER_CHARGING_OR_DOCKED:
return EITHER;
return DreamBackend.WHILE_CHARGING_OR_DOCKED;
case WHILE_POSTURED_ONLY:
return DreamBackend.WHILE_POSTURED;
case NEVER_DREAM:
default:
return NEVER;
return DreamBackend.NEVER;
}
}
static String getKeyFromSetting(@WhenToDream int dreamSetting) {
switch (dreamSetting) {
case WHILE_CHARGING:
case DreamBackend.WHILE_CHARGING:
return WHILE_CHARGING_ONLY;
case WHILE_DOCKED:
case DreamBackend.WHILE_DOCKED:
return WHILE_DOCKED_ONLY;
case EITHER:
case DreamBackend.WHILE_CHARGING_OR_DOCKED:
return EITHER_CHARGING_OR_DOCKED;
case NEVER:
case DreamBackend.WHILE_POSTURED:
return WHILE_POSTURED_ONLY;
case DreamBackend.NEVER:
default:
return NEVER_DREAM;
}
@@ -103,14 +104,17 @@ public class DreamSettings extends DashboardFragment implements OnCheckedChangeL
static int getDreamSettingDescriptionResId(@WhenToDream int dreamSetting,
boolean enabledOnBattery) {
switch (dreamSetting) {
case WHILE_CHARGING:
case DreamBackend.WHILE_CHARGING:
return R.string.screensaver_settings_summary_sleep;
case WHILE_DOCKED:
case DreamBackend.WHILE_DOCKED:
return enabledOnBattery ? R.string.screensaver_settings_summary_dock
: R.string.screensaver_settings_summary_dock_and_charging;
case EITHER:
case DreamBackend.WHILE_CHARGING_OR_DOCKED:
return R.string.screensaver_settings_summary_either_long;
case NEVER:
case DreamBackend.WHILE_POSTURED:
return enabledOnBattery ? R.string.screensaver_settings_summary_postured
: R.string.screensaver_settings_summary_postured_and_charging;
case DreamBackend.NEVER:
default:
return R.string.screensaver_settings_summary_never;
}

View File

@@ -16,6 +16,8 @@
package com.android.settings.dream;
import static android.service.dreams.Flags.allowDreamWhenPostured;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.graphics.drawable.Drawable;
@@ -65,7 +67,11 @@ public class WhenToDreamPicker extends RadioButtonPickerFragment {
}
for (int i = 0; i < entries.length; i++) {
candidates.add(new WhenToDreamCandidateInfo(entries[i], values[i]));
final String key = values[i];
if (DreamSettings.WHILE_POSTURED_ONLY.equals(key) && !allowDreamWhenPostured()) {
continue;
}
candidates.add(new WhenToDreamCandidateInfo(entries[i], key));
}
return candidates;

View File

@@ -59,6 +59,7 @@ public class DreamSettingsTest {
DreamSettings.WHILE_CHARGING_ONLY,
DreamSettings.WHILE_DOCKED_ONLY,
DreamSettings.EITHER_CHARGING_OR_DOCKED,
DreamSettings.WHILE_POSTURED_ONLY,
DreamSettings.NEVER_DREAM
);
@@ -66,7 +67,8 @@ public class DreamSettingsTest {
private static final int[] SETTINGS = {
DreamBackend.WHILE_CHARGING,
DreamBackend.WHILE_DOCKED,
DreamBackend.EITHER,
DreamBackend.WHILE_CHARGING_OR_DOCKED,
DreamBackend.WHILE_POSTURED,
DreamBackend.NEVER,
};
@@ -74,6 +76,7 @@ public class DreamSettingsTest {
R.string.screensaver_settings_summary_sleep,
R.string.screensaver_settings_summary_dock,
R.string.screensaver_settings_summary_either_long,
R.string.screensaver_settings_summary_postured,
R.string.screensaver_settings_summary_never
};
@@ -81,6 +84,7 @@ public class DreamSettingsTest {
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_postured_and_charging,
R.string.screensaver_settings_summary_never
};

View File

@@ -80,9 +80,13 @@ public class WhenToDreamPickerTest {
assertThat(mPicker.getDefaultKey())
.isEqualTo(DreamSettings.getKeyFromSetting(DreamBackend.WHILE_DOCKED));
when(mBackend.getWhenToDreamSetting()).thenReturn(DreamBackend.EITHER);
when(mBackend.getWhenToDreamSetting()).thenReturn(DreamBackend.WHILE_CHARGING_OR_DOCKED);
assertThat(mPicker.getDefaultKey())
.isEqualTo(DreamSettings.getKeyFromSetting(DreamBackend.EITHER));
.isEqualTo(DreamSettings.getKeyFromSetting(DreamBackend.WHILE_CHARGING_OR_DOCKED));
when(mBackend.getWhenToDreamSetting()).thenReturn(DreamBackend.WHILE_POSTURED);
assertThat(mPicker.getDefaultKey())
.isEqualTo(DreamSettings.getKeyFromSetting(DreamBackend.WHILE_POSTURED));
when(mBackend.getWhenToDreamSetting()).thenReturn(DreamBackend.NEVER);
assertThat(mPicker.getDefaultKey())
@@ -105,9 +109,16 @@ public class WhenToDreamPickerTest {
@Test
public void setDreamWhileChargingOrDocked() {
final String key = DreamSettings.getKeyFromSetting(DreamBackend.EITHER);
final String key = DreamSettings.getKeyFromSetting(DreamBackend.WHILE_CHARGING_OR_DOCKED);
mPicker.setDefaultKey(key);
verify(mBackend).setWhenToDream(DreamBackend.EITHER);
verify(mBackend).setWhenToDream(DreamBackend.WHILE_CHARGING_OR_DOCKED);
}
@Test
public void setDreamWhilePostured() {
final String key = DreamSettings.getKeyFromSetting(DreamBackend.WHILE_POSTURED);
mPicker.setDefaultKey(key);
verify(mBackend).setWhenToDream(DreamBackend.WHILE_POSTURED);
}
@Test