From 33bdc81b3e10d6c19e7ba3efb9869c249d019347 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Wed, 5 May 2021 12:37:23 +0100 Subject: [PATCH] Show instructions for locking Briar to the Xiaomi recent apps list. --- .../bramble/util/AndroidUtils.java | 16 ++++ briar-android/src/main/AndroidManifest.xml | 3 +- .../briar/android/account/DozeFragment.java | 6 +- .../briar/android/account/DozeHelperImpl.java | 3 +- .../briar/android/account/SetupActivity.java | 16 ++++ .../briar/android/account/XiaomiView.java | 74 +++++++++++++++++++ .../main/res/layout/fragment_setup_doze.xml | 11 ++- briar-android/src/main/res/values/strings.xml | 5 ++ 8 files changed, 129 insertions(+), 5 deletions(-) create mode 100644 briar-android/src/main/java/org/briarproject/briar/android/account/XiaomiView.java diff --git a/bramble-android/src/main/java/org/briarproject/bramble/util/AndroidUtils.java b/bramble-android/src/main/java/org/briarproject/bramble/util/AndroidUtils.java index 5fe56cd5c..bde4b9a23 100644 --- a/bramble-android/src/main/java/org/briarproject/bramble/util/AndroidUtils.java +++ b/bramble-android/src/main/java/org/briarproject/bramble/util/AndroidUtils.java @@ -10,17 +10,20 @@ import org.briarproject.bramble.api.Pair; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import java.io.File; +import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Scanner; import javax.annotation.Nullable; import static android.content.Context.MODE_PRIVATE; import static android.os.Build.VERSION.SDK_INT; +import static java.lang.Runtime.getRuntime; import static java.util.Arrays.asList; import static org.briarproject.bramble.api.nullsafety.NullSafety.requireNonNull; @@ -118,4 +121,17 @@ public class AndroidUtils { public static String[] getSupportedImageContentTypes() { return new String[] {"image/jpeg", "image/png", "image/gif"}; } + + @Nullable + public static String getSystemProperty(String propName) { + try { + Process p = getRuntime().exec("getprop " + propName); + Scanner s = new Scanner(p.getInputStream()); + String line = s.nextLine(); + s.close(); + return line; + } catch (SecurityException | IOException e) { + return null; + } + } } diff --git a/briar-android/src/main/AndroidManifest.xml b/briar-android/src/main/AndroidManifest.xml index feeec1655..1eac6796d 100644 --- a/briar-android/src/main/AndroidManifest.xml +++ b/briar-android/src/main/AndroidManifest.xml @@ -104,8 +104,7 @@ + android:label="@string/setup_title" /> = 10; + } catch (NumberFormatException e) { + return false; + } + } +} diff --git a/briar-android/src/main/res/layout/fragment_setup_doze.xml b/briar-android/src/main/res/layout/fragment_setup_doze.xml index 8571fde69..e32cf10b0 100644 --- a/briar-android/src/main/res/layout/fragment_setup_doze.xml +++ b/briar-android/src/main/res/layout/fragment_setup_doze.xml @@ -38,6 +38,15 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/huaweiProtectedAppsView" /> + +