diff --git a/res/values/strings.xml b/res/values/strings.xml
index 6739a71d61c..859a59c44f7 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2656,6 +2656,8 @@
Turn on screen attention
Keep screen on when looking at it
+
+ Longer screen timeout will use more battery.
Camera is locked
diff --git a/src/com/android/settings/display/ScreenTimeoutSettings.java b/src/com/android/settings/display/ScreenTimeoutSettings.java
index 43dd31c9359..f7be3192a76 100644
--- a/src/com/android/settings/display/ScreenTimeoutSettings.java
+++ b/src/com/android/settings/display/ScreenTimeoutSettings.java
@@ -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
diff --git a/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java b/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
index c33bd21b1aa..9e193ffc97e 100644
--- a/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
@@ -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