Toggle playback controls according to standard Android click handling.
We currently toggle the view in onTouchEvent ACTION_DOWN which is non-standard and causes problems when used in a ViewGroup intercepting touch events. Switch to standard Android click handling instead which is also what most other player apps are doing. Issue:#5784 PiperOrigin-RevId: 245219728
This commit is contained in:
parent
b9f3fd429d
commit
25e93a178a
@ -8,6 +8,8 @@
|
||||
* UI:
|
||||
* Allow setting `DefaultTimeBar` attributes on `PlayerView` and
|
||||
`PlayerControlView`.
|
||||
* Change playback controls toggle from touch down to touch up events
|
||||
([#5784](https://github.com/google/ExoPlayer/issues/5784)).
|
||||
* Fix issue where playback controls were not kept visible on key presses
|
||||
([#5963](https://github.com/google/ExoPlayer/issues/5963)).
|
||||
* Add a playWhenReady flag to MediaSessionConnector.PlaybackPreparer methods
|
||||
|
@ -303,6 +303,7 @@ public class PlayerView extends FrameLayout implements AdsLoader.AdViewProvider
|
||||
private boolean controllerHideDuringAds;
|
||||
private boolean controllerHideOnTouch;
|
||||
private int textureViewRotation;
|
||||
private boolean isTouching;
|
||||
|
||||
public PlayerView(Context context) {
|
||||
this(context, null);
|
||||
@ -1048,11 +1049,21 @@ public class PlayerView extends FrameLayout implements AdsLoader.AdViewProvider
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent ev) {
|
||||
if (ev.getActionMasked() != MotionEvent.ACTION_DOWN) {
|
||||
return false;
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
switch (event.getAction()) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
isTouching = true;
|
||||
return true;
|
||||
case MotionEvent.ACTION_UP:
|
||||
if (isTouching) {
|
||||
isTouching = false;
|
||||
performClick();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return performClick();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
x
Reference in New Issue
Block a user