mirror of
https://github.com/androidx/media.git
synced 2025-05-09 16:40:55 +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;
|
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
|
* An interface through which system clocks can be read and {@link HandlerWrapper}s created. The
|
||||||
* used for all non-test cases. Implementations must also be able to create a {@link HandlerWrapper}
|
* {@link #DEFAULT} implementation must be used for all non-test cases.
|
||||||
* which uses the underlying clock to schedule delayed messages.
|
|
||||||
*/
|
*/
|
||||||
public interface Clock extends HandlerWrapper.Factory {
|
public interface Clock {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default {@link Clock} to use for all non-test cases.
|
* 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)
|
* @see android.os.SystemClock#sleep(long)
|
||||||
*/
|
*/
|
||||||
void sleep(long sleepTimeMs);
|
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.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.Message;
|
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
|
* An interface to call through to a {@link Handler}. Instances must be created by calling {@link
|
||||||
* used for all non-test cases.
|
* Clock#createHandler(Looper, Handler.Callback)} on {@link Clock#DEFAULT} for all non-test cases.
|
||||||
*/
|
*/
|
||||||
public interface HandlerWrapper {
|
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(). */
|
/** @see Handler#getLooper(). */
|
||||||
Looper getLooper();
|
Looper getLooper();
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.google.android.exoplayer2.util;
|
package com.google.android.exoplayer2.util;
|
||||||
|
|
||||||
|
import android.os.Handler;
|
||||||
import android.os.Handler.Callback;
|
import android.os.Handler.Callback;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
@ -36,6 +37,6 @@ import android.support.annotation.Nullable;
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HandlerWrapper createHandler(Looper looper, @Nullable Callback callback) {
|
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;
|
package com.google.android.exoplayer2.util;
|
||||||
|
|
||||||
import android.os.Handler.Callback;
|
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
|
|
||||||
/** The standard implementation of {@link HandlerWrapper}. */
|
/** The standard implementation of {@link HandlerWrapper}. */
|
||||||
/* package */ final class SystemHandler implements HandlerWrapper {
|
/* package */ final class SystemHandlerWrapper 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));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private final android.os.Handler handler;
|
private final android.os.Handler handler;
|
||||||
|
|
||||||
private SystemHandler(android.os.Handler handler) {
|
public SystemHandlerWrapper(android.os.Handler handler) {
|
||||||
this.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.DataSource;
|
||||||
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
|
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
|
||||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
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.HandlerWrapper;
|
||||||
import com.google.android.exoplayer2.util.Util;
|
import com.google.android.exoplayer2.util.Util;
|
||||||
import com.google.android.exoplayer2.video.VideoRendererEventListener;
|
import com.google.android.exoplayer2.video.VideoRendererEventListener;
|
||||||
@ -188,8 +189,7 @@ public abstract class ExoHostedTest extends Player.DefaultEventListener implemen
|
|||||||
player.addAudioDebugListener(this);
|
player.addAudioDebugListener(this);
|
||||||
player.addVideoDebugListener(this);
|
player.addVideoDebugListener(this);
|
||||||
player.setPlayWhenReady(true);
|
player.setPlayWhenReady(true);
|
||||||
actionHandler =
|
actionHandler = Clock.DEFAULT.createHandler(Looper.myLooper(), /* callback= */ null);
|
||||||
HandlerWrapper.Factory.DEFAULT.createHandler(Looper.myLooper(), /* callback= */ null);
|
|
||||||
// Schedule any pending actions.
|
// Schedule any pending actions.
|
||||||
if (pendingSchedule != null) {
|
if (pendingSchedule != null) {
|
||||||
pendingSchedule.start(player, trackSelector, surface, actionHandler, /* callback= */ null);
|
pendingSchedule.start(player, trackSelector, surface, actionHandler, /* callback= */ null);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user