1528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh/*
2528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh * Copyright (C) 2018 The Android Open Source Project
3528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh *
4528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh * Licensed under the Apache License, Version 2.0 (the "License");
5528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh * you may not use this file except in compliance with the License.
6528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh * You may obtain a copy of the License at
7528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh *
8528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh *      http://www.apache.org/licenses/LICENSE-2.0
9528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh *
10528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh * Unless required by applicable law or agreed to in writing, software
11528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh * distributed under the License is distributed on an "AS IS" BASIS,
12528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh * See the License for the specific language governing permissions and
14528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh * limitations under the License.
15528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh */
16528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh
17528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadehpackage com.android.settings.gestures;
18528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh
19528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadehimport android.content.Context;
20528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadehimport android.content.SharedPreferences;
21528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadehimport android.provider.SearchIndexableResource;
22528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh
23528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadehimport com.android.internal.logging.nano.MetricsProto;
24528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadehimport com.android.settings.R;
25528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadehimport com.android.settings.dashboard.DashboardFragment;
26528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadehimport com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
27528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadehimport com.android.settings.overlay.FeatureFactory;
28528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadehimport com.android.settings.search.BaseSearchIndexProvider;
29528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh
30528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadehimport java.util.Arrays;
31528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadehimport java.util.List;
32528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh
33528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadehpublic class SwipeUpGestureSettings extends DashboardFragment {
34528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh
35528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    private static final String TAG = "SwipeUpGesture";
36528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh
37528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    public static final String PREF_KEY_SUGGESTION_COMPLETE =
38528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh            "pref_swipe_up_suggestion_complete";
39528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh
40528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    @Override
41528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    public void onAttach(Context context) {
42528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh        super.onAttach(context);
43528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh        SuggestionFeatureProvider suggestionFeatureProvider = FeatureFactory.getFactory(context)
44528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh                .getSuggestionFeatureProvider(context);
45528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh        SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
46528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh        prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
47528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    }
48528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh
49528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    @Override
50528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    public int getMetricsCategory() {
51528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh        return MetricsProto.MetricsEvent.SETTINGS_GESTURE_SWIPE_UP;
52528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    }
53528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh
54528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    @Override
55528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    protected String getLogTag() {
56528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh        return TAG;
57528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    }
58528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh
59528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    @Override
60528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    protected int getPreferenceScreenResId() {
61528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh        return R.xml.swipe_up_gesture_settings;
62528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    }
63528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh
64528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
65528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh            new BaseSearchIndexProvider() {
66528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh                @Override
67528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh                public List<SearchIndexableResource> getXmlResourcesToIndex(
68528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh                        Context context, boolean enabled) {
69528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh                    final SearchIndexableResource sir = new SearchIndexableResource(context);
70528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh                    sir.xmlResId = R.xml.swipe_up_gesture_settings;
71528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh                    return Arrays.asList(sir);
72528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh                }
73528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh
74528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh                @Override
75528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh                protected boolean isPageSearchEnabled(Context context) {
76528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh                    return SwipeUpPreferenceController.isGestureAvailable(context);
77528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh                }
78528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh            };
79528fe0ca14b5e457b7bb82c2068749268d0d658fMehdi Alizadeh}
80