diff --git a/briar-android/src/org/briarproject/android/SplashScreenActivity.java b/briar-android/src/org/briarproject/android/SplashScreenActivity.java index f66e378c0df61bcf84bbf56a17ee5e9d85021a68..14ef9e004418e97bc439e48f3da6c00a535fb0bf 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 e4ad6f8648f3fb3c2cb00f59f220e3b71b05e146..aa8dce68f7387ca2723907058590c18aee18873a 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; }