mirror of
https://github.com/androidx/media.git
synced 2025-05-10 00:59:51 +08:00
Remove HandlerWrapper.Factory
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=180558741
This commit is contained in:
parent
22f8ee37d4
commit
0821f578e8
@ -15,12 +15,15 @@
|
||||
*/
|
||||
package com.google.android.exoplayer2.util;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* An interface through which system clocks can be read. The {@link #DEFAULT} implementation must be
|
||||
* used for all non-test cases. Implementations must also be able to create a {@link HandlerWrapper}
|
||||
* which uses the underlying clock to schedule delayed messages.
|
||||
* An interface through which system clocks can be read and {@link HandlerWrapper}s created. The
|
||||
* {@link #DEFAULT} implementation must be used for all non-test cases.
|
||||
*/
|
||||
public interface Clock extends HandlerWrapper.Factory {
|
||||
public interface Clock {
|
||||
|
||||
/**
|
||||
* Default {@link Clock} to use for all non-test cases.
|
||||
@ -36,4 +39,12 @@ public interface Clock extends HandlerWrapper.Factory {
|
||||
* @see android.os.SystemClock#sleep(long)
|
||||
*/
|
||||
void sleep(long sleepTimeMs);
|
||||
|
||||
/**
|
||||
* Creates a {@link HandlerWrapper} using a specified looper and a specified callback for handling
|
||||
* messages.
|
||||
*
|
||||
* @see Handler#Handler(Looper, Handler.Callback).
|
||||
*/
|
||||
HandlerWrapper createHandler(Looper looper, @Nullable Handler.Callback callback);
|
||||
}
|
||||
|
@ -18,29 +18,13 @@ package com.google.android.exoplayer2.util;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* An interface to call through to an {@link Handler}. The {@link Factory#DEFAULT} factory must be
|
||||
* used for all non-test cases.
|
||||
* An interface to call through to a {@link Handler}. Instances must be created by calling {@link
|
||||
* Clock#createHandler(Looper, Handler.Callback)} on {@link Clock#DEFAULT} for all non-test cases.
|
||||
*/
|
||||
public interface HandlerWrapper {
|
||||
|
||||
/** A factory for handler instances. */
|
||||
interface Factory {
|
||||
|
||||
/** Default HandlerWrapper factory to use for all non-test cases. */
|
||||
Factory DEFAULT = new SystemHandler.Factory();
|
||||
|
||||
/**
|
||||
* Creates a HandlerWrapper running a specified looper and using a specified callback for
|
||||
* messages.
|
||||
*
|
||||
* @see Handler#Handler(Looper, Handler.Callback).
|
||||
*/
|
||||
HandlerWrapper createHandler(Looper looper, @Nullable Handler.Callback callback);
|
||||
}
|
||||
|
||||
/** @see Handler#getLooper(). */
|
||||
Looper getLooper();
|
||||
|
||||
|
@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.google.android.exoplayer2.util;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.os.Handler.Callback;
|
||||
import android.os.Looper;
|
||||
import android.support.annotation.Nullable;
|
||||
@ -36,6 +37,6 @@ import android.support.annotation.Nullable;
|
||||
|
||||
@Override
|
||||
public HandlerWrapper createHandler(Looper looper, @Nullable Callback callback) {
|
||||
return HandlerWrapper.Factory.DEFAULT.createHandler(looper, callback);
|
||||
return new SystemHandlerWrapper(new Handler(looper, callback));
|
||||
}
|
||||
}
|
||||
|
@ -15,25 +15,16 @@
|
||||
*/
|
||||
package com.google.android.exoplayer2.util;
|
||||
|
||||
import android.os.Handler.Callback;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.os.SystemClock;
|
||||
|
||||
/** The standard implementation of {@link HandlerWrapper}. */
|
||||
/* package */ final class SystemHandler implements HandlerWrapper {
|
||||
|
||||
/* package */ static final class Factory implements HandlerWrapper.Factory {
|
||||
|
||||
@Override
|
||||
public HandlerWrapper createHandler(Looper looper, Callback callback) {
|
||||
return new SystemHandler(new android.os.Handler(looper, callback));
|
||||
}
|
||||
}
|
||||
/* package */ final class SystemHandlerWrapper implements HandlerWrapper {
|
||||
|
||||
private final android.os.Handler handler;
|
||||
|
||||
private SystemHandler(android.os.Handler handler) {
|
||||
public SystemHandlerWrapper(android.os.Handler handler) {
|
||||
this.handler = handler;
|
||||
}
|
||||
|
@ -42,6 +42,7 @@ import com.google.android.exoplayer2.upstream.BandwidthMeter;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import com.google.android.exoplayer2.util.Clock;
|
||||
import com.google.android.exoplayer2.util.HandlerWrapper;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
import com.google.android.exoplayer2.video.VideoRendererEventListener;
|
||||
@ -188,8 +189,7 @@ public abstract class ExoHostedTest extends Player.DefaultEventListener implemen
|
||||
player.addAudioDebugListener(this);
|
||||
player.addVideoDebugListener(this);
|
||||
player.setPlayWhenReady(true);
|
||||
actionHandler =
|
||||
HandlerWrapper.Factory.DEFAULT.createHandler(Looper.myLooper(), /* callback= */ null);
|
||||
actionHandler = Clock.DEFAULT.createHandler(Looper.myLooper(), /* callback= */ null);
|
||||
// Schedule any pending actions.
|
||||
if (pendingSchedule != null) {
|
||||
pendingSchedule.start(player, trackSelector, surface, actionHandler, /* callback= */ null);
|
||||
|
Loading…
x
Reference in New Issue
Block a user