mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-11 18:29:05 +01:00
React to device light idle mode in DozeWatchdog as well
This commit is contained in:
@@ -12,9 +12,12 @@ import org.briarproject.briar.api.android.DozeWatchdog;
|
|||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import static android.content.Context.POWER_SERVICE;
|
import static android.content.Context.POWER_SERVICE;
|
||||||
import static android.os.Build.VERSION.SDK_INT;
|
import static android.os.Build.VERSION.SDK_INT;
|
||||||
import static android.os.PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED;
|
import static android.os.PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED;
|
||||||
|
import static android.os.PowerManager.ACTION_DEVICE_LIGHT_IDLE_MODE_CHANGED;
|
||||||
import static android.os.PowerManager.ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED;
|
import static android.os.PowerManager.ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED;
|
||||||
import static java.util.logging.Level.WARNING;
|
import static java.util.logging.Level.WARNING;
|
||||||
import static java.util.logging.Logger.getLogger;
|
import static java.util.logging.Logger.getLogger;
|
||||||
@@ -42,6 +45,7 @@ class DozeWatchdogImpl implements DozeWatchdog, Service {
|
|||||||
if (SDK_INT < 23) return;
|
if (SDK_INT < 23) return;
|
||||||
IntentFilter filter = new IntentFilter(ACTION_DEVICE_IDLE_MODE_CHANGED);
|
IntentFilter filter = new IntentFilter(ACTION_DEVICE_IDLE_MODE_CHANGED);
|
||||||
if (SDK_INT >= 33) {
|
if (SDK_INT >= 33) {
|
||||||
|
filter.addAction(ACTION_DEVICE_LIGHT_IDLE_MODE_CHANGED);
|
||||||
filter.addAction(ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED);
|
filter.addAction(ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED);
|
||||||
}
|
}
|
||||||
appContext.registerReceiver(receiver, filter);
|
appContext.registerReceiver(receiver, filter);
|
||||||
@@ -63,14 +67,27 @@ class DozeWatchdogImpl implements DozeWatchdog, Service {
|
|||||||
(PowerManager) appContext.getSystemService(POWER_SERVICE);
|
(PowerManager) appContext.getSystemService(POWER_SERVICE);
|
||||||
if (ACTION_DEVICE_IDLE_MODE_CHANGED.equals(action)) {
|
if (ACTION_DEVICE_IDLE_MODE_CHANGED.equals(action)) {
|
||||||
if (pm.isDeviceIdleMode()) dozed.set(true);
|
if (pm.isDeviceIdleMode()) dozed.set(true);
|
||||||
} else if (SDK_INT >= 33 &&
|
} else if (SDK_INT >= 33) {
|
||||||
ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED.equals(action)) {
|
onReceive33(action, pm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequiresApi(33)
|
||||||
|
private void onReceive33(String action, PowerManager pm) {
|
||||||
|
if (ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED.equals(action)) {
|
||||||
if (pm.isLowPowerStandbyEnabled()) {
|
if (pm.isLowPowerStandbyEnabled()) {
|
||||||
if (LOG.isLoggable(WARNING)) {
|
if (LOG.isLoggable(WARNING)) {
|
||||||
LOG.warning("System is in low power standby mode");
|
LOG.warning("System is in low power standby mode");
|
||||||
}
|
}
|
||||||
dozed.set(true);
|
dozed.set(true);
|
||||||
}
|
}
|
||||||
|
} else if (ACTION_DEVICE_LIGHT_IDLE_MODE_CHANGED.equals(action)) {
|
||||||
|
if (pm.isDeviceLightIdleMode()) {
|
||||||
|
if (LOG.isLoggable(WARNING)) {
|
||||||
|
LOG.warning("System is in light idle mode");
|
||||||
|
}
|
||||||
|
dozed.set(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user