Loading packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt +0 −27 Original line number Diff line number Diff line Loading @@ -34,7 +34,6 @@ import android.view.ViewConfiguration import android.view.WindowManager import android.view.animation.DecelerateInterpolator import android.view.animation.PathInterpolator import android.window.BackEvent import androidx.dynamicanimation.animation.DynamicAnimation import androidx.dynamicanimation.animation.SpringForce import com.android.internal.util.LatencyTracker Loading Loading @@ -97,7 +96,6 @@ private val DECELERATE_INTERPOLATOR_SLOW = DecelerateInterpolator(0.7f) class BackPanelController private constructor( context: Context, private var backAnimation: BackAnimation?, private val windowManager: WindowManager, private val viewConfiguration: ViewConfiguration, @Main private val mainHandler: Handler, Loading @@ -124,7 +122,6 @@ class BackPanelController private constructor( fun create(context: Context, backAnimation: BackAnimation?): BackPanelController { val backPanelController = BackPanelController( context, backAnimation, windowManager, viewConfiguration, mainHandler, Loading Loading @@ -266,7 +263,6 @@ class BackPanelController private constructor( */ private fun updateConfiguration() { params.update(resources) updateBackAnimationSwipeThresholds() mView.updateArrowPaint(params.arrowThickness) } Loading Loading @@ -298,13 +294,6 @@ class BackPanelController private constructor( } override fun onMotionEvent(event: MotionEvent) { backAnimation?.onBackMotion( event.x, event.y, event.actionMasked, if (mView.isLeftPanel) BackEvent.EDGE_LEFT else BackEvent.EDGE_RIGHT ) velocityTracker!!.addMovement(event) when (event.actionMasked) { MotionEvent.ACTION_DOWN -> { Loading Loading @@ -483,18 +472,6 @@ class BackPanelController private constructor( ) } fun setBackAnimation(backAnimation: BackAnimation?) { this.backAnimation = backAnimation updateBackAnimationSwipeThresholds() } private fun updateBackAnimationSwipeThresholds() { backAnimation?.setSwipeThresholds( params.swipeTriggerThreshold, fullyStretchedThreshold ) } override fun onDestroy() { cancelFailsafe() windowManager.removeView(mView) Loading Loading @@ -567,7 +544,6 @@ class BackPanelController private constructor( totalTouchDelta = 0f vibrationTime = 0 cancelFailsafe() backAnimation?.setTriggerBack(false) } private fun updateYPosition(touchY: Float) { Loading @@ -580,7 +556,6 @@ class BackPanelController private constructor( override fun setDisplaySize(displaySize: Point) { this.displaySize.set(displaySize.x, displaySize.y) fullyStretchedThreshold = min(displaySize.x.toFloat(), params.swipeProgressThreshold) updateBackAnimationSwipeThresholds() } /** Loading Loading @@ -664,7 +639,6 @@ class BackPanelController private constructor( updateRestingArrowDimens(animated = true, currentState) } GestureState.ACTIVE -> { backAnimation?.setTriggerBack(true) updateRestingArrowDimens(animated = true, currentState) // Vibrate the first time we transition to ACTIVE if (!hasHapticPlayed) { Loading @@ -674,7 +648,6 @@ class BackPanelController private constructor( } } GestureState.INACTIVE -> { backAnimation?.setTriggerBack(false) updateRestingArrowDimens(animated = true, currentState) } GestureState.FLUNG -> playFlingBackAnimation() Loading packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java +39 −7 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import android.view.MotionEvent; import android.view.Surface; import android.view.ViewConfiguration; import android.view.WindowManager; import android.window.BackEvent; import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; import com.android.internal.policy.GestureNavigationSettingsObserver; Loading Loading @@ -208,6 +209,10 @@ public class EdgeBackGestureHandler extends CurrentUserTracker private float mBottomGestureHeight; // The slop to distinguish between horizontal and vertical motion private float mTouchSlop; // The threshold for triggering back private float mBackSwipeTriggerThreshold; // The threshold for back swipe full progress. private float mBackSwipeProgressThreshold; // Duration after which we consider the event as longpress. private final int mLongPressTimeout; private int mStartingQuickstepRotation = -1; Loading Loading @@ -274,6 +279,8 @@ public class EdgeBackGestureHandler extends CurrentUserTracker Log.d(DEBUG_MISSING_GESTURE_TAG, "Triggered back: down=" + sendDown + ", up=" + sendUp); } } else { mBackAnimation.setTriggerBack(true); } mOverviewProxyService.notifyBackAction(true, (int) mDownPoint.x, Loading @@ -285,6 +292,9 @@ public class EdgeBackGestureHandler extends CurrentUserTracker @Override public void cancelBack() { if (mBackAnimation != null) { mBackAnimation.setTriggerBack(false); } logGesture(SysUiStatsLog.BACK_GESTURE__TYPE__INCOMPLETE); mOverviewProxyService.notifyBackAction(false, (int) mDownPoint.x, (int) mDownPoint.y, false /* isButton */, !mIsOnLeftEdge); Loading Loading @@ -406,6 +416,11 @@ public class EdgeBackGestureHandler extends CurrentUserTracker final float backGestureSlop = DeviceConfig.getFloat(DeviceConfig.NAMESPACE_SYSTEMUI, SystemUiDeviceConfigFlags.BACK_GESTURE_SLOP_MULTIPLIER, 0.75f); mTouchSlop = mViewConfiguration.getScaledTouchSlop() * backGestureSlop; mBackSwipeTriggerThreshold = res.getDimension( R.dimen.navigation_edge_action_drag_threshold); mBackSwipeProgressThreshold = res.getDimension( R.dimen.navigation_edge_action_progress_threshold); updateBackAnimationThresholds(); } public void updateNavigationBarOverlayExcludeRegion(Rect exclude) { Loading Loading @@ -748,6 +763,7 @@ public class EdgeBackGestureHandler extends CurrentUserTracker MotionEvent cancelEv = MotionEvent.obtain(ev); cancelEv.setAction(MotionEvent.ACTION_CANCEL); mEdgeBackPlugin.onMotionEvent(cancelEv); dispatchToBackAnimation(cancelEv); cancelEv.recycle(); } Loading Loading @@ -794,6 +810,7 @@ public class EdgeBackGestureHandler extends CurrentUserTracker if (mAllowGesture) { mEdgeBackPlugin.setIsLeftPanel(mIsOnLeftEdge); mEdgeBackPlugin.onMotionEvent(ev); dispatchToBackAnimation(ev); } if (mLogGesture) { mDownPoint.set(ev.getX(), ev.getY()); Loading Loading @@ -867,12 +884,23 @@ public class EdgeBackGestureHandler extends CurrentUserTracker if (mAllowGesture) { // forward touch mEdgeBackPlugin.onMotionEvent(ev); dispatchToBackAnimation(ev); } } mProtoTracer.scheduleFrameUpdate(); } private void dispatchToBackAnimation(MotionEvent event) { if (mBackAnimation != null) { mBackAnimation.onBackMotion( event.getX(), event.getY(), event.getActionMasked(), mIsOnLeftEdge ? BackEvent.EDGE_LEFT : BackEvent.EDGE_RIGHT); } } private void updateDisabledForQuickstep(Configuration newConfig) { int rotation = newConfig.windowConfiguration.getRotation(); mDisabledForQuickstep = mStartingQuickstepRotation > -1 && Loading Loading @@ -900,6 +928,16 @@ public class EdgeBackGestureHandler extends CurrentUserTracker if (mEdgeBackPlugin != null) { mEdgeBackPlugin.setDisplaySize(mDisplaySize); } updateBackAnimationThresholds(); } private void updateBackAnimationThresholds() { if (mBackAnimation == null) { return; } mBackAnimation.setSwipeThresholds( mBackSwipeTriggerThreshold, Math.min(mDisplaySize.x, mBackSwipeProgressThreshold)); } private boolean sendEvent(int action, int code) { Loading Loading @@ -979,13 +1017,7 @@ public class EdgeBackGestureHandler extends CurrentUserTracker public void setBackAnimation(BackAnimation backAnimation) { mBackAnimation = backAnimation; if (mEdgeBackPlugin != null) { if (mEdgeBackPlugin instanceof NavigationBarEdgePanel) { ((NavigationBarEdgePanel) mEdgeBackPlugin).setBackAnimation(backAnimation); } else if (mEdgeBackPlugin instanceof BackPanelController) { ((BackPanelController) mEdgeBackPlugin).setBackAnimation(backAnimation); } } updateBackAnimationThresholds(); } /** Loading Loading
packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt +0 −27 Original line number Diff line number Diff line Loading @@ -34,7 +34,6 @@ import android.view.ViewConfiguration import android.view.WindowManager import android.view.animation.DecelerateInterpolator import android.view.animation.PathInterpolator import android.window.BackEvent import androidx.dynamicanimation.animation.DynamicAnimation import androidx.dynamicanimation.animation.SpringForce import com.android.internal.util.LatencyTracker Loading Loading @@ -97,7 +96,6 @@ private val DECELERATE_INTERPOLATOR_SLOW = DecelerateInterpolator(0.7f) class BackPanelController private constructor( context: Context, private var backAnimation: BackAnimation?, private val windowManager: WindowManager, private val viewConfiguration: ViewConfiguration, @Main private val mainHandler: Handler, Loading @@ -124,7 +122,6 @@ class BackPanelController private constructor( fun create(context: Context, backAnimation: BackAnimation?): BackPanelController { val backPanelController = BackPanelController( context, backAnimation, windowManager, viewConfiguration, mainHandler, Loading Loading @@ -266,7 +263,6 @@ class BackPanelController private constructor( */ private fun updateConfiguration() { params.update(resources) updateBackAnimationSwipeThresholds() mView.updateArrowPaint(params.arrowThickness) } Loading Loading @@ -298,13 +294,6 @@ class BackPanelController private constructor( } override fun onMotionEvent(event: MotionEvent) { backAnimation?.onBackMotion( event.x, event.y, event.actionMasked, if (mView.isLeftPanel) BackEvent.EDGE_LEFT else BackEvent.EDGE_RIGHT ) velocityTracker!!.addMovement(event) when (event.actionMasked) { MotionEvent.ACTION_DOWN -> { Loading Loading @@ -483,18 +472,6 @@ class BackPanelController private constructor( ) } fun setBackAnimation(backAnimation: BackAnimation?) { this.backAnimation = backAnimation updateBackAnimationSwipeThresholds() } private fun updateBackAnimationSwipeThresholds() { backAnimation?.setSwipeThresholds( params.swipeTriggerThreshold, fullyStretchedThreshold ) } override fun onDestroy() { cancelFailsafe() windowManager.removeView(mView) Loading Loading @@ -567,7 +544,6 @@ class BackPanelController private constructor( totalTouchDelta = 0f vibrationTime = 0 cancelFailsafe() backAnimation?.setTriggerBack(false) } private fun updateYPosition(touchY: Float) { Loading @@ -580,7 +556,6 @@ class BackPanelController private constructor( override fun setDisplaySize(displaySize: Point) { this.displaySize.set(displaySize.x, displaySize.y) fullyStretchedThreshold = min(displaySize.x.toFloat(), params.swipeProgressThreshold) updateBackAnimationSwipeThresholds() } /** Loading Loading @@ -664,7 +639,6 @@ class BackPanelController private constructor( updateRestingArrowDimens(animated = true, currentState) } GestureState.ACTIVE -> { backAnimation?.setTriggerBack(true) updateRestingArrowDimens(animated = true, currentState) // Vibrate the first time we transition to ACTIVE if (!hasHapticPlayed) { Loading @@ -674,7 +648,6 @@ class BackPanelController private constructor( } } GestureState.INACTIVE -> { backAnimation?.setTriggerBack(false) updateRestingArrowDimens(animated = true, currentState) } GestureState.FLUNG -> playFlingBackAnimation() Loading
packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java +39 −7 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import android.view.MotionEvent; import android.view.Surface; import android.view.ViewConfiguration; import android.view.WindowManager; import android.window.BackEvent; import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; import com.android.internal.policy.GestureNavigationSettingsObserver; Loading Loading @@ -208,6 +209,10 @@ public class EdgeBackGestureHandler extends CurrentUserTracker private float mBottomGestureHeight; // The slop to distinguish between horizontal and vertical motion private float mTouchSlop; // The threshold for triggering back private float mBackSwipeTriggerThreshold; // The threshold for back swipe full progress. private float mBackSwipeProgressThreshold; // Duration after which we consider the event as longpress. private final int mLongPressTimeout; private int mStartingQuickstepRotation = -1; Loading Loading @@ -274,6 +279,8 @@ public class EdgeBackGestureHandler extends CurrentUserTracker Log.d(DEBUG_MISSING_GESTURE_TAG, "Triggered back: down=" + sendDown + ", up=" + sendUp); } } else { mBackAnimation.setTriggerBack(true); } mOverviewProxyService.notifyBackAction(true, (int) mDownPoint.x, Loading @@ -285,6 +292,9 @@ public class EdgeBackGestureHandler extends CurrentUserTracker @Override public void cancelBack() { if (mBackAnimation != null) { mBackAnimation.setTriggerBack(false); } logGesture(SysUiStatsLog.BACK_GESTURE__TYPE__INCOMPLETE); mOverviewProxyService.notifyBackAction(false, (int) mDownPoint.x, (int) mDownPoint.y, false /* isButton */, !mIsOnLeftEdge); Loading Loading @@ -406,6 +416,11 @@ public class EdgeBackGestureHandler extends CurrentUserTracker final float backGestureSlop = DeviceConfig.getFloat(DeviceConfig.NAMESPACE_SYSTEMUI, SystemUiDeviceConfigFlags.BACK_GESTURE_SLOP_MULTIPLIER, 0.75f); mTouchSlop = mViewConfiguration.getScaledTouchSlop() * backGestureSlop; mBackSwipeTriggerThreshold = res.getDimension( R.dimen.navigation_edge_action_drag_threshold); mBackSwipeProgressThreshold = res.getDimension( R.dimen.navigation_edge_action_progress_threshold); updateBackAnimationThresholds(); } public void updateNavigationBarOverlayExcludeRegion(Rect exclude) { Loading Loading @@ -748,6 +763,7 @@ public class EdgeBackGestureHandler extends CurrentUserTracker MotionEvent cancelEv = MotionEvent.obtain(ev); cancelEv.setAction(MotionEvent.ACTION_CANCEL); mEdgeBackPlugin.onMotionEvent(cancelEv); dispatchToBackAnimation(cancelEv); cancelEv.recycle(); } Loading Loading @@ -794,6 +810,7 @@ public class EdgeBackGestureHandler extends CurrentUserTracker if (mAllowGesture) { mEdgeBackPlugin.setIsLeftPanel(mIsOnLeftEdge); mEdgeBackPlugin.onMotionEvent(ev); dispatchToBackAnimation(ev); } if (mLogGesture) { mDownPoint.set(ev.getX(), ev.getY()); Loading Loading @@ -867,12 +884,23 @@ public class EdgeBackGestureHandler extends CurrentUserTracker if (mAllowGesture) { // forward touch mEdgeBackPlugin.onMotionEvent(ev); dispatchToBackAnimation(ev); } } mProtoTracer.scheduleFrameUpdate(); } private void dispatchToBackAnimation(MotionEvent event) { if (mBackAnimation != null) { mBackAnimation.onBackMotion( event.getX(), event.getY(), event.getActionMasked(), mIsOnLeftEdge ? BackEvent.EDGE_LEFT : BackEvent.EDGE_RIGHT); } } private void updateDisabledForQuickstep(Configuration newConfig) { int rotation = newConfig.windowConfiguration.getRotation(); mDisabledForQuickstep = mStartingQuickstepRotation > -1 && Loading Loading @@ -900,6 +928,16 @@ public class EdgeBackGestureHandler extends CurrentUserTracker if (mEdgeBackPlugin != null) { mEdgeBackPlugin.setDisplaySize(mDisplaySize); } updateBackAnimationThresholds(); } private void updateBackAnimationThresholds() { if (mBackAnimation == null) { return; } mBackAnimation.setSwipeThresholds( mBackSwipeTriggerThreshold, Math.min(mDisplaySize.x, mBackSwipeProgressThreshold)); } private boolean sendEvent(int action, int code) { Loading Loading @@ -979,13 +1017,7 @@ public class EdgeBackGestureHandler extends CurrentUserTracker public void setBackAnimation(BackAnimation backAnimation) { mBackAnimation = backAnimation; if (mEdgeBackPlugin != null) { if (mEdgeBackPlugin instanceof NavigationBarEdgePanel) { ((NavigationBarEdgePanel) mEdgeBackPlugin).setBackAnimation(backAnimation); } else if (mEdgeBackPlugin instanceof BackPanelController) { ((BackPanelController) mEdgeBackPlugin).setBackAnimation(backAnimation); } } updateBackAnimationThresholds(); } /** Loading