blob: dc6b0403ffffa5617f22078ffa0d46407fc4e84e [file] [log] [blame]
Amith Yamasani992f1022010-01-25 09:17:53 -08001/*
2 * Copyright (C) 2010 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.settings;
18
Amith Yamasani992f1022010-01-25 09:17:53 -080019import android.content.Context;
Adrian Roos8ab09542014-06-02 20:33:56 +020020import android.provider.SearchIndexableResource;
Jason Monk1230ac82015-12-11 20:14:43 -050021
Andrew Sapperstein6138f1a2017-03-22 18:00:47 -070022import com.android.internal.hardware.AmbientDisplayConfiguration;
Tamas Berghammer265d3c22016-06-22 15:34:45 +010023import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
Fan Zhang66b573a2016-10-06 16:33:13 -070024import com.android.settings.dashboard.DashboardFragment;
Adrian Roose349ec32017-05-25 15:49:35 -070025import com.android.settings.display.AmbientDisplayPreferenceController;
Fan Zhang66b573a2016-10-06 16:33:13 -070026import com.android.settings.display.AutoRotatePreferenceController;
Doris Ling2e4ff902017-04-13 15:06:36 -070027import com.android.settings.display.BrightnessLevelPreferenceController;
Fan Zhang66b573a2016-10-06 16:33:13 -070028import com.android.settings.display.CameraGesturePreferenceController;
Romain Guy305f9002017-06-05 18:44:47 -070029import com.android.settings.display.ColorModePreferenceController;
Fan Zhang66b573a2016-10-06 16:33:13 -070030import com.android.settings.display.LiftToWakePreferenceController;
31import com.android.settings.display.NightDisplayPreferenceController;
32import com.android.settings.display.NightModePreferenceController;
33import com.android.settings.display.ScreenSaverPreferenceController;
Yoshinori Hirano53cfd112017-10-10 13:57:07 +090034import com.android.settings.display.ShowOperatorNamePreferenceController;
Fan Zhang66b573a2016-10-06 16:33:13 -070035import com.android.settings.display.TapToWakePreferenceController;
Jason Monk6324cff2017-01-25 10:34:29 -050036import com.android.settings.display.ThemePreferenceController;
Fan Zhang66b573a2016-10-06 16:33:13 -070037import com.android.settings.display.TimeoutPreferenceController;
38import com.android.settings.display.VrDisplayPreferenceController;
39import com.android.settings.display.WallpaperPreferenceController;
Jason Monk49b61032015-08-12 11:31:29 -040040import com.android.settings.search.BaseSearchIndexProvider;
41import com.android.settings.search.Indexable;
Tony Mantler1d583e12017-06-13 13:09:25 -070042import com.android.settingslib.core.AbstractPreferenceController;
Juan Lang777ed252017-05-09 15:42:36 -070043import com.android.settingslib.core.lifecycle.Lifecycle;
Tony Mantler0fcd6cb2018-03-26 15:17:25 -070044import com.android.settingslib.search.SearchIndexable;
Jason Monk49b61032015-08-12 11:31:29 -040045
Amith Yamasanid7993472010-08-18 13:59:28 -070046import java.util.ArrayList;
Adrian Roos8ab09542014-06-02 20:33:56 +020047import java.util.List;
Amith Yamasanid7993472010-08-18 13:59:28 -070048
Tony Mantler0fcd6cb2018-03-26 15:17:25 -070049@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
Fan Zhang66b573a2016-10-06 16:33:13 -070050public class DisplaySettings extends DashboardFragment {
Amith Yamasani992f1022010-01-25 09:17:53 -080051 private static final String TAG = "DisplaySettings";
52
Fan Zhang57ef92a2017-10-27 13:33:48 -070053 public static final String KEY_DISPLAY_SIZE = "display_settings_screen_zoom";
Matthew Fritze49915a62017-04-17 07:55:41 -070054
Matthew Fritzec6f26382017-04-11 13:22:40 -070055 private static final String KEY_SCREEN_TIMEOUT = "screen_timeout";
Adrian Roose349ec32017-05-25 15:49:35 -070056 private static final String KEY_AMBIENT_DISPLAY = "ambient_display";
Matthew Fritzec6f26382017-04-11 13:22:40 -070057
Matthew Fritzec4488632017-11-28 14:36:35 -080058 private static final String KEY_NIGHT_DISPLAY = "night_display";
59
Amith Yamasani992f1022010-01-25 09:17:53 -080060 @Override
Fan Zhang65076132016-08-08 10:25:13 -070061 public int getMetricsCategory() {
Chris Wren9d1bfd12016-01-26 18:04:01 -050062 return MetricsEvent.DISPLAY;
Chris Wren8a963ba2015-03-20 10:29:14 -040063 }
64
65 @Override
Fan Zhang66b573a2016-10-06 16:33:13 -070066 protected String getLogTag() {
67 return TAG;
Stephen Chen2b98ffa2016-09-20 13:15:11 -070068 }
69
Amith Yamasani992f1022010-01-25 09:17:53 -080070 @Override
Fan Zhang66b573a2016-10-06 16:33:13 -070071 protected int getPreferenceScreenResId() {
Doris Ling8b14a1a2017-08-17 14:45:12 -070072 return R.xml.display_settings;
Amith Yamasani992f1022010-01-25 09:17:53 -080073 }
Jeff Brown9e143f52012-09-19 20:46:07 -070074
Amith Yamasani9627a8e2012-09-23 12:54:14 -070075 @Override
Fan Zhangf7843ad2018-02-22 13:51:41 -080076 protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
Andrew Sapperstein6138f1a2017-03-22 18:00:47 -070077 return buildPreferenceControllers(context, getLifecycle());
Fan Zhangb00811d2017-02-28 10:52:46 -080078 }
79
80 @Override
Fan Zhange0b0e9f2017-11-29 14:55:59 -080081 public int getHelpResource() {
Fan Zhangb00811d2017-02-28 10:52:46 -080082 return R.string.help_uri_display;
83 }
84
Tony Mantler1d583e12017-06-13 13:09:25 -070085 private static List<AbstractPreferenceController> buildPreferenceControllers(
Andrew Sapperstein6138f1a2017-03-22 18:00:47 -070086 Context context, Lifecycle lifecycle) {
Tony Mantler1d583e12017-06-13 13:09:25 -070087 final List<AbstractPreferenceController> controllers = new ArrayList<>();
Fan Zhang66b573a2016-10-06 16:33:13 -070088 controllers.add(new CameraGesturePreferenceController(context));
Fan Zhang66b573a2016-10-06 16:33:13 -070089 controllers.add(new LiftToWakePreferenceController(context));
90 controllers.add(new NightDisplayPreferenceController(context));
91 controllers.add(new NightModePreferenceController(context));
92 controllers.add(new ScreenSaverPreferenceController(context));
Andrew Sappersteinfedae392017-07-07 11:02:00 -070093 controllers.add(new AmbientDisplayPreferenceController(
94 context,
95 new AmbientDisplayConfiguration(context),
Adrian Roose349ec32017-05-25 15:49:35 -070096 KEY_AMBIENT_DISPLAY));
Fan Zhang66b573a2016-10-06 16:33:13 -070097 controllers.add(new TapToWakePreferenceController(context));
Matthew Fritzec6f26382017-04-11 13:22:40 -070098 controllers.add(new TimeoutPreferenceController(context, KEY_SCREEN_TIMEOUT));
Fan Zhang66b573a2016-10-06 16:33:13 -070099 controllers.add(new VrDisplayPreferenceController(context));
Yoshinori Hirano53cfd112017-10-10 13:57:07 +0900100 controllers.add(new ShowOperatorNamePreferenceController(context));
Fan Zhang66b573a2016-10-06 16:33:13 -0700101 controllers.add(new WallpaperPreferenceController(context));
Jason Monk6324cff2017-01-25 10:34:29 -0500102 controllers.add(new ThemePreferenceController(context));
Doris Ling2e4ff902017-04-13 15:06:36 -0700103 controllers.add(new BrightnessLevelPreferenceController(context, lifecycle));
Romain Guy305f9002017-06-05 18:44:47 -0700104 controllers.add(new ColorModePreferenceController(context));
Fan Zhang66b573a2016-10-06 16:33:13 -0700105 return controllers;
Doris Lingb727e9c2016-08-01 14:56:26 -0700106 }
107
Adrian Roos8ab09542014-06-02 20:33:56 +0200108 public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
109 new BaseSearchIndexProvider() {
110 @Override
111 public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
112 boolean enabled) {
Fan Zhang99abc022016-10-11 14:23:13 -0700113 final ArrayList<SearchIndexableResource> result = new ArrayList<>();
Adrian Roos8ab09542014-06-02 20:33:56 +0200114
Fan Zhang99abc022016-10-11 14:23:13 -0700115 final SearchIndexableResource sir = new SearchIndexableResource(context);
Fan Zhangdc9a82f2017-03-16 11:08:59 -0700116 sir.xmlResId = R.xml.display_settings;
Adrian Roos8ab09542014-06-02 20:33:56 +0200117 result.add(sir);
Adrian Roos8ab09542014-06-02 20:33:56 +0200118 return result;
119 }
120
121 @Override
Matthew Fritze49915a62017-04-17 07:55:41 -0700122 public List<String> getNonIndexableKeys(Context context) {
123 List<String> keys = super.getNonIndexableKeys(context);
124 keys.add(KEY_DISPLAY_SIZE);
Andrew Sappersteinebaab6a2017-06-28 17:16:57 -0700125 keys.add(WallpaperPreferenceController.KEY_WALLPAPER);
Matthew Fritzec4488632017-11-28 14:36:35 -0800126 keys.add(KEY_NIGHT_DISPLAY);
Matthew Fritze49915a62017-04-17 07:55:41 -0700127 return keys;
128 }
129
130 @Override
Fan Zhangaed89942018-02-22 13:32:32 -0800131 public List<AbstractPreferenceController> createPreferenceControllers(
132 Context context) {
Andrew Sapperstein6138f1a2017-03-22 18:00:47 -0700133 return buildPreferenceControllers(context, null);
Matthew Fritze516b0f12017-01-26 14:37:48 -0800134 }
Adrian Roos8ab09542014-06-02 20:33:56 +0200135 };
Amith Yamasani992f1022010-01-25 09:17:53 -0800136}