Merge "Add power consumption footer in screen timeout page." into main

This commit is contained in:
Treehugger Robot
2023-11-24 09:59:58 +00:00
committed by Android (Google) Code Review
3 changed files with 41 additions and 1 deletions

View File

@@ -2656,6 +2656,8 @@
<string name="adaptive_sleep_contextual_slice_title">Turn on screen attention</string>
<!-- Description about the contextual adaptive sleep card [CHAR LIMIT=NONE]-->
<string name="adaptive_sleep_contextual_slice_summary">Keep screen on when looking at it</string>
<!-- Description about the power consumption implication in screen timeout footer [CHAR LIMIT=NONE]-->
<string name="power_consumption_footer_summary">Longer screen timeout will use more battery.</string>
<!-- auto_rotate settings screen, title about the camera privacy lock enabled [CHAR LIMIT=NONE]-->
<string name="auto_rotate_camera_lock_title">Camera is locked</string>
<!-- Description feature's privacy sensitive details to make sure users understand what feature users, what it saves/sends etc [CHAR LIMIT=NONE]-->

View File

@@ -92,6 +92,9 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
@VisibleForTesting
FooterPreference mDisableOptionsPreference;
@VisibleForTesting
FooterPreference mPowerConsumptionPreference;
@VisibleForTesting
AdaptiveSleepPermissionPreferenceController mAdaptiveSleepPermissionController;
@@ -216,6 +219,9 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
if (mAdmin != null) {
setupDisabledFooterPreference();
screen.addPreference(mDisableOptionsPreference);
} else {
setupPowerConsumptionFooterPreference();
screen.addPreference(mPowerConsumptionPreference);
}
}
@@ -236,8 +242,20 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
mDisableOptionsPreference.setIcon(R.drawable.ic_info_outline_24dp);
// The 'disabled by admin' preference should always be at the end of the setting page.
mDisableOptionsPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE);
mPrivacyPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE - 1);
mDisableOptionsPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE);
}
@VisibleForTesting
void setupPowerConsumptionFooterPreference() {
mPowerConsumptionPreference = new FooterPreference(getContext());
mPowerConsumptionPreference.setTitle(R.string.power_consumption_footer_summary);
mPowerConsumptionPreference.setSelectable(false);
mPowerConsumptionPreference.setIcon(R.drawable.ic_info_outline_24dp);
// The 'Longer screen timeout' preference should always be at the end of the setting page.
mPrivacyPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE - 1);
mPowerConsumptionPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE);
}
@Override

View File

@@ -92,6 +92,9 @@ public class ScreenTimeoutSettingsTest {
@Mock
FooterPreference mDisableOptionsPreference;
@Mock
FooterPreference mPowerConsumptionPreference;
@Mock
private PackageManager mPackageManager;
@@ -182,11 +185,28 @@ public class ScreenTimeoutSettingsTest {
public void updateCandidates_enforcedAdmin_showDisabledByAdminPreference() {
mSettings.mAdmin = new RestrictedLockUtils.EnforcedAdmin();
mSettings.mDisableOptionsPreference = mDisableOptionsPreference;
mSettings.mPowerConsumptionPreference = mPowerConsumptionPreference;
doNothing().when(mSettings).setupDisabledFooterPreference();
doNothing().when(mSettings).setupPowerConsumptionFooterPreference();
mSettings.updateCandidates();
verify(mPreferenceScreen, atLeast(1)).addPreference(mDisableOptionsPreference);
verify(mPreferenceScreen, never()).addPreference(mPowerConsumptionPreference);
}
@Test
public void updateCandidates_withoutAdmin_showPowerConsumptionPreference() {
mSettings.mAdmin = null;
mSettings.mDisableOptionsPreference = mDisableOptionsPreference;
mSettings.mPowerConsumptionPreference = mPowerConsumptionPreference;
doNothing().when(mSettings).setupDisabledFooterPreference();
doNothing().when(mSettings).setupPowerConsumptionFooterPreference();
mSettings.updateCandidates();
verify(mPreferenceScreen, never()).addPreference(mDisableOptionsPreference);
verify(mPreferenceScreen, atLeast(1)).addPreference(mPowerConsumptionPreference);
}
@Test