diff options
| author | 2021-03-29 13:42:09 +0000 | |
|---|---|---|
| committer | 2021-03-29 13:42:09 +0000 | |
| commit | 38ced457e07dd49039fb7f7a588cd076bb047239 (patch) | |
| tree | 69797ada6b3ecf99c9aaddc257bcf3ce8ea8aea0 | |
| parent | fabc9f6f27efd1854955237872eacf6099c95afa (diff) | |
Revert "Revert "Add setting for touch gesture and long-press hom..."
Revert "Revert "Hide long-press home animation when disabled by ..."
Revert submission 13998375-revert-13958909-mrcasey-lph-GNUFFHLQXH
Reason for revert: Reverting these CLs did not fix the test b/183684181
Reverted Changes:
Iac13fc450:Revert "Hide long-press home animation when disabl...
Ieb43607a8:Revert "Add setting for touch gesture and long-pre...
Change-Id: Ia92b0a1f19dc7423fe1b3796e14582169e58d203
5 files changed, 55 insertions, 13 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 71ffa92a81bb..70136c794d9c 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -9153,6 +9153,22 @@ public final class Settings { public static final String ASSIST_GESTURE_SETUP_COMPLETE = "assist_gesture_setup_complete"; /** + * Whether the assistant can be triggered by a touch gesture. + * + * @hide + */ + public static final String ASSIST_TOUCH_GESTURE_ENABLED = + "assist_touch_gesture_enabled"; + + /** + * Whether the assistant can be triggered by long-pressing the home button + * + * @hide + */ + public static final String ASSIST_LONG_PRESS_HOME_ENABLED = + "assist_long_press_home_enabled"; + + /** * Control whether Trust Agents are in active unlock or extend unlock mode. * @hide */ diff --git a/core/proto/android/providers/settings/secure.proto b/core/proto/android/providers/settings/secure.proto index dca6002d23f8..b4052a121f57 100644 --- a/core/proto/android/providers/settings/secure.proto +++ b/core/proto/android/providers/settings/secure.proto @@ -123,6 +123,8 @@ message SecureSettingsProto { optional SettingProto gesture_silence_alerts_enabled = 7 [ (android.privacy).dest = DEST_AUTOMATIC ]; optional SettingProto gesture_wake_enabled = 8 [ (android.privacy).dest = DEST_AUTOMATIC ]; optional SettingProto gesture_setup_complete = 9 [ (android.privacy).dest = DEST_AUTOMATIC ]; + optional SettingProto touch_gesture_enabled = 10 [ (android.privacy).dest = DEST_AUTOMATIC ]; + optional SettingProto long_press_home_enabled = 11 [ (android.privacy).dest = DEST_AUTOMATIC ]; } optional Assist assist = 7; diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java index db9b83e04a47..53920f04cc7a 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java @@ -165,6 +165,8 @@ public class SecureSettingsValidators { VALIDATORS.put(Secure.ASSIST_GESTURE_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.ASSIST_GESTURE_SILENCE_ALERTS_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.ASSIST_GESTURE_WAKE_ENABLED, BOOLEAN_VALIDATOR); + VALIDATORS.put(Secure.ASSIST_TOUCH_GESTURE_ENABLED, BOOLEAN_VALIDATOR); + VALIDATORS.put(Secure.ASSIST_LONG_PRESS_HOME_ENABLED, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.VR_DISPLAY_MODE, new DiscreteValueValidator(new String[] {"0", "1"})); VALIDATORS.put(Secure.NOTIFICATION_BADGING, BOOLEAN_VALIDATOR); VALIDATORS.put(Secure.NOTIFICATION_DISMISS_RTL, BOOLEAN_VALIDATOR); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index 7288371899ce..e07621d84ecd 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -1881,6 +1881,12 @@ class SettingsProtoDumpUtil { dumpSetting(s, p, Settings.Secure.ASSIST_GESTURE_SETUP_COMPLETE, SecureSettingsProto.Assist.GESTURE_SETUP_COMPLETE); + dumpSetting(s, p, + Settings.Secure.ASSIST_TOUCH_GESTURE_ENABLED, + SecureSettingsProto.Assist.TOUCH_GESTURE_ENABLED); + dumpSetting(s, p, + Settings.Secure.ASSIST_LONG_PRESS_HOME_ENABLED, + SecureSettingsProto.Assist.LONG_PRESS_HOME_ENABLED); p.end(assistToken); final long assistHandlesToken = p.start(SecureSettingsProto.ASSIST_HANDLES); diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java index 9d43e0c13320..c8dfde1d717b 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java @@ -209,6 +209,8 @@ public class NavigationBar implements View.OnAttachStateChangeListener, private @TransitionMode int mNavigationBarMode; private ContentResolver mContentResolver; private boolean mAssistantAvailable; + private boolean mLongPressHomeEnabled; + private boolean mAssistantTouchGestureEnabled; private int mDisabledFlags1; private int mDisabledFlags2; @@ -309,7 +311,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener, // Send the assistant availability upon connection if (isConnected) { - sendAssistantAvailability(mAssistantAvailable); + updateAssistantEntrypoints(); } } @@ -404,12 +406,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener, new Handler(Looper.getMainLooper())) { @Override public void onChange(boolean selfChange, Uri uri) { - boolean available = mAssistManagerLazy.get() - .getAssistInfoForUser(UserHandle.USER_CURRENT) != null; - if (mAssistantAvailable != available) { - sendAssistantAvailability(available); - mAssistantAvailable = available; - } + updateAssistantEntrypoints(); } }; @@ -531,6 +528,13 @@ public class NavigationBar implements View.OnAttachStateChangeListener, mContentResolver.registerContentObserver( Settings.Secure.getUriFor(Settings.Secure.ASSISTANT), false /* notifyForDescendants */, mAssistContentObserver, UserHandle.USER_ALL); + mContentResolver.registerContentObserver( + Settings.Secure.getUriFor(Settings.Secure.ASSIST_LONG_PRESS_HOME_ENABLED), + false, mAssistContentObserver, UserHandle.USER_ALL); + mContentResolver.registerContentObserver( + Settings.Secure.getUriFor(Settings.Secure.ASSIST_TOUCH_GESTURE_ENABLED), + false, mAssistContentObserver, UserHandle.USER_ALL); + updateAssistantEntrypoints(); if (savedState != null) { mDisabledFlags1 = savedState.getInt(EXTRA_DISABLE_STATE, 0); @@ -823,7 +827,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener, || mNavigationBarView.getHomeButton().getCurrentView() == null) { return; } - if (mHomeButtonLongPressDurationMs.isPresent()) { + if (mHomeButtonLongPressDurationMs.isPresent() || !mLongPressHomeEnabled) { mNavigationBarView.getHomeButton().getCurrentView().setLongClickable(false); mNavigationBarView.getHomeButton().getCurrentView().setHapticFeedbackEnabled(false); mNavigationBarView.getHomeButton().setOnLongClickListener(null); @@ -845,6 +849,8 @@ public class NavigationBar implements View.OnAttachStateChangeListener, pw.println(" mStartingQuickSwitchRotation=" + mStartingQuickSwitchRotation); pw.println(" mCurrentRotation=" + mCurrentRotation); pw.println(" mHomeButtonLongPressDurationMs=" + mHomeButtonLongPressDurationMs); + pw.println(" mLongPressHomeEnabled=" + mLongPressHomeEnabled); + pw.println(" mAssistantTouchGestureEnabled=" + mAssistantTouchGestureEnabled); if (mNavigationBarView != null) { pw.println(" mNavigationBarWindowState=" @@ -1206,9 +1212,11 @@ public class NavigationBar implements View.OnAttachStateChangeListener, return true; } } - mHomeButtonLongPressDurationMs.ifPresent(longPressDuration -> { - mHandler.postDelayed(mOnVariableDurationHomeLongClick, longPressDuration); - }); + if (mLongPressHomeEnabled) { + mHomeButtonLongPressDurationMs.ifPresent(longPressDuration -> { + mHandler.postDelayed(mOnVariableDurationHomeLongClick, longPressDuration); + }); + } break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: @@ -1480,15 +1488,23 @@ public class NavigationBar implements View.OnAttachStateChangeListener, | (requestingServices >= 2 ? SYSUI_STATE_A11Y_BUTTON_LONG_CLICKABLE : 0); } - private void sendAssistantAvailability(boolean available) { + private void updateAssistantEntrypoints() { + mAssistantAvailable = mAssistManagerLazy.get() + .getAssistInfoForUser(UserHandle.USER_CURRENT) != null; + mLongPressHomeEnabled = Settings.Secure.getInt(mContentResolver, + Settings.Secure.ASSIST_LONG_PRESS_HOME_ENABLED, 1) != 0; + mAssistantTouchGestureEnabled = Settings.Secure.getInt(mContentResolver, + Settings.Secure.ASSIST_TOUCH_GESTURE_ENABLED, 1) != 0; if (mOverviewProxyService.getProxy() != null) { try { - mOverviewProxyService.getProxy().onAssistantAvailable(available + mOverviewProxyService.getProxy().onAssistantAvailable(mAssistantAvailable + && mAssistantTouchGestureEnabled && QuickStepContract.isGesturalMode(mNavBarMode)); } catch (RemoteException e) { Log.w(TAG, "Unable to send assistant availability data to launcher"); } } + reconfigureHomeLongClick(); } // ----- Methods that DisplayNavigationBarController talks to ----- |