1 /*
2  * Copyright (C) 2017 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 
17 package com.android.settings.gestures;
18 
19 import android.app.settings.SettingsEnums;
20 import android.content.Context;
21 import android.hardware.display.AmbientDisplayConfiguration;
22 
23 import com.android.settings.R;
24 import com.android.settings.dashboard.DashboardFragment;
25 import com.android.settings.search.BaseSearchIndexProvider;
26 import com.android.settingslib.search.SearchIndexable;
27 
28 import java.util.List;
29 
30 @SearchIndexable
31 public class GestureSettings extends DashboardFragment {
32 
33     private static final String TAG = "GestureSettings";
34     private static final String PREF_KEY_PREVENT_RINGING = "gesture_prevent_ringing_summary";
35 
36     private AmbientDisplayConfiguration mAmbientDisplayConfig;
37 
38     @Override
getMetricsCategory()39     public int getMetricsCategory() {
40         return SettingsEnums.SETTINGS_GESTURES;
41     }
42 
43     @Override
getLogTag()44     protected String getLogTag() {
45         return TAG;
46     }
47 
48     @Override
getPreferenceScreenResId()49     protected int getPreferenceScreenResId() {
50         return R.xml.gestures;
51     }
52 
53     @Override
onAttach(Context context)54     public void onAttach(Context context) {
55         super.onAttach(context);
56         use(PickupGesturePreferenceController.class).setConfig(getConfig(context));
57         use(DoubleTapScreenPreferenceController.class).setConfig(getConfig(context));
58     }
59 
getConfig(Context context)60     private AmbientDisplayConfiguration getConfig(Context context) {
61         if (mAmbientDisplayConfig == null) {
62             mAmbientDisplayConfig = new AmbientDisplayConfiguration(context);
63         }
64         return mAmbientDisplayConfig;
65     }
66 
67     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
68             new BaseSearchIndexProvider(R.xml.gestures) {
69                 @Override
70                 public List<String> getNonIndexableKeys(Context context) {
71                     final List<String> keys = super.getNonIndexableKeys(context);
72                     // de-duplicated due to another same entry in Sound page
73                     keys.add(PREF_KEY_PREVENT_RINGING);
74                     return keys;
75                 }
76             };
77 }
78