Loading res/layout/dialog_back_gesture_sensitivity.xml 0 → 100644 +67 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- ~ 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 --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="12dp"> <SeekBar android:id="@+id/back_sensitivity_seekbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:min="0" android:max="3" style="@android:style/Widget.Material.SeekBar.Discrete" android:theme="@*android:style/ThemeOverlay.DeviceDefault.Accent" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="2dp" android:layout_marginBottom="8dp"> <TextView android:id="@+id/low_tick" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginBottom="2dp" android:layout_marginStart="12dp" android:gravity="start" android:text="@string/low_label" android:textAppearance="?android:attr/textAppearance" android:singleLine="true" android:ellipsize="marquee" /> <TextView android:id="@+id/high_tick" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginBottom="2dp" android:layout_marginEnd="12dp" android:gravity="end" android:text="@string/high_label" android:textAppearance="?android:attr/textAppearance" android:singleLine="true" android:ellipsize="marquee" /> </LinearLayout> </LinearLayout> No newline at end of file res/values/dimens.xml +3 −0 Original line number Diff line number Diff line Loading @@ -411,4 +411,7 @@ <!-- Maximum height for SliceView, override on slices/view/src/main/res/values/dimens.xml --> <dimen name="abc_slice_large_height">480dp</dimen> <!-- System navigation settings illustration height --> <dimen name="system_navigation_illustration_height">320dp</dimen> </resources> res/values/strings.xml +11 −0 Original line number Diff line number Diff line Loading @@ -10235,6 +10235,17 @@ <!-- Content description for the Information icon [CHAR LIMIT=30] --> <string name="information_label">Information</string> <!-- Label on the left side of sensitivity adjustment slider [CHAR LIMIT=30] --> <string name="low_label">Low</string> <!-- Label on the right side of sensitivity adjustment slider [CHAR LIMIT=30] --> <string name="high_label">High</string> <!-- Message for the dialog that explains how increasing sensitivity can affect gestures along the edges. [CHAR LIMIT=NONE] --> <string name="back_sensitivity_dialog_message">\nHigher sensitivity may conflict with any app gestures along the edges of the screen.</string> <!-- Title for the dialog that is shown to adjust the back sensitivity [CHAR LIMIT=60] --> <string name="back_sensitivity_dialog_title">Back Sensitivity</string> <!-- Preference and settings suggestion title text for ambient display double tap (phone) [CHAR LIMIT=60]--> <string name="ambient_display_title" product="default">Double-tap to check phone</string> <!-- Preference and settings suggestion title text for ambient display double tap (tablet) [CHAR LIMIT=60]--> src/com/android/settings/gestures/GestureNavigationBackSensitivityDialog.java 0 → 100644 +81 −0 Original line number Diff line number Diff line /* * 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.app.AlertDialog; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.om.IOverlayManager; import android.os.Bundle; import android.os.ServiceManager; import android.view.View; import android.widget.SeekBar; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; /** * Dialog to set the back gesture's sensitivity in Gesture navigation mode. */ public class GestureNavigationBackSensitivityDialog extends InstrumentedDialogFragment { private static final String TAG = "GestureNavigationBackSensitivityDialog"; private static final String KEY_BACK_SENSITIVITY = "back_sensitivity"; public static void show(SystemNavigationGestureSettings parent, int sensitivity) { if (!parent.isAdded()) { return; } final GestureNavigationBackSensitivityDialog dialog = new GestureNavigationBackSensitivityDialog(); final Bundle bundle = new Bundle(); bundle.putInt(KEY_BACK_SENSITIVITY, sensitivity); dialog.setArguments(bundle); dialog.setTargetFragment(parent, 0); dialog.show(parent.getFragmentManager(), TAG); } @Override public int getMetricsCategory() { // TODO(135211145): Use a separate metrics category for this dialog. return SettingsEnums.SETTINGS_GESTURE_SWIPE_UP; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final View view = getActivity().getLayoutInflater().inflate( R.layout.dialog_back_gesture_sensitivity, null); final SeekBar seekBar = view.findViewById(R.id.back_sensitivity_seekbar); seekBar.setProgress(getArguments().getInt(KEY_BACK_SENSITIVITY)); return new AlertDialog.Builder(getContext()) .setTitle(R.string.back_sensitivity_dialog_title) .setMessage(R.string.back_sensitivity_dialog_message) .setView(view) .setPositiveButton(R.string.okay, (dialog, which) -> { int sensitivity = seekBar.getProgress(); getArguments().putInt(KEY_BACK_SENSITIVITY, sensitivity); SystemNavigationGestureSettings.setBackSensitivity(getActivity(), getOverlayManager(), sensitivity); }) .create(); } private IOverlayManager getOverlayManager() { return IOverlayManager.Stub.asInterface(ServiceManager.getService(Context.OVERLAY_SERVICE)); } } No newline at end of file src/com/android/settings/gestures/GestureNavigationNotAvailableDialog.java 0 → 100644 +63 −0 Original line number Diff line number Diff line /* * 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.app.AlertDialog; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Bundle; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; /** * Dialog to notify user that gesture navigation is not available because of unsupported launcher. */ public class GestureNavigationNotAvailableDialog extends InstrumentedDialogFragment { private static final String TAG = "GestureNavigationNotAvailableDialog"; public static void show(SystemNavigationGestureSettings parent) { if (!parent.isAdded()) { return; } final GestureNavigationNotAvailableDialog dialog = new GestureNavigationNotAvailableDialog(); dialog.setTargetFragment(parent, 0); dialog.show(parent.getFragmentManager(), TAG); } @Override public int getMetricsCategory() { // TODO(135211145): Use a separate metrics category for this dialog. return SettingsEnums.SETTINGS_GESTURE_SWIPE_UP; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Context context = getActivity(); final String defaultHomeAppName = SystemNavigationPreferenceController .getDefaultHomeAppName(context); final String message = getString(R.string.gesture_not_supported_dialog_message, defaultHomeAppName); return new AlertDialog.Builder(context) .setMessage(message) .setPositiveButton(R.string.okay, null) .create(); } } No newline at end of file Loading
res/layout/dialog_back_gesture_sensitivity.xml 0 → 100644 +67 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- ~ 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 --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="12dp"> <SeekBar android:id="@+id/back_sensitivity_seekbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:min="0" android:max="3" style="@android:style/Widget.Material.SeekBar.Discrete" android:theme="@*android:style/ThemeOverlay.DeviceDefault.Accent" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="2dp" android:layout_marginBottom="8dp"> <TextView android:id="@+id/low_tick" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginBottom="2dp" android:layout_marginStart="12dp" android:gravity="start" android:text="@string/low_label" android:textAppearance="?android:attr/textAppearance" android:singleLine="true" android:ellipsize="marquee" /> <TextView android:id="@+id/high_tick" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginBottom="2dp" android:layout_marginEnd="12dp" android:gravity="end" android:text="@string/high_label" android:textAppearance="?android:attr/textAppearance" android:singleLine="true" android:ellipsize="marquee" /> </LinearLayout> </LinearLayout> No newline at end of file
res/values/dimens.xml +3 −0 Original line number Diff line number Diff line Loading @@ -411,4 +411,7 @@ <!-- Maximum height for SliceView, override on slices/view/src/main/res/values/dimens.xml --> <dimen name="abc_slice_large_height">480dp</dimen> <!-- System navigation settings illustration height --> <dimen name="system_navigation_illustration_height">320dp</dimen> </resources>
res/values/strings.xml +11 −0 Original line number Diff line number Diff line Loading @@ -10235,6 +10235,17 @@ <!-- Content description for the Information icon [CHAR LIMIT=30] --> <string name="information_label">Information</string> <!-- Label on the left side of sensitivity adjustment slider [CHAR LIMIT=30] --> <string name="low_label">Low</string> <!-- Label on the right side of sensitivity adjustment slider [CHAR LIMIT=30] --> <string name="high_label">High</string> <!-- Message for the dialog that explains how increasing sensitivity can affect gestures along the edges. [CHAR LIMIT=NONE] --> <string name="back_sensitivity_dialog_message">\nHigher sensitivity may conflict with any app gestures along the edges of the screen.</string> <!-- Title for the dialog that is shown to adjust the back sensitivity [CHAR LIMIT=60] --> <string name="back_sensitivity_dialog_title">Back Sensitivity</string> <!-- Preference and settings suggestion title text for ambient display double tap (phone) [CHAR LIMIT=60]--> <string name="ambient_display_title" product="default">Double-tap to check phone</string> <!-- Preference and settings suggestion title text for ambient display double tap (tablet) [CHAR LIMIT=60]-->
src/com/android/settings/gestures/GestureNavigationBackSensitivityDialog.java 0 → 100644 +81 −0 Original line number Diff line number Diff line /* * 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.app.AlertDialog; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.om.IOverlayManager; import android.os.Bundle; import android.os.ServiceManager; import android.view.View; import android.widget.SeekBar; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; /** * Dialog to set the back gesture's sensitivity in Gesture navigation mode. */ public class GestureNavigationBackSensitivityDialog extends InstrumentedDialogFragment { private static final String TAG = "GestureNavigationBackSensitivityDialog"; private static final String KEY_BACK_SENSITIVITY = "back_sensitivity"; public static void show(SystemNavigationGestureSettings parent, int sensitivity) { if (!parent.isAdded()) { return; } final GestureNavigationBackSensitivityDialog dialog = new GestureNavigationBackSensitivityDialog(); final Bundle bundle = new Bundle(); bundle.putInt(KEY_BACK_SENSITIVITY, sensitivity); dialog.setArguments(bundle); dialog.setTargetFragment(parent, 0); dialog.show(parent.getFragmentManager(), TAG); } @Override public int getMetricsCategory() { // TODO(135211145): Use a separate metrics category for this dialog. return SettingsEnums.SETTINGS_GESTURE_SWIPE_UP; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final View view = getActivity().getLayoutInflater().inflate( R.layout.dialog_back_gesture_sensitivity, null); final SeekBar seekBar = view.findViewById(R.id.back_sensitivity_seekbar); seekBar.setProgress(getArguments().getInt(KEY_BACK_SENSITIVITY)); return new AlertDialog.Builder(getContext()) .setTitle(R.string.back_sensitivity_dialog_title) .setMessage(R.string.back_sensitivity_dialog_message) .setView(view) .setPositiveButton(R.string.okay, (dialog, which) -> { int sensitivity = seekBar.getProgress(); getArguments().putInt(KEY_BACK_SENSITIVITY, sensitivity); SystemNavigationGestureSettings.setBackSensitivity(getActivity(), getOverlayManager(), sensitivity); }) .create(); } private IOverlayManager getOverlayManager() { return IOverlayManager.Stub.asInterface(ServiceManager.getService(Context.OVERLAY_SERVICE)); } } No newline at end of file
src/com/android/settings/gestures/GestureNavigationNotAvailableDialog.java 0 → 100644 +63 −0 Original line number Diff line number Diff line /* * 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.app.AlertDialog; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Bundle; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; /** * Dialog to notify user that gesture navigation is not available because of unsupported launcher. */ public class GestureNavigationNotAvailableDialog extends InstrumentedDialogFragment { private static final String TAG = "GestureNavigationNotAvailableDialog"; public static void show(SystemNavigationGestureSettings parent) { if (!parent.isAdded()) { return; } final GestureNavigationNotAvailableDialog dialog = new GestureNavigationNotAvailableDialog(); dialog.setTargetFragment(parent, 0); dialog.show(parent.getFragmentManager(), TAG); } @Override public int getMetricsCategory() { // TODO(135211145): Use a separate metrics category for this dialog. return SettingsEnums.SETTINGS_GESTURE_SWIPE_UP; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Context context = getActivity(); final String defaultHomeAppName = SystemNavigationPreferenceController .getDefaultHomeAppName(context); final String message = getString(R.string.gesture_not_supported_dialog_message, defaultHomeAppName); return new AlertDialog.Builder(context) .setMessage(message) .setPositiveButton(R.string.okay, null) .create(); } } No newline at end of file