Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBottomAreaViewBinder.kt +46 −8 Original line number Diff line number Diff line Loading @@ -406,19 +406,21 @@ object KeyguardBottomAreaViewBinder { view.isClickable = viewModel.isClickable if (viewModel.isClickable) { if (viewModel.useLongPress) { view.setOnTouchListener( KeyguardQuickAffordanceOnTouchListener( val onTouchListener = KeyguardQuickAffordanceOnTouchListener( view, viewModel, messageDisplayer, vibratorHelper, falsingManager, ) ) view.setOnTouchListener(onTouchListener) view.onLongClickListener = OnLongClickListener(falsingManager, viewModel, vibratorHelper, onTouchListener) } else { view.setOnClickListener(OnClickListener(viewModel, checkNotNull(falsingManager))) } } else { view.onLongClickListener = null view.setOnClickListener(null) view.setOnTouchListener(null) } Loading Loading @@ -454,6 +456,42 @@ object KeyguardBottomAreaViewBinder { .start() } private class OnLongClickListener( private val falsingManager: FalsingManager?, private val viewModel: KeyguardQuickAffordanceViewModel, private val vibratorHelper: VibratorHelper?, private val onTouchListener: KeyguardQuickAffordanceOnTouchListener ) : View.OnLongClickListener { override fun onLongClick(view: View): Boolean { if (falsingManager?.isFalseLongTap(FalsingManager.MODERATE_PENALTY) == true) { return true } if (viewModel.configKey != null) { viewModel.onClicked( KeyguardQuickAffordanceViewModel.OnClickedParameters( configKey = viewModel.configKey, expandable = Expandable.fromView(view), slotId = viewModel.slotId, ) ) vibratorHelper?.vibrate( if (viewModel.isActivated) { KeyguardBottomAreaVibrations.Activated } else { KeyguardBottomAreaVibrations.Deactivated } ) } onTouchListener.cancel() return true } override fun onLongClickUseDefaultHapticFeedback(view: View?) = false } private class OnClickListener( private val viewModel: KeyguardQuickAffordanceViewModel, private val falsingManager: FalsingManager, Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardQuickAffordanceOnTouchListener.kt +6 −17 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ class KeyguardQuickAffordanceOnTouchListener( @SuppressLint("ClickableViewAccessibility") override fun onTouch(v: View, event: MotionEvent): Boolean { return when (event.actionMasked) { MotionEvent.ACTION_DOWN -> MotionEvent.ACTION_DOWN -> { if (viewModel.configKey != null) { downDisplayCoords.set(event.rawX, event.rawY) if (isUsingAccurateTool(event)) { Loading @@ -62,19 +62,8 @@ class KeyguardQuickAffordanceOnTouchListener( .scaleX(PRESSED_SCALE) .scaleY(PRESSED_SCALE) .setDuration(longPressDurationMs) .withEndAction { if ( falsingManager?.isFalseLongTap( FalsingManager.MODERATE_PENALTY ) == false ) { dispatchClick(viewModel.configKey) } cancel() } } true } else { false } MotionEvent.ACTION_MOVE -> { Loading @@ -91,7 +80,7 @@ class KeyguardQuickAffordanceOnTouchListener( cancel() } } true false } MotionEvent.ACTION_UP -> { if (isUsingAccurateTool(event)) { Loading Loading @@ -146,7 +135,7 @@ class KeyguardQuickAffordanceOnTouchListener( } ) } true false } MotionEvent.ACTION_CANCEL -> { cancel() Loading Loading @@ -179,7 +168,7 @@ class KeyguardQuickAffordanceOnTouchListener( view.setOnClickListener(null) } private fun cancel(onAnimationEnd: Runnable? = null) { fun cancel(onAnimationEnd: Runnable? = null) { longPressAnimator?.cancel() longPressAnimator = null view.animate().scaleX(1f).scaleY(1f).withEndAction(onAnimationEnd) Loading Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardBottomAreaViewBinder.kt +46 −8 Original line number Diff line number Diff line Loading @@ -406,19 +406,21 @@ object KeyguardBottomAreaViewBinder { view.isClickable = viewModel.isClickable if (viewModel.isClickable) { if (viewModel.useLongPress) { view.setOnTouchListener( KeyguardQuickAffordanceOnTouchListener( val onTouchListener = KeyguardQuickAffordanceOnTouchListener( view, viewModel, messageDisplayer, vibratorHelper, falsingManager, ) ) view.setOnTouchListener(onTouchListener) view.onLongClickListener = OnLongClickListener(falsingManager, viewModel, vibratorHelper, onTouchListener) } else { view.setOnClickListener(OnClickListener(viewModel, checkNotNull(falsingManager))) } } else { view.onLongClickListener = null view.setOnClickListener(null) view.setOnTouchListener(null) } Loading Loading @@ -454,6 +456,42 @@ object KeyguardBottomAreaViewBinder { .start() } private class OnLongClickListener( private val falsingManager: FalsingManager?, private val viewModel: KeyguardQuickAffordanceViewModel, private val vibratorHelper: VibratorHelper?, private val onTouchListener: KeyguardQuickAffordanceOnTouchListener ) : View.OnLongClickListener { override fun onLongClick(view: View): Boolean { if (falsingManager?.isFalseLongTap(FalsingManager.MODERATE_PENALTY) == true) { return true } if (viewModel.configKey != null) { viewModel.onClicked( KeyguardQuickAffordanceViewModel.OnClickedParameters( configKey = viewModel.configKey, expandable = Expandable.fromView(view), slotId = viewModel.slotId, ) ) vibratorHelper?.vibrate( if (viewModel.isActivated) { KeyguardBottomAreaVibrations.Activated } else { KeyguardBottomAreaVibrations.Deactivated } ) } onTouchListener.cancel() return true } override fun onLongClickUseDefaultHapticFeedback(view: View?) = false } private class OnClickListener( private val viewModel: KeyguardQuickAffordanceViewModel, private val falsingManager: FalsingManager, Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardQuickAffordanceOnTouchListener.kt +6 −17 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ class KeyguardQuickAffordanceOnTouchListener( @SuppressLint("ClickableViewAccessibility") override fun onTouch(v: View, event: MotionEvent): Boolean { return when (event.actionMasked) { MotionEvent.ACTION_DOWN -> MotionEvent.ACTION_DOWN -> { if (viewModel.configKey != null) { downDisplayCoords.set(event.rawX, event.rawY) if (isUsingAccurateTool(event)) { Loading @@ -62,19 +62,8 @@ class KeyguardQuickAffordanceOnTouchListener( .scaleX(PRESSED_SCALE) .scaleY(PRESSED_SCALE) .setDuration(longPressDurationMs) .withEndAction { if ( falsingManager?.isFalseLongTap( FalsingManager.MODERATE_PENALTY ) == false ) { dispatchClick(viewModel.configKey) } cancel() } } true } else { false } MotionEvent.ACTION_MOVE -> { Loading @@ -91,7 +80,7 @@ class KeyguardQuickAffordanceOnTouchListener( cancel() } } true false } MotionEvent.ACTION_UP -> { if (isUsingAccurateTool(event)) { Loading Loading @@ -146,7 +135,7 @@ class KeyguardQuickAffordanceOnTouchListener( } ) } true false } MotionEvent.ACTION_CANCEL -> { cancel() Loading Loading @@ -179,7 +168,7 @@ class KeyguardQuickAffordanceOnTouchListener( view.setOnClickListener(null) } private fun cancel(onAnimationEnd: Runnable? = null) { fun cancel(onAnimationEnd: Runnable? = null) { longPressAnimator?.cancel() longPressAnimator = null view.animate().scaleX(1f).scaleY(1f).withEndAction(onAnimationEnd) Loading