blob: 17bacdc0206e5e7798db1ebeb701fa4fddfdd4c8 [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;
Andrew Sapperstein6138f1a2017-03-22 18:00:47 -070020import android.os.UserHandle;
Adrian Roos8ab09542014-06-02 20:33:56 +020021import android.provider.SearchIndexableResource;
Jason Monk1230ac82015-12-11 20:14:43 -050022
Andrew Sapperstein6138f1a2017-03-22 18:00:47 -070023import com.android.internal.hardware.AmbientDisplayConfiguration;
Tamas Berghammer265d3c22016-06-22 15:34:45 +010024import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
Fan Zhang66b573a2016-10-06 16:33:13 -070025import com.android.settings.core.PreferenceController;
Andrew Sapperstein6138f1a2017-03-22 18:00:47 -070026import com.android.settings.core.lifecycle.Lifecycle;
Fan Zhang66b573a2016-10-06 16:33:13 -070027import com.android.settings.dashboard.DashboardFragment;
Fan Zhang66b573a2016-10-06 16:33:13 -070028import com.android.settings.display.AutoBrightnessPreferenceController;
29import com.android.settings.display.AutoRotatePreferenceController;
Doris Ling03ee2532017-04-03 15:21:18 -070030import com.android.settings.display.BrightnessLevelPreferenceController;
Fan Zhang66b573a2016-10-06 16:33:13 -070031import com.android.settings.display.CameraGesturePreferenceController;
32import com.android.settings.display.DozePreferenceController;
33import com.android.settings.display.FontSizePreferenceController;
34import com.android.settings.display.LiftToWakePreferenceController;
35import com.android.settings.display.NightDisplayPreferenceController;
36import com.android.settings.display.NightModePreferenceController;
37import com.android.settings.display.ScreenSaverPreferenceController;
38import com.android.settings.display.TapToWakePreferenceController;
Jason Monk6324cff2017-01-25 10:34:29 -050039import com.android.settings.display.ThemePreferenceController;
Fan Zhang66b573a2016-10-06 16:33:13 -070040import com.android.settings.display.TimeoutPreferenceController;
41import com.android.settings.display.VrDisplayPreferenceController;
42import com.android.settings.display.WallpaperPreferenceController;
Andrew Sapperstein6138f1a2017-03-22 18:00:47 -070043import com.android.settings.gestures.DoubleTapScreenPreferenceController;
44import com.android.settings.gestures.PickupGesturePreferenceController;
Jason Monk49b61032015-08-12 11:31:29 -040045import com.android.settings.search.BaseSearchIndexProvider;
46import com.android.settings.search.Indexable;
47
Amith Yamasanid7993472010-08-18 13:59:28 -070048import java.util.ArrayList;
Adrian Roos8ab09542014-06-02 20:33:56 +020049import java.util.List;
Amith Yamasanid7993472010-08-18 13:59:28 -070050
Fan Zhang66b573a2016-10-06 16:33:13 -070051public class DisplaySettings extends DashboardFragment {
Amith Yamasani992f1022010-01-25 09:17:53 -080052 private static final String TAG = "DisplaySettings";
53
Matthew Fritzec6f26382017-04-11 13:22:40 -070054 public static final String KEY_AUTO_BRIGHTNESS = "auto_brightness";
55 private static final String KEY_SCREEN_TIMEOUT = "screen_timeout";
56
Amith Yamasani992f1022010-01-25 09:17:53 -080057 @Override
Fan Zhang65076132016-08-08 10:25:13 -070058 public int getMetricsCategory() {
Chris Wren9d1bfd12016-01-26 18:04:01 -050059 return MetricsEvent.DISPLAY;
Chris Wren8a963ba2015-03-20 10:29:14 -040060 }
61
62 @Override
Fan Zhang66b573a2016-10-06 16:33:13 -070063 protected String getLogTag() {
64 return TAG;
Stephen Chen2b98ffa2016-09-20 13:15:11 -070065 }
66
Amith Yamasani992f1022010-01-25 09:17:53 -080067 @Override
Fan Zhangd916dae2017-01-06 16:10:28 -080068 public void onAttach(Context context) {
69 super.onAttach(context);
70 mProgressiveDisclosureMixin.setTileLimit(4);
71 }
72
73 @Override
Fan Zhang66b573a2016-10-06 16:33:13 -070074 protected int getPreferenceScreenResId() {
Fan Zhangdc9a82f2017-03-16 11:08:59 -070075 return R.xml.display_settings;
Amith Yamasani992f1022010-01-25 09:17:53 -080076 }
Jeff Brown9e143f52012-09-19 20:46:07 -070077
Amith Yamasani9627a8e2012-09-23 12:54:14 -070078 @Override
Fan Zhang66b573a2016-10-06 16:33:13 -070079 protected List<PreferenceController> getPreferenceControllers(Context context) {
Andrew Sapperstein6138f1a2017-03-22 18:00:47 -070080 return buildPreferenceControllers(context, getLifecycle());
Fan Zhangb00811d2017-02-28 10:52:46 -080081 }
82
83 @Override
84 protected int getHelpResource() {
85 return R.string.help_uri_display;
86 }
87
Andrew Sapperstein6138f1a2017-03-22 18:00:47 -070088 private static List<PreferenceController> buildPreferenceControllers(
89 Context context, Lifecycle lifecycle) {
Fan Zhang66b573a2016-10-06 16:33:13 -070090 final List<PreferenceController> controllers = new ArrayList<>();
Matthew Fritzec6f26382017-04-11 13:22:40 -070091 controllers.add(new AutoBrightnessPreferenceController(context, KEY_AUTO_BRIGHTNESS));
Fan Zhang66b573a2016-10-06 16:33:13 -070092 controllers.add(new AutoRotatePreferenceController(context));
93 controllers.add(new CameraGesturePreferenceController(context));
94 controllers.add(new DozePreferenceController(context));
95 controllers.add(new FontSizePreferenceController(context));
96 controllers.add(new LiftToWakePreferenceController(context));
97 controllers.add(new NightDisplayPreferenceController(context));
98 controllers.add(new NightModePreferenceController(context));
99 controllers.add(new ScreenSaverPreferenceController(context));
Andrew Sapperstein6138f1a2017-03-22 18:00:47 -0700100 AmbientDisplayConfiguration ambientDisplayConfig = new AmbientDisplayConfiguration(context);
101 controllers.add(new PickupGesturePreferenceController(
102 context, lifecycle, ambientDisplayConfig, UserHandle.myUserId()));
103 controllers.add(new DoubleTapScreenPreferenceController(
104 context, lifecycle, ambientDisplayConfig, UserHandle.myUserId()));
Fan Zhang66b573a2016-10-06 16:33:13 -0700105 controllers.add(new TapToWakePreferenceController(context));
Matthew Fritzec6f26382017-04-11 13:22:40 -0700106 controllers.add(new TimeoutPreferenceController(context, KEY_SCREEN_TIMEOUT));
Fan Zhang66b573a2016-10-06 16:33:13 -0700107 controllers.add(new VrDisplayPreferenceController(context));
108 controllers.add(new WallpaperPreferenceController(context));
Jason Monk6324cff2017-01-25 10:34:29 -0500109 controllers.add(new ThemePreferenceController(context));
Doris Ling03ee2532017-04-03 15:21:18 -0700110 controllers.add(new BrightnessLevelPreferenceController(context));
Fan Zhang66b573a2016-10-06 16:33:13 -0700111 return controllers;
Doris Lingb727e9c2016-08-01 14:56:26 -0700112 }
113
Adrian Roos8ab09542014-06-02 20:33:56 +0200114 public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
115 new BaseSearchIndexProvider() {
116 @Override
117 public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
118 boolean enabled) {
Fan Zhang99abc022016-10-11 14:23:13 -0700119 final ArrayList<SearchIndexableResource> result = new ArrayList<>();
Adrian Roos8ab09542014-06-02 20:33:56 +0200120
Fan Zhang99abc022016-10-11 14:23:13 -0700121 final SearchIndexableResource sir = new SearchIndexableResource(context);
Fan Zhangdc9a82f2017-03-16 11:08:59 -0700122 sir.xmlResId = R.xml.display_settings;
Adrian Roos8ab09542014-06-02 20:33:56 +0200123 result.add(sir);
Adrian Roos8ab09542014-06-02 20:33:56 +0200124 return result;
125 }
126
127 @Override
Matthew Fritze516b0f12017-01-26 14:37:48 -0800128 public List<PreferenceController> getPreferenceControllers(Context context) {
Andrew Sapperstein6138f1a2017-03-22 18:00:47 -0700129 return buildPreferenceControllers(context, null);
Matthew Fritze516b0f12017-01-26 14:37:48 -0800130 }
Adrian Roos8ab09542014-06-02 20:33:56 +0200131 };
Amith Yamasani992f1022010-01-25 09:17:53 -0800132}