mirror of https://github.com/TeamNewPipe/NewPipe
45 lines
1.5 KiB
Java
45 lines
1.5 KiB
Java
package org.schabi.newpipe.player.helper;
|
|
|
|
import android.content.Context;
|
|
import android.net.wifi.WifiManager;
|
|
import android.os.PowerManager;
|
|
import android.util.Log;
|
|
|
|
import static android.content.Context.POWER_SERVICE;
|
|
import static android.content.Context.WIFI_SERVICE;
|
|
|
|
public class LockManager {
|
|
private final String TAG = "LockManager@" + hashCode();
|
|
|
|
private final PowerManager powerManager;
|
|
private final WifiManager wifiManager;
|
|
|
|
private PowerManager.WakeLock wakeLock;
|
|
private WifiManager.WifiLock wifiLock;
|
|
|
|
public LockManager(final Context context) {
|
|
powerManager = ((PowerManager) context.getApplicationContext().getSystemService(POWER_SERVICE));
|
|
wifiManager = ((WifiManager) context.getApplicationContext().getSystemService(WIFI_SERVICE));
|
|
}
|
|
|
|
public void acquireWifiAndCpu() {
|
|
Log.d(TAG, "acquireWifiAndCpu() called");
|
|
if (wakeLock != null && wakeLock.isHeld() && wifiLock != null && wifiLock.isHeld()) return;
|
|
|
|
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
|
|
wifiLock = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL, TAG);
|
|
|
|
if (wakeLock != null) wakeLock.acquire();
|
|
if (wifiLock != null) wifiLock.acquire();
|
|
}
|
|
|
|
public void releaseWifiAndCpu() {
|
|
Log.d(TAG, "releaseWifiAndCpu() called");
|
|
if (wakeLock != null && wakeLock.isHeld()) wakeLock.release();
|
|
if (wifiLock != null && wifiLock.isHeld()) wifiLock.release();
|
|
|
|
wakeLock = null;
|
|
wifiLock = null;
|
|
}
|
|
}
|