Commit 6c12ec62 by olly Committed by Oliver Woodman

Some minor UI refinements

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135353593
parent 08965c03
...@@ -184,6 +184,14 @@ public final class SimpleExoPlayer implements ExoPlayer { ...@@ -184,6 +184,14 @@ public final class SimpleExoPlayer implements ExoPlayer {
} }
/** /**
* Clears any {@link Surface}, {@link SurfaceHolder}, {@link SurfaceView} or {@link TextureView}
* currently set on the player.
*/
public void clearVideoSurface() {
setVideoSurface(null);
}
/**
* Sets the {@link Surface} onto which video will be rendered. The caller is responsible for * Sets the {@link Surface} onto which video will be rendered. The caller is responsible for
* tracking the lifecycle of the surface, and must clear the surface by calling * tracking the lifecycle of the surface, and must clear the surface by calling
* {@code setVideoSurface(null)} if the surface is destroyed. * {@code setVideoSurface(null)} if the surface is destroyed.
...@@ -240,6 +248,9 @@ public final class SimpleExoPlayer implements ExoPlayer { ...@@ -240,6 +248,9 @@ public final class SimpleExoPlayer implements ExoPlayer {
if (textureView == null) { if (textureView == null) {
setVideoSurfaceInternal(null); setVideoSurfaceInternal(null);
} else { } else {
if (textureView.getSurfaceTextureListener() != null) {
Log.w(TAG, "Replacing existing SurfaceTextureListener.");
}
SurfaceTexture surfaceTexture = textureView.getSurfaceTexture(); SurfaceTexture surfaceTexture = textureView.getSurfaceTexture();
setVideoSurfaceInternal(surfaceTexture == null ? null : new Surface(surfaceTexture)); setVideoSurfaceInternal(surfaceTexture == null ? null : new Surface(surfaceTexture));
textureView.setSurfaceTextureListener(componentListener); textureView.setSurfaceTextureListener(componentListener);
...@@ -593,13 +604,17 @@ public final class SimpleExoPlayer implements ExoPlayer { ...@@ -593,13 +604,17 @@ public final class SimpleExoPlayer implements ExoPlayer {
} }
private void removeSurfaceCallbacks() { private void removeSurfaceCallbacks() {
if (this.textureView != null) { if (textureView != null) {
this.textureView.setSurfaceTextureListener(null); if (textureView.getSurfaceTextureListener() != componentListener) {
this.textureView = null; Log.w(TAG, "SurfaceTextureListener already unset or replaced.");
} else {
textureView.setSurfaceTextureListener(null);
}
textureView = null;
} }
if (this.surfaceHolder != null) { if (surfaceHolder != null) {
this.surfaceHolder.removeCallback(componentListener); surfaceHolder.removeCallback(componentListener);
this.surfaceHolder = null; surfaceHolder = null;
} }
} }
......
...@@ -140,6 +140,9 @@ public class PlaybackControlView extends FrameLayout { ...@@ -140,6 +140,9 @@ public class PlaybackControlView extends FrameLayout {
* @param player the {@code ExoPlayer} to control. * @param player the {@code ExoPlayer} to control.
*/ */
public void setPlayer(ExoPlayer player) { public void setPlayer(ExoPlayer player) {
if (this.player == player) {
return;
}
if (this.player != null) { if (this.player != null) {
this.player.removeListener(componentListener); this.player.removeListener(componentListener);
} }
......
...@@ -112,6 +112,9 @@ public final class SimpleExoPlayerView extends FrameLayout { ...@@ -112,6 +112,9 @@ public final class SimpleExoPlayerView extends FrameLayout {
* @param player The {@link SimpleExoPlayer} to use. * @param player The {@link SimpleExoPlayer} to use.
*/ */
public void setPlayer(SimpleExoPlayer player) { public void setPlayer(SimpleExoPlayer player) {
if (this.player == player) {
return;
}
if (this.player != null) { if (this.player != null) {
this.player.setTextOutput(null); this.player.setTextOutput(null);
this.player.setVideoListener(null); this.player.setVideoListener(null);
...@@ -131,7 +134,9 @@ public final class SimpleExoPlayerView extends FrameLayout { ...@@ -131,7 +134,9 @@ public final class SimpleExoPlayerView extends FrameLayout {
} else { } else {
shutterView.setVisibility(VISIBLE); shutterView.setVisibility(VISIBLE);
} }
setUseController(useController); if (useController) {
controller.setPlayer(player);
}
} }
/** /**
...@@ -142,6 +147,9 @@ public final class SimpleExoPlayerView extends FrameLayout { ...@@ -142,6 +147,9 @@ public final class SimpleExoPlayerView extends FrameLayout {
* @param useController If {@code false} the playback control is never used. * @param useController If {@code false} the playback control is never used.
*/ */
public void setUseController(boolean useController) { public void setUseController(boolean useController) {
if (this.useController == useController) {
return;
}
this.useController = useController; this.useController = useController;
if (useController) { if (useController) {
controller.setPlayer(player); controller.setPlayer(player);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment