From a3083a6e730930b47c5b1a79a1375691170c9dc9 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Thu, 30 Aug 2018 18:10:18 +0100 Subject: [PATCH] Use a constant to enable the control condition. --- .../bramble/PowerTestingConstants.java | 8 +++++ .../bramble/plugin/tor/TorPlugin.java | 13 ++++---- .../briar/android/BriarService.java | 30 ++++++++++++------- .../briar/android/TestingConstants.java | 6 ---- 4 files changed, 34 insertions(+), 23 deletions(-) create mode 100644 bramble-android/src/main/java/org/briarproject/bramble/PowerTestingConstants.java diff --git a/bramble-android/src/main/java/org/briarproject/bramble/PowerTestingConstants.java b/bramble-android/src/main/java/org/briarproject/bramble/PowerTestingConstants.java new file mode 100644 index 000000000..deeb6de90 --- /dev/null +++ b/bramble-android/src/main/java/org/briarproject/bramble/PowerTestingConstants.java @@ -0,0 +1,8 @@ +package org.briarproject.bramble; + +public interface PowerTestingConstants { + + int WAKE_LOCK_DURATION = 5000; + int ALARM_DELAY = 5000; + boolean USE_TOR_WAKE_LOCK = true; +} diff --git a/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java b/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java index 3dbfc2add..539edb235 100644 --- a/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java +++ b/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java @@ -85,6 +85,7 @@ import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; import static net.freehaven.tor.control.TorControlCommands.HS_ADDRESS; import static net.freehaven.tor.control.TorControlCommands.HS_PRIVKEY; +import static org.briarproject.bramble.PowerTestingConstants.USE_TOR_WAKE_LOCK; import static org.briarproject.bramble.api.plugin.TorConstants.CONTROL_PORT; import static org.briarproject.bramble.api.plugin.TorConstants.ID; import static org.briarproject.bramble.api.plugin.TorConstants.PREF_TOR_NETWORK; @@ -126,7 +127,7 @@ class TorPlugin implements DuplexPlugin, EventHandler, EventListener { private final ConnectionStatus connectionStatus; private final File torDirectory, torFile, geoIpFile, configFile; private final File doneFile, cookieFile; - //private final RenewableWakeLock wakeLock; + private final RenewableWakeLock wakeLock; private final AtomicReference> connectivityCheck = new AtomicReference<>(); private final AtomicBoolean used = new AtomicBoolean(false); @@ -169,8 +170,8 @@ class TorPlugin implements DuplexPlugin, EventHandler, EventListener { ioExecutor, 1); PowerManager pm = (PowerManager) appContext.getSystemService(POWER_SERVICE); - //wakeLock = new RenewableWakeLock(pm, scheduler, PARTIAL_WAKE_LOCK, - // WAKE_LOCK_TAG, 1, MINUTES); + wakeLock = new RenewableWakeLock(pm, scheduler, PARTIAL_WAKE_LOCK, + WAKE_LOCK_TAG, 1, MINUTES); } @Override @@ -493,12 +494,12 @@ class TorPlugin implements DuplexPlugin, EventHandler, EventListener { private void enableNetwork(boolean enable) throws IOException { if (!running) return; - //if (enable) wakeLock.acquire(); + if (enable && USE_TOR_WAKE_LOCK) wakeLock.acquire(); connectionStatus.enableNetwork(enable); controlConnection.setConf("DisableNetwork", enable ? "0" : "1"); if (!enable) { callback.transportDisabled(); - // wakeLock.release(); + if (USE_TOR_WAKE_LOCK) wakeLock.release(); } } @@ -529,7 +530,7 @@ class TorPlugin implements DuplexPlugin, EventHandler, EventListener { logException(LOG, WARNING, e); } } - //wakeLock.release(); + if (USE_TOR_WAKE_LOCK) wakeLock.release(); } @Override diff --git a/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java b/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java index 6d192cb06..2f35e05bf 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java @@ -57,12 +57,11 @@ import static android.support.v4.app.NotificationCompat.PRIORITY_MIN; import static android.support.v4.app.NotificationCompat.VISIBILITY_SECRET; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; +import static org.briarproject.bramble.PowerTestingConstants.ALARM_DELAY; +import static org.briarproject.bramble.PowerTestingConstants.USE_TOR_WAKE_LOCK; +import static org.briarproject.bramble.PowerTestingConstants.WAKE_LOCK_DURATION; import static org.briarproject.bramble.api.lifecycle.LifecycleManager.StartResult.ALREADY_RUNNING; import static org.briarproject.bramble.api.lifecycle.LifecycleManager.StartResult.SUCCESS; -import static org.briarproject.briar.android.TestingConstants.ACTION_ALARM; -import static org.briarproject.briar.android.TestingConstants.ALARM_DELAY; -import static org.briarproject.briar.android.TestingConstants.EXTRA_DUE_MILLIS; -import static org.briarproject.briar.android.TestingConstants.WAKE_LOCK_DURATION; import static org.briarproject.briar.api.android.AndroidNotificationManager.FAILURE_CHANNEL_ID; import static org.briarproject.briar.api.android.AndroidNotificationManager.FAILURE_NOTIFICATION_ID; import static org.briarproject.briar.api.android.AndroidNotificationManager.ONGOING_CHANNEL_ID; @@ -78,6 +77,11 @@ public class BriarService extends Service { public static String EXTRA_STARTUP_FAILED = "org.briarproject.briar.STARTUP_FAILED"; + private static final String ACTION_ALARM = + "org.briarproject.briar.android.ACTION_ALARM"; + private static final String EXTRA_DUE_MILLIS = + "org.briarproject.briar.android.DUE_MILLIS"; + private static final Logger LOG = Logger.getLogger(BriarService.class.getName()); @@ -259,20 +263,24 @@ public class BriarService extends Service { long dueMillis = intent.getLongExtra(EXTRA_DUE_MILLIS, 0); long late = SystemClock.elapsedRealtime() - dueMillis; Log.i("ALARM_TEST", "Alarm fired " + late + " ms late"); - //acquire wakelock PowerManager powerManager = (PowerManager) getApplicationContext().getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PARTIAL_WAKE_LOCK, "briar:TestWakeLock"); - wakeLock.acquire(); - Log.i("ALARM_TEST", "WakeLock acquired for " - + WAKE_LOCK_DURATION + " ms"); + if (!USE_TOR_WAKE_LOCK) { + //acquire wakelock + wakeLock.acquire(); + Log.i("ALARM_TEST", "WakeLock acquired for " + + WAKE_LOCK_DURATION + " ms"); + } new Handler().postDelayed(() -> { //set alarm before releasing wake lock setAlarm(); - //release wakelock - Log.i("ALARM_TEST", "Releasing WakeLock"); - wakeLock.release(); + if (!USE_TOR_WAKE_LOCK) { + //release wakelock + Log.i("ALARM_TEST", "Releasing WakeLock"); + wakeLock.release(); + } }, WAKE_LOCK_DURATION); } return START_NOT_STICKY; // Don't restart automatically if killed diff --git a/briar-android/src/main/java/org/briarproject/briar/android/TestingConstants.java b/briar-android/src/main/java/org/briarproject/briar/android/TestingConstants.java index 27f61915e..ea67d50ec 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/TestingConstants.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/TestingConstants.java @@ -40,10 +40,4 @@ public interface TestingConstants { * Feature flag for enabling the sign-in reminder in release builds. */ boolean FEATURE_FLAG_SIGN_IN_REMINDER = IS_DEBUG_BUILD; - - String ACTION_ALARM = "org.briarproject.briar.android.ACTION_ALARM"; - String EXTRA_DUE_MILLIS = "org.briarproject.briar.android.DUE_MILLIS"; - int WAKE_LOCK_DURATION = 5000; - int ALARM_DELAY = 15000; - }