add function to subtitle layer
This commit is contained in:
@@ -4,6 +4,7 @@ import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.GestureDetector
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.view.ViewConfiguration
|
||||
import android.widget.FrameLayout
|
||||
import androidx.media3.ui.PlayerView
|
||||
@@ -123,6 +124,26 @@ class OralTrainerPlayerView @JvmOverloads constructor(
|
||||
verticalSwipeListener = listener
|
||||
}
|
||||
|
||||
/** Forwards touches from an overlay (for example a subtitle layer) as player gestures. */
|
||||
fun forwardGestureFrom(source: View, event: MotionEvent): Boolean {
|
||||
if (controller == null || !gestureControls.enabled) {
|
||||
return false
|
||||
}
|
||||
val sourceLocation = IntArray(2).also(source::getLocationOnScreen)
|
||||
val playerLocation = IntArray(2).also(::getLocationOnScreen)
|
||||
val playerEvent = MotionEvent.obtain(event).apply {
|
||||
offsetLocation(
|
||||
(playerLocation[0] - sourceLocation[0]).toFloat(),
|
||||
(playerLocation[1] - sourceLocation[1]).toFloat(),
|
||||
)
|
||||
}
|
||||
return try {
|
||||
handleLongPressSpeed(playerEvent) || gestureDetector.onTouchEvent(playerEvent)
|
||||
} finally {
|
||||
playerEvent.recycle()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onTouchEvent(event: MotionEvent): Boolean {
|
||||
return gestureDetector.onTouchEvent(event) || super.onTouchEvent(event)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user