• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 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.accessibility;
18 
19 import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
20 
21 import android.app.settings.SettingsEnums;
22 import android.content.Context;
23 import android.os.Bundle;
24 import android.provider.Settings;
25 
26 import com.android.internal.accessibility.util.ShortcutUtils;
27 import com.android.settings.R;
28 import com.android.settings.dashboard.DashboardFragment;
29 import com.android.settings.search.BaseSearchIndexProvider;
30 import com.android.settingslib.search.SearchIndexable;
31 
32 /** Settings fragment containing accessibility button properties. */
33 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
34 public class AccessibilityButtonFragment extends DashboardFragment {
35 
36     private static final String TAG = "AccessibilityButtonFragment";
37 
38     @Override
onCreate(Bundle savedInstanceState)39     public void onCreate(Bundle savedInstanceState) {
40         super.onCreate(savedInstanceState);
41 
42         final int titleResource;
43         if (android.provider.Flags.a11yStandaloneGestureEnabled()) {
44             titleResource = R.string.accessibility_button_title;
45         } else {
46             titleResource = AccessibilityUtil.isGestureNavigateEnabled(getPrefContext())
47                     ? R.string.accessibility_button_gesture_title
48                     : R.string.accessibility_button_title;
49         }
50         getActivity().setTitle(titleResource);
51     }
52 
53     @Override
getPreferenceScreenResId()54     protected int getPreferenceScreenResId() {
55         return R.xml.accessibility_button_settings;
56     }
57 
58     @Override
getLogTag()59     protected String getLogTag() {
60         return TAG;
61     }
62 
63     @Override
getMetricsCategory()64     public int getMetricsCategory() {
65         return SettingsEnums.ACCESSIBILITY_BUTTON_SETTINGS;
66     }
67 
68     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
69             new BaseSearchIndexProvider(R.xml.accessibility_button_settings) {
70                 @Override
71                 protected boolean isPageSearchEnabled(Context context) {
72                     // Page should be unsearchable if there are no active button targets
73                     String targets = Settings.Secure.getStringForUser(context.getContentResolver(),
74                             ShortcutUtils.convertToKey(SOFTWARE), context.getUserId());
75                     return targets != null && !targets.isEmpty();
76                 }
77             };
78 }
79