Fix new conversation button quick tap issue

This commit is contained in:
nielsandriesse 2020-04-20 13:52:14 +10:00
parent bd1c377b6c
commit af80d066d3

View File

@ -39,6 +39,7 @@ class NewConversationButtonSetView : RelativeLayout {
// endregion // endregion
// region Settings // region Settings
private val minDragDistance by lazy { toPx(40, resources).toFloat() }
private val maxDragDistance by lazy { toPx(56, resources).toFloat() } private val maxDragDistance by lazy { toPx(56, resources).toFloat() }
private val dragMargin by lazy { toPx(16, resources).toFloat() } private val dragMargin by lazy { toPx(16, resources).toFloat() }
private val bottomMargin by lazy { resources.getDimension(R.dimen.new_conversation_button_bottom_offset) } private val bottomMargin by lazy { resources.getDimension(R.dimen.new_conversation_button_bottom_offset) }
@ -252,7 +253,8 @@ class NewConversationButtonSetView : RelativeLayout {
expandedButton?.collapse() expandedButton?.collapse()
this.expandedButton = null this.expandedButton = null
collapse() collapse()
if (event.action == MotionEvent.ACTION_UP) { val distanceFromRestPosition = touch.distanceTo(buttonRestPosition)
if (event.action == MotionEvent.ACTION_UP && distanceFromRestPosition > (minDragDistance + mainButton.collapsedSize / 2)) {
if (sessionButton.contains(touch) || touch.isAbove(sessionButton, dragMargin)) { delegate?.createNewPrivateChat() } if (sessionButton.contains(touch) || touch.isAbove(sessionButton, dragMargin)) { delegate?.createNewPrivateChat() }
else if (closedGroupButton.contains(touch) || touch.isRightOf(closedGroupButton, dragMargin)) { delegate?.createNewClosedGroup() } else if (closedGroupButton.contains(touch) || touch.isRightOf(closedGroupButton, dragMargin)) { delegate?.createNewClosedGroup() }
else if (openGroupButton.contains(touch) || touch.isLeftOf(openGroupButton, dragMargin)) { delegate?.joinOpenGroup() } else if (openGroupButton.contains(touch) || touch.isLeftOf(openGroupButton, dragMargin)) { delegate?.joinOpenGroup() }