From 2495b6f5c0964d2f1fa8c9395cc8e0241c0493ae Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 28 Jun 2023 10:20:34 -0300 Subject: [PATCH] Add LowPowerStandby stub to DozeWatchdogImpl --- .../briar/android/DozeWatchdogImpl.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/DozeWatchdogImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/DozeWatchdogImpl.java index e6cf8e227..b22214700 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/DozeWatchdogImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/DozeWatchdogImpl.java @@ -7,7 +7,6 @@ import android.content.IntentFilter; import android.os.PowerManager; import org.briarproject.bramble.api.lifecycle.Service; -import org.briarproject.bramble.api.lifecycle.ServiceException; import org.briarproject.briar.api.android.DozeWatchdog; import java.util.concurrent.atomic.AtomicBoolean; @@ -15,6 +14,7 @@ import java.util.concurrent.atomic.AtomicBoolean; 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_LOW_POWER_STANDBY_ENABLED_CHANGED; class DozeWatchdogImpl implements DozeWatchdog, Service { @@ -32,14 +32,17 @@ class DozeWatchdogImpl implements DozeWatchdog, Service { } @Override - public void startService() throws ServiceException { + public void startService() { if (SDK_INT < 23) return; IntentFilter filter = new IntentFilter(ACTION_DEVICE_IDLE_MODE_CHANGED); + if (SDK_INT >= 33) { + filter.addAction(ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED); + } appContext.registerReceiver(receiver, filter); } @Override - public void stopService() throws ServiceException { + public void stopService() { if (SDK_INT < 23) return; appContext.unregisterReceiver(receiver); } @@ -49,9 +52,17 @@ class DozeWatchdogImpl implements DozeWatchdog, Service { @Override public void onReceive(Context context, Intent intent) { if (SDK_INT < 23) return; + String action = intent.getAction(); PowerManager pm = (PowerManager) appContext.getSystemService(POWER_SERVICE); - if (pm.isDeviceIdleMode()) dozed.set(true); + if (ACTION_DEVICE_IDLE_MODE_CHANGED.equals(action)) { + if (pm.isDeviceIdleMode()) dozed.set(true); + } else if (ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED.equals( + action)) { + // pm.isLowPowerStandbyEnabled(); + // TODO what do we do with this now? Disable Tor? + // broadcast network disabled events? + } } } }