From 92d26f7867d65fa16779ac9d90624aec73cbaa44 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Wed, 8 Apr 2015 08:50:40 +0100 Subject: [PATCH] Use strict mode to log potential problems with testing builds. --- .../android/SplashScreenActivity.java | 21 +++++++++++++ .../android/TestingConstants.java | 31 ++++++++++--------- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/briar-android/src/org/briarproject/android/SplashScreenActivity.java b/briar-android/src/org/briarproject/android/SplashScreenActivity.java index f66e378c0d..14ef9e0044 100644 --- a/briar-android/src/org/briarproject/android/SplashScreenActivity.java +++ b/briar-android/src/org/briarproject/android/SplashScreenActivity.java @@ -5,6 +5,7 @@ import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static java.util.logging.Level.INFO; import static org.briarproject.android.TestingConstants.DEFAULT_LOG_LEVEL; import static org.briarproject.android.TestingConstants.PREVENT_SCREENSHOTS; +import static org.briarproject.android.TestingConstants.TESTING; import static org.briarproject.android.util.CommonLayoutParams.MATCH_MATCH; import java.io.File; @@ -16,10 +17,15 @@ import org.briarproject.api.db.DatabaseConfig; import roboguice.RoboGuice; import roboguice.activity.RoboSplashActivity; +import android.annotation.SuppressLint; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; +import android.os.Build; import android.os.Bundle; +import android.os.StrictMode; +import android.os.StrictMode.ThreadPolicy; +import android.os.StrictMode.VmPolicy; import android.widget.ImageView; import android.widget.LinearLayout; @@ -37,6 +43,7 @@ public class SplashScreenActivity extends RoboSplashActivity { public SplashScreenActivity() { Logger.getLogger("").setLevel(DEFAULT_LOG_LEVEL); + enableStrictMode(); minDisplayMs = 500; } @@ -84,6 +91,20 @@ public class SplashScreenActivity extends RoboSplashActivity { } } + @SuppressLint("NewApi") + private void enableStrictMode() { + if(TESTING && Build.VERSION.SDK_INT >= 9) { + ThreadPolicy.Builder threadPolicy = new ThreadPolicy.Builder(); + threadPolicy.detectAll(); + threadPolicy.penaltyLog(); + StrictMode.setThreadPolicy(threadPolicy.build()); + VmPolicy.Builder vmPolicy = new VmPolicy.Builder(); + vmPolicy.detectAll(); + vmPolicy.penaltyLog(); + StrictMode.setVmPolicy(vmPolicy.build()); + } + } + private void delete(File f) { if(f.isFile()) f.delete(); else if(f.isDirectory()) for(File child : f.listFiles()) delete(child); diff --git a/briar-android/src/org/briarproject/android/TestingConstants.java b/briar-android/src/org/briarproject/android/TestingConstants.java index e4ad6f8648..aa8dce68f7 100644 --- a/briar-android/src/org/briarproject/android/TestingConstants.java +++ b/briar-android/src/org/briarproject/android/TestingConstants.java @@ -1,31 +1,34 @@ package org.briarproject.android; import static java.util.logging.Level.INFO; +import static java.util.logging.Level.OFF; import java.util.logging.Level; interface TestingConstants { - /** Default log level - this should be OFF for release builds. */ - Level DEFAULT_LOG_LEVEL = INFO; - /** - * Whether to prevent screenshots from being taken. This should be true for - * release builds, to prevent Recent Apps from storing screenshots of - * private information. Unfortunately this also prevents the user from - * taking screenshots intentionally. + * Whether this is an alpha or beta build. This should be set to false for + * release builds. */ - boolean PREVENT_SCREENSHOTS = false; + boolean TESTING = true; + + /** Default log level. */ + Level DEFAULT_LOG_LEVEL = TESTING ? INFO : OFF; /** - * Whether to allow TestingActivity to be launched from SettingsActivity. - * This should be false for release builds. + * Whether to prevent screenshots from being taken. Setting this to true + * prevents Recent Apps from storing screenshots of private information. + * Unfortunately this also prevents the user from taking screenshots + * intentionally. */ - boolean SHOW_TESTING_ACTIVITY = true; + boolean PREVENT_SCREENSHOTS = TESTING ? false : true; /** - * Whether to allow crash reports to be submitted by email. This should - * be false for release builds. + * Whether to allow TestingActivity to be launched from SettingsActivity. */ - boolean SHARE_CRASH_REPORTS = true; + boolean SHOW_TESTING_ACTIVITY = TESTING ? true : false; + + /** Whether to allow crash reports to be submitted by email. */ + boolean SHARE_CRASH_REPORTS = TESTING ? true : false; } -- GitLab