No-op cleanup for playback controls

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=132859943
This commit is contained in:
olly 2016-09-12 03:57:08 -07:00 committed by Oliver Woodman
parent 8190089b32
commit bcec597023
3 changed files with 106 additions and 97 deletions

View file

@ -44,9 +44,9 @@ public class PlaybackControlView extends FrameLayout {
*/
public interface VisibilityListener {
/**
* Called after the visibility changed.
* Called when the visibility changes.
*
* @param visibility The visibility value of the UI control after having changed.
* @param visibility The new visibility. Either {@link View#VISIBLE} or {@link View#GONE}.
*/
void onVisibilityChange(int visibility);
}
@ -54,9 +54,8 @@ public class PlaybackControlView extends FrameLayout {
public static final int DEFAULT_FAST_FORWARD_MS = 15000;
public static final int DEFAULT_REWIND_MS = 5000;
public static final int DEFAULT_SHOW_DURATION_MS = 5000;
private static final long MAX_POSITION_FOR_SEEK_TO_PREVIOUS = 3000;
private ExoPlayer player;
private static final long MAX_POSITION_FOR_SEEK_TO_PREVIOUS = 3000;
private final ComponentListener componentListener;
private final View previousButton;
@ -67,16 +66,18 @@ public class PlaybackControlView extends FrameLayout {
private final SeekBar progressBar;
private final View fastForwardButton;
private final View rewindButton;
private VisibilityListener visibilityListener;
private final StringBuilder formatBuilder;
private final Formatter formatter;
private final Timeline.Window currentWindow;
private ExoPlayer player;
private VisibilityListener visibilityListener;
private final Timeline.Window currentWindow = new Timeline.Window();
private boolean dragging;
private boolean isProgressUpdating;
private int rewindMs = DEFAULT_REWIND_MS;
private int fastForwardMs = DEFAULT_FAST_FORWARD_MS;
private int showDuration = DEFAULT_SHOW_DURATION_MS;
private int showDurationMs = DEFAULT_SHOW_DURATION_MS;
private final Runnable updateProgressAction = new Runnable() {
@Override
@ -104,6 +105,7 @@ public class PlaybackControlView extends FrameLayout {
public PlaybackControlView(Context context, AttributeSet attrs) {
super(context, attrs);
currentWindow = new Timeline.Window();
formatBuilder = new StringBuilder();
formatter = new Formatter(formatBuilder, Locale.getDefault());
componentListener = new ComponentListener();
@ -147,7 +149,7 @@ public class PlaybackControlView extends FrameLayout {
/**
* Set the {@link VisibilityListener}.
* Sets the {@link VisibilityListener}.
*
* @param listener The listener to be notified about visibility changes.
*/
@ -156,47 +158,47 @@ public class PlaybackControlView extends FrameLayout {
}
/**
* Set the duration to rewind in milliseconds.
* Sets the rewind increment in milliseconds.
*
* @param rewindMs Duration to rewind in milliseconds.
* @param rewindMs The rewind increment in milliseconds.
*/
public void setRewindMs(int rewindMs) {
public void setRewindIncrementMs(int rewindMs) {
this.rewindMs = rewindMs;
}
/**
* Set the duration to fast forward in milliseconds.
* Sets the fast forward increment in milliseconds.
*
* @param fastForwardMs Duration to fast forward in milliseconds.
* @param fastForwardMs The fast forward increment in milliseconds.
*/
public void setFastForwardMs(int fastForwardMs) {
public void setFastForwardIncrementMs(int fastForwardMs) {
this.fastForwardMs = fastForwardMs;
}
/**
* Set the duration to show the playback control in milliseconds.
* Sets the duration to show the playback control in milliseconds.
*
* @param showDuration Duration in milliseconds.
* @param showDurationMs The duration in milliseconds.
*/
public void setShowDuration(int showDuration) {
this.showDuration = showDuration;
public void setShowDurationMs(int showDurationMs) {
this.showDurationMs = showDurationMs;
}
/**
* Show the controller for the duration set by {@link #setShowDuration(int)} or
* for {@link #DEFAULT_SHOW_DURATION_MS} in milliseconds if not yet set.
* Shows the controller for the duration last passed to {@link #setShowDurationMs(int)}, or for
* {@link #DEFAULT_SHOW_DURATION_MS} if {@link #setShowDurationMs(int)} has not been called.
*/
public void show() {
show(showDuration);
show(showDurationMs);
}
/**
* Show the controller for the given {@code duration} in milliseconds. If {@code duration} is 0
* the controller is shown until {@code hide()} is called.
* Shows the controller for the {@code durationMs}. If {@code durationMs} is 0 the controller is
* shown until {@link #hide()} is called.
*
* @param duration number of milliseconds the controller is shown.
* @param durationMs The duration in milliseconds.
*/
public void show(int duration) {
public void show(int durationMs) {
setVisibility(VISIBLE);
if (visibilityListener != null) {
visibilityListener.onVisibilityChange(getVisibility());
@ -204,14 +206,14 @@ public class PlaybackControlView extends FrameLayout {
isProgressUpdating = true;
post(updateProgressAction);
removeCallbacks(hideAction);
showDuration = duration;
if (duration > 0) {
postDelayed(hideAction, duration);
showDurationMs = durationMs;
if (durationMs > 0) {
postDelayed(hideAction, durationMs);
}
}
/**
* Hide the controller.
* Hides the controller.
*/
public void hide() {
setVisibility(GONE);
@ -223,9 +225,7 @@ public class PlaybackControlView extends FrameLayout {
}
/**
* Returns {@code true} if the controller is currently visible or {@code false} otherwise.
*
* @return {@code true} if shown or {@code false}.
* Returns whether the controller is currently visible.
*/
public boolean isVisible() {
return getVisibility() == VISIBLE;
@ -233,8 +233,8 @@ public class PlaybackControlView extends FrameLayout {
private void hideDeferred() {
removeCallbacks(hideAction);
if (showDuration != 0) {
postDelayed(hideAction, showDuration);
if (showDurationMs != 0) {
postDelayed(hideAction, showDurationMs);
}
}
@ -395,6 +395,7 @@ public class PlaybackControlView extends FrameLayout {
private final class ComponentListener implements ExoPlayer.EventListener,
SeekBar.OnSeekBarChangeListener, OnClickListener {
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
removeCallbacks(hideAction);
@ -432,13 +433,19 @@ public class PlaybackControlView extends FrameLayout {
}
@Override
public void onTimelineChanged(Timeline timeline, Object manifest) { /* do nothing. */ }
public void onTimelineChanged(Timeline timeline, Object manifest) {
// Do nothing.
}
@Override
public void onLoadingChanged(boolean isLoading) { /* do nothing */ }
public void onLoadingChanged(boolean isLoading) {
// Do nothing.
}
@Override
public void onPlayerError(ExoPlaybackException error) { /* do nothing */ }
public void onPlayerError(ExoPlaybackException error) {
// Do nothing.
}
@Override
public void onClick(View view) {

View file

@ -160,30 +160,30 @@ public final class SimpleExoPlayerView extends FrameLayout {
}
/**
* Set the number of milliseconds to rewind for each step.
* Sets the rewind increment in milliseconds.
*
* @param rewindMs Rewind step in milliseconds.
* @param rewindMs The rewind increment in milliseconds.
*/
public void setRewindMs(int rewindMs) {
controller.setRewindMs(rewindMs);
public void setRewindIncrementMs(int rewindMs) {
controller.setRewindIncrementMs(rewindMs);
}
/**
* Set the number of milliseconds to fast forward for each step.
* Sets the fast forward increment in milliseconds.
*
* @param fastForwardMs Fast forward step in milliseconds.
* @param fastForwardMs The fast forward increment in milliseconds.
*/
public void setFastForwardMs(int fastForwardMs) {
controller.setFastForwardMs(fastForwardMs);
public void setFastForwardIncrementMs(int fastForwardMs) {
controller.setFastForwardIncrementMs(fastForwardMs);
}
/**
* Set the duration to show the playback control in milliseconds.
* Sets the duration to show the playback control in milliseconds.
*
* @param showDuration Duration in milliseconds.
* @param showDurationMs The duration in milliseconds.
*/
public void setControlShowDuration(int showDuration) {
controller.setShowDuration(showDuration);
public void setControlShowDurationMs(int showDurationMs) {
controller.setShowDurationMs(showDurationMs);
}
/**

View file

@ -14,72 +14,74 @@
limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#CC000000"
android:layout_gravity="bottom"
android:orientation="vertical"
android:layoutDirection="ltr">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="#CC000000"
android:orientation="vertical"
android:layoutDirection="ltr">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingTop="4dp"
android:orientation="horizontal">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingTop="4dp"
android:orientation="horizontal">
<ImageButton android:id="@+id/prev"
style="@style/MediaButton.Previous"
android:contentDescription="@string/prev_description"
android:visibility="gone"/>
android:contentDescription="@string/prev_description"
style="@style/MediaButton.Previous"/>
<ImageButton android:id="@+id/rew"
style="@style/MediaButton.Rew"
android:contentDescription="@string/rew_description"/>
android:contentDescription="@string/rew_description"
style="@style/MediaButton.Rew"/>
<ImageButton android:id="@+id/pause"
style="@style/MediaButton.Pause"
android:contentDescription="@string/pause_description"/>
android:contentDescription="@string/pause_description"
style="@style/MediaButton.Pause"/>
<ImageButton android:id="@+id/ffwd"
style="@style/MediaButton.Ffwd"
android:contentDescription="@string/ffw_description"/>
android:contentDescription="@string/ffw_description"
style="@style/MediaButton.Ffwd"/>
<ImageButton android:id="@+id/next"
style="@style/MediaButton.Next"
android:contentDescription="@string/prev_description"
android:visibility="gone"/>
android:contentDescription="@string/prev_description"
style="@style/MediaButton.Next"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView android:id="@+id/time_current"
android:textSize="14sp"
android:textStyle="bold"
android:paddingTop="4dp"
android:paddingStart="4dp"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingEnd="4dp"
android:textColor="#FFBEBEBE"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textSize="14sp"
android:textStyle="bold"
android:paddingTop="4dp"
android:paddingStart="4dp"
android:paddingEnd="4dp"
android:textColor="#FFBEBEBE"/>
<SeekBar android:id="@+id/mediacontroller_progress"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="32dp"/>
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="32dp"
style="?android:attr/progressBarStyleHorizontal"/>
<TextView android:id="@+id/time"
android:textSize="14sp"
android:textStyle="bold"
android:paddingTop="4dp"
android:paddingEnd="4dp"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="4dp"
android:textColor="#FFBEBEBE"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textSize="14sp"
android:textStyle="bold"
android:paddingTop="4dp"
android:paddingEnd="4dp"
android:paddingStart="4dp"
android:textColor="#FFBEBEBE"/>
</LinearLayout>