override fun dispatchTouchEvent()

in app/src/main/java/com/amazonaws/ivs/player/ecommerce/ui/MainActivity.kt [184:225]


    override fun dispatchTouchEvent(event: MotionEvent?): Boolean {
        if (event != null && isShowingStreams) {
            when (event.action) {
                MotionEvent.ACTION_DOWN -> {
                    if (binding.playerView.isTouched(event.x, event.y)) {
                        touchOffset = binding.playerView.getTouchOffset(event.x, event.y)
                    }
                }
                MotionEvent.ACTION_MOVE -> {
                    touchOffset?.let { offset ->
                        binding.playerView.x = event.x - offset.x
                        binding.playerView.y = event.y - offset.y
                    }
                }
                MotionEvent.ACTION_UP -> {
                    val eventDuration = event.eventTime - event.downTime
                    if (eventDuration <= CLICK_THRESHOLD || touchOffset == null) {
                        touchOffset = null
                        return super.dispatchTouchEvent(event)
                    }
                    val anchorPoint = binding.motionLayout.getAnchorPoint(PlayerParams(
                        event.x,
                        event.y,
                        binding.playerView.width,
                        binding.playerView.height
                    ))
                    anchorType = anchorPoint.type
                    launchUI {
                        delay(50L)
                        binding.playerView.animate()
                            .x(anchorPoint.x)
                            .y(anchorPoint.y)
                            .setDuration(ANIMATION_DURATION)
                            .start()
                        touchOffset = null
                        updatePlayerState()
                    }
                }
            }
        }
        return super.dispatchTouchEvent(event)
    }