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 {
}
/**
* 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
* tracking the lifecycle of the surface, and must clear the surface by calling
* {@code setVideoSurface(null)} if the surface is destroyed.
......@@ -240,6 +248,9 @@ public final class SimpleExoPlayer implements ExoPlayer {
if (textureView == null) {
setVideoSurfaceInternal(null);
} else {
if (textureView.getSurfaceTextureListener() != null) {
Log.w(TAG, "Replacing existing SurfaceTextureListener.");
}
SurfaceTexture surfaceTexture = textureView.getSurfaceTexture();
setVideoSurfaceInternal(surfaceTexture == null ? null : new Surface(surfaceTexture));
textureView.setSurfaceTextureListener(componentListener);
......@@ -593,13 +604,17 @@ public final class SimpleExoPlayer implements ExoPlayer {
}
private void removeSurfaceCallbacks() {
if (this.textureView != null) {
this.textureView.setSurfaceTextureListener(null);
this.textureView = null;
if (textureView != null) {
if (textureView.getSurfaceTextureListener() != componentListener) {
Log.w(TAG, "SurfaceTextureListener already unset or replaced.");
} else {
textureView.setSurfaceTextureListener(null);
}
textureView = null;
}
if (this.surfaceHolder != null) {
this.surfaceHolder.removeCallback(componentListener);
this.surfaceHolder = null;
if (surfaceHolder != null) {
surfaceHolder.removeCallback(componentListener);
surfaceHolder = null;
}
}
......
......@@ -140,6 +140,9 @@ public class PlaybackControlView extends FrameLayout {
* @param player the {@code ExoPlayer} to control.
*/
public void setPlayer(ExoPlayer player) {
if (this.player == player) {
return;
}
if (this.player != null) {
this.player.removeListener(componentListener);
}
......
......@@ -112,6 +112,9 @@ public final class SimpleExoPlayerView extends FrameLayout {
* @param player The {@link SimpleExoPlayer} to use.
*/
public void setPlayer(SimpleExoPlayer player) {
if (this.player == player) {
return;
}
if (this.player != null) {
this.player.setTextOutput(null);
this.player.setVideoListener(null);
......@@ -131,7 +134,9 @@ public final class SimpleExoPlayerView extends FrameLayout {
} else {
shutterView.setVisibility(VISIBLE);
}
setUseController(useController);
if (useController) {
controller.setPlayer(player);
}
}
/**
......@@ -142,6 +147,9 @@ public final class SimpleExoPlayerView extends FrameLayout {
* @param useController If {@code false} the playback control is never used.
*/
public void setUseController(boolean useController) {
if (this.useController == useController) {
return;
}
this.useController = useController;
if (useController) {
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