diff --git a/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/AndroidTorPlugin.java b/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/AndroidTorPlugin.java index 12093ae89..14114cdfc 100644 --- a/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/AndroidTorPlugin.java +++ b/bramble-android/src/main/java/org/briarproject/bramble/plugin/tor/AndroidTorPlugin.java @@ -32,9 +32,6 @@ import static java.util.concurrent.TimeUnit.MINUTES; @ParametersNotNullByDefault class AndroidTorPlugin extends TorPlugin { - // This tag may prevent Huawei's power manager from killing us - private static final String WAKE_LOCK_TAG = "LocationManagerService"; - private final Context appContext; private final RenewableWakeLock wakeLock; @@ -55,7 +52,7 @@ class AndroidTorPlugin extends TorPlugin { appContext.getSystemService(POWER_SERVICE); if (pm == null) throw new AssertionError(); wakeLock = new RenewableWakeLock(pm, scheduler, PARTIAL_WAKE_LOCK, - WAKE_LOCK_TAG, 1, MINUTES); + getWakeLockTag(), 1, MINUTES); } @Override @@ -87,4 +84,17 @@ class AndroidTorPlugin extends TorPlugin { super.stop(); wakeLock.release(); } + + private String getWakeLockTag() { + PackageManager pm = appContext.getPackageManager(); + for (PackageInfo info : pm.getInstalledPackages(0)) { + String name = info.packageName.toLowerCase(); + if (name.startsWith("com.huawei.powergenie")) { + return "LocationManagerService"; + } else if (name.startsWith("com.evenwell.powermonitor")) { + return "AudioIn"; + } + } + return getClass().getSimpleName(); + } }