diff options
author | Alex Salo <asalo@google.com> | 2019-01-17 13:54:03 -0800 |
---|---|---|
committer | Alex Salo <asalo@google.com> | 2019-01-28 11:39:00 -0800 |
commit | bb4e9ce20185b62fd2d2b22a7903c776e83a6c85 (patch) | |
tree | 5e26848f7e50ec37ffd4eb6be1898bd8254285c0 /src/com/android/settings/display/AdaptiveSleepPreferenceController.java | |
parent | 0b880088a45b5402aa58d537eddd61482fb7962a (diff) | |
download | packages_apps_Settings-bb4e9ce20185b62fd2d2b22a7903c776e83a6c85.tar.gz packages_apps_Settings-bb4e9ce20185b62fd2d2b22a7903c776e83a6c85.tar.bz2 packages_apps_Settings-bb4e9ce20185b62fd2d2b22a7903c776e83a6c85.zip |
Add "Adaptive sleep" setting
Adaptive sleep setting, if enabled, will perform an attention check
right before the power manager is scheduled to dim and then turn off the
display. If the attention check says that user is currently paying
attention to the device, the screen sleep timeout timer will be reset,
as if user had interacted with the display.
The animation and explanation strings are still TBC per UX team.
The setting is only displayed on supported devices.
Test: make RunSettingsRoboTests
Bug: 111939367
Change-Id: I191dd8ef06ecec4edbe4357671a7a9360971c06f
Diffstat (limited to 'src/com/android/settings/display/AdaptiveSleepPreferenceController.java')
-rw-r--r-- | src/com/android/settings/display/AdaptiveSleepPreferenceController.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/com/android/settings/display/AdaptiveSleepPreferenceController.java b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java new file mode 100644 index 0000000000..97bdb9efe2 --- /dev/null +++ b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package com.android.settings.display; + +import static android.provider.Settings.System.ADAPTIVE_SLEEP; + +import android.content.Context; +import android.provider.Settings; +import android.text.TextUtils; + +import com.android.settings.R; +import com.android.settings.core.TogglePreferenceController; + + +public class AdaptiveSleepPreferenceController extends TogglePreferenceController { + + private final String SYSTEM_KEY = ADAPTIVE_SLEEP; + private final int DEFAULT_VALUE = 0; + + public AdaptiveSleepPreferenceController(Context context, String key) { + super(context, key); + } + + @Override + public boolean isChecked() { + return Settings.System.getInt(mContext.getContentResolver(), + SYSTEM_KEY, DEFAULT_VALUE) != DEFAULT_VALUE; + } + + @Override + public boolean setChecked(boolean isChecked) { + Settings.System.putInt(mContext.getContentResolver(), SYSTEM_KEY, + isChecked ? 1 : DEFAULT_VALUE); + return true; + } + + @Override + @AvailabilityStatus + public int getAvailabilityStatus() { + return mContext.getResources().getBoolean( + com.android.internal.R.bool.config_adaptive_sleep_available) + ? AVAILABLE + : UNSUPPORTED_ON_DEVICE; + } + + @Override + public boolean isSliceable() { + return true; + } + + @Override + public CharSequence getSummary() { + return mContext.getText(isChecked() + ? R.string.adaptive_sleep_summary_on + : R.string.adaptive_sleep_summary_off); + } +} |