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.logging.Logger;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
import static android.content.Context.POWER_SERVICE;
|
||||
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_LIGHT_IDLE_MODE_CHANGED;
|
||||
import static android.os.PowerManager.ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED;
|
||||
import static java.util.logging.Level.WARNING;
|
||||
import static java.util.logging.Logger.getLogger;
|
||||
@@ -42,6 +45,7 @@ class DozeWatchdogImpl implements DozeWatchdog, Service {
|
||||
if (SDK_INT < 23) return;
|
||||
IntentFilter filter = new IntentFilter(ACTION_DEVICE_IDLE_MODE_CHANGED);
|
||||
if (SDK_INT >= 33) {
|
||||
filter.addAction(ACTION_DEVICE_LIGHT_IDLE_MODE_CHANGED);
|
||||
filter.addAction(ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED);
|
||||
}
|
||||
appContext.registerReceiver(receiver, filter);
|
||||
@@ -63,14 +67,27 @@ class DozeWatchdogImpl implements DozeWatchdog, Service {
|
||||
(PowerManager) appContext.getSystemService(POWER_SERVICE);
|
||||
if (ACTION_DEVICE_IDLE_MODE_CHANGED.equals(action)) {
|
||||
if (pm.isDeviceIdleMode()) dozed.set(true);
|
||||
} else if (SDK_INT >= 33 &&
|
||||
ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED.equals(action)) {
|
||||
} else if (SDK_INT >= 33) {
|
||||
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 (LOG.isLoggable(WARNING)) {
|
||||
LOG.warning("System is in low power standby mode");
|
||||
}
|
||||
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