mirror of
https://github.com/androidx/media.git
synced 2025-05-12 18:19:50 +08:00
Make certain we have appropriate locks held for playback tests.
This commit is contained in:
parent
3538e57797
commit
8022d28e04
@ -21,6 +21,7 @@
|
||||
android:versionName="1.4.1">
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
||||
|
||||
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="22"/>
|
||||
|
||||
|
@ -19,11 +19,18 @@ import static junit.framework.Assert.fail;
|
||||
|
||||
import com.google.android.exoplayer.playbacktests.R;
|
||||
import com.google.android.exoplayer.util.Assertions;
|
||||
import com.google.android.exoplayer.util.Util;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.net.wifi.WifiManager.WifiLock;
|
||||
import android.os.Bundle;
|
||||
import android.os.ConditionVariable;
|
||||
import android.os.Handler;
|
||||
import android.os.PowerManager;
|
||||
import android.os.PowerManager.WakeLock;
|
||||
import android.util.Log;
|
||||
import android.view.Surface;
|
||||
import android.view.SurfaceHolder;
|
||||
@ -78,6 +85,9 @@ public final class HostActivity extends Activity implements SurfaceHolder.Callba
|
||||
|
||||
private static final String TAG = "HostActivity";
|
||||
|
||||
private WakeLock wakeLock;
|
||||
private WifiLock wifiLock;
|
||||
|
||||
private SurfaceView surfaceView;
|
||||
private Handler mainHandler;
|
||||
private CheckFinishedRunnable checkFinishedRunnable;
|
||||
@ -137,6 +147,18 @@ public final class HostActivity extends Activity implements SurfaceHolder.Callba
|
||||
checkFinishedRunnable = new CheckFinishedRunnable();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
Context appContext = getApplicationContext();
|
||||
WifiManager wifiManager = (WifiManager) appContext.getSystemService(Context.WIFI_SERVICE);
|
||||
wifiLock = wifiManager.createWifiLock(getWifiLockMode(), TAG);
|
||||
wifiLock.acquire();
|
||||
PowerManager powerManager = (PowerManager) appContext.getSystemService(Context.POWER_SERVICE);
|
||||
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
|
||||
wakeLock.acquire();
|
||||
super.onStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
@ -149,6 +171,15 @@ public final class HostActivity extends Activity implements SurfaceHolder.Callba
|
||||
maybeReleaseHostedTest();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop() {
|
||||
super.onStop();
|
||||
wakeLock.release();
|
||||
wakeLock = null;
|
||||
wifiLock.release();
|
||||
wifiLock = null;
|
||||
}
|
||||
|
||||
// SurfaceHolder.Callback
|
||||
|
||||
@Override
|
||||
@ -190,6 +221,11 @@ public final class HostActivity extends Activity implements SurfaceHolder.Callba
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("InlinedApi")
|
||||
private static final int getWifiLockMode() {
|
||||
return Util.SDK_INT < 12 ? WifiManager.WIFI_MODE_FULL : WifiManager.WIFI_MODE_FULL_HIGH_PERF;
|
||||
}
|
||||
|
||||
private final class CheckFinishedRunnable implements Runnable {
|
||||
|
||||
private static final long CHECK_INTERVAL_MS = 1000;
|
||||
|
Loading…
x
Reference in New Issue
Block a user