package com.xabber.android.data.connection;
import android.content.Context;
import android.net.wifi.WifiManager;
import android.os.PowerManager;
import com.xabber.android.data.Application;
import com.xabber.android.data.SettingsManager;
import com.xabber.android.data.log.LogManager;
public class WakeLockManager {
private static final String LOG_TAG = WakeLockManager.class.getSimpleName();
private static final WifiManager.WifiLock WIFI_LOCK;
private static final PowerManager.WakeLock WAKE_LOCK;
static {
WIFI_LOCK = ((WifiManager) Application.getInstance().getApplicationContext()
.getSystemService(Context.WIFI_SERVICE))
.createWifiLock(WifiManager.WIFI_MODE_FULL, "Xabber Wifi Lock");
WIFI_LOCK.setReferenceCounted(false);
WAKE_LOCK = ((PowerManager) Application.getInstance()
.getSystemService(Context.POWER_SERVICE))
.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Xabber Wake Lock");
WAKE_LOCK.setReferenceCounted(false);
}
public static void onWifiLockSettingsChanged() {
if (SettingsManager.connectionWifiLock()) {
LogManager.i(LOG_TAG, "Acquire wi-fi lock");
WIFI_LOCK.acquire();
} else {
LogManager.i(LOG_TAG, "Release wi-fi lock");
WIFI_LOCK.release();
}
}
public static void onWakeLockSettingsChanged() {
if (SettingsManager.connectionWakeLock()) {
LogManager.i(LOG_TAG, "Acquire global partial wake lock");
WAKE_LOCK.acquire();
} else {
LogManager.i(LOG_TAG, "Acquire global partial wake lock");
WAKE_LOCK.release();
}
}
}