diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt index 15ffffd8f..97abcdca1 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt @@ -698,26 +698,6 @@ class CallActivity : CallBaseActivity() { } } - binding!!.callLayout.setOnTouchListener { _, event -> - if (event.action == MotionEvent.ACTION_DOWN) { - if (binding!!.popupMenu.visibility == View.VISIBLE) { - val location = IntArray(2) - binding!!.popupMenu.getLocationOnScreen(location) - - val popupMenuWidth = binding!!.popupMenu.width - val popupMenuHeight = binding!!.popupMenu.height - - val x = event.rawX - val y = event.rawY - - if (x < location[0] || x > location[0] + popupMenuWidth || - y < location[1] || y > location[1] + popupMenuHeight) { - binding!!.popupMenu.visibility = View.GONE - } - } - } - true - } binding!!.popupMenu.setOnClickListener { hangup(true, true) @@ -1396,6 +1376,34 @@ class CallActivity : CallBaseActivity() { } } + override fun dispatchTouchEvent(event: MotionEvent): Boolean { + + if (binding!!.popupMenu.visibility == View.VISIBLE) { + + if (event.action == MotionEvent.ACTION_DOWN) { + + val buttonLocation = IntArray(2) + binding!!.popupMenu.getLocationOnScreen(buttonLocation) + + val popupMenuWidth = binding!!.popupMenu.width + val popupMenuHeight = binding!!.popupMenu.height + + val buttonLeft = buttonLocation[0] + val buttonTop = buttonLocation[1] + val buttonRight = buttonLeft + popupMenuWidth + val buttonBottom = buttonTop + popupMenuHeight + + val x = event.rawX + val y = event.rawY + if (x < buttonLeft || x > buttonRight || y < buttonTop || y > buttonBottom) { + binding!!.popupMenu.visibility = View.GONE + } + } + } + return super.dispatchTouchEvent(event) + } + + fun clickRaiseOrLowerHandButton() { raiseHandViewModel!!.clickHandButton() }