summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLucas Dupin <dupin@google.com>2019-01-15 17:45:26 -0800
committerLucas Dupin <dupin@google.com>2019-01-16 11:41:44 -0800
commit97b8aae9336af6b03eaf41b87863f26e85ae1897 (patch)
treec66154a068c8c09b613a16581a908b1274108e29 /src
parent3eac2faa9c07f1e0224d63c6a587e7d89a6d1c9a (diff)
downloadpackages_apps_Settings-97b8aae9336af6b03eaf41b87863f26e85ae1897.tar.gz
packages_apps_Settings-97b8aae9336af6b03eaf41b87863f26e85ae1897.tar.bz2
packages_apps_Settings-97b8aae9336af6b03eaf41b87863f26e85ae1897.zip
Tap gesture settings
Tap setting is similar to double tap, it will wake-up the phone when invoked. This setting page allows for configuration since both gestures aren't mutually exclusive. Change-Id: Ia62a1fafcc108e3c0b14613cb30224eae7b35f6a Fixes: 121198822 Test: make RunSettingsRoboTests
Diffstat (limited to 'src')
-rw-r--r--src/com/android/settings/gestures/TapScreenGesturePreferenceController.java89
-rw-r--r--src/com/android/settings/gestures/TapScreenGestureSettings.java80
2 files changed, 169 insertions, 0 deletions
diff --git a/src/com/android/settings/gestures/TapScreenGesturePreferenceController.java b/src/com/android/settings/gestures/TapScreenGesturePreferenceController.java
new file mode 100644
index 0000000000..bbffc7cdab
--- /dev/null
+++ b/src/com/android/settings/gestures/TapScreenGesturePreferenceController.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.gestures;
+
+import static android.provider.Settings.Secure.DOZE_TAP_SCREEN_GESTURE;
+
+import android.annotation.UserIdInt;
+import android.content.Context;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.text.TextUtils;
+
+import com.android.internal.hardware.AmbientDisplayConfiguration;
+
+public class TapScreenGesturePreferenceController extends GesturePreferenceController {
+
+ private static final String PREF_KEY_VIDEO = "gesture_tap_screen_video";
+
+ private AmbientDisplayConfiguration mAmbientConfig;
+ @UserIdInt
+ private final int mUserId;
+
+ public TapScreenGesturePreferenceController(Context context, String key) {
+ super(context, key);
+ mUserId = UserHandle.myUserId();
+ }
+
+ public TapScreenGesturePreferenceController setConfig(AmbientDisplayConfiguration config) {
+ mAmbientConfig = config;
+ return this;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ // No hardware support for this Gesture
+ if (!getAmbientConfig().tapSensorAvailable()) {
+ return UNSUPPORTED_ON_DEVICE;
+ }
+
+ return AVAILABLE;
+ }
+
+ @Override
+ public boolean isSliceable() {
+ return true;
+ }
+
+ @Override
+ protected String getVideoPrefKey() {
+ return PREF_KEY_VIDEO;
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ return super.getSummary();
+ }
+
+ @Override
+ public boolean isChecked() {
+ return getAmbientConfig().tapGestureEnabled(mUserId);
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ return Settings.Secure.putInt(mContext.getContentResolver(), DOZE_TAP_SCREEN_GESTURE,
+ isChecked ? 1 : 0);
+ }
+
+ private AmbientDisplayConfiguration getAmbientConfig() {
+ if (mAmbientConfig == null) {
+ mAmbientConfig = new AmbientDisplayConfiguration(mContext);
+ }
+ return mAmbientConfig;
+ }
+} \ No newline at end of file
diff --git a/src/com/android/settings/gestures/TapScreenGestureSettings.java b/src/com/android/settings/gestures/TapScreenGestureSettings.java
new file mode 100644
index 0000000000..d80c03d8f7
--- /dev/null
+++ b/src/com/android/settings/gestures/TapScreenGestureSettings.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.gestures;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.provider.SearchIndexableResource;
+
+import com.android.internal.hardware.AmbientDisplayConfiguration;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
+import com.android.settingslib.search.SearchIndexable;
+
+import java.util.Arrays;
+import java.util.List;
+
+@SearchIndexable
+public class TapScreenGestureSettings extends DashboardFragment {
+ private static final String TAG = "TapScreenGestureSettings";
+
+ public static final String PREF_KEY_SUGGESTION_COMPLETE =
+ "pref_tap_gesture_suggestion_complete";
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ SuggestionFeatureProvider suggestionFeatureProvider = FeatureFactory.getFactory(context)
+ .getSuggestionFeatureProvider(context);
+ SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
+ prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
+
+ use(TapScreenGesturePreferenceController.class)
+ .setConfig(new AmbientDisplayConfiguration(context));
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return MetricsProto.MetricsEvent.SETTINGS_GESTURE_TAP_SCREEN;
+ }
+
+ @Override
+ protected String getLogTag() {
+ return TAG;
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.tap_screen_gesture_settings;
+ }
+
+ public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(
+ Context context, boolean enabled) {
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.tap_screen_gesture_settings;
+ return Arrays.asList(sir);
+ }
+ };
+}