From 4aae062ea784084fed053f07b012ef7f6c4cfa73 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Wed, 30 Apr 2014 13:40:31 +0100 Subject: [PATCH] Created switches for disabling alpha/beta testing code. --- .../briarproject/android/BriarActivity.java | 3 ++- .../briarproject/android/ExpiredActivity.java | 3 ++- .../android/PasswordActivity.java | 3 ++- .../android/SettingsActivity.java | 25 +++++++++++-------- .../briarproject/android/SetupActivity.java | 3 ++- .../android/SplashScreenActivity.java | 7 +++--- .../android/TestingConstants.java | 25 +++++++++++++++++++ 7 files changed, 50 insertions(+), 19 deletions(-) create mode 100644 briar-android/src/org/briarproject/android/TestingConstants.java diff --git a/briar-android/src/org/briarproject/android/BriarActivity.java b/briar-android/src/org/briarproject/android/BriarActivity.java index 6dcf3e1b72..6253089ade 100644 --- a/briar-android/src/org/briarproject/android/BriarActivity.java +++ b/briar-android/src/org/briarproject/android/BriarActivity.java @@ -4,6 +4,7 @@ import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION; import static android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static android.view.inputmethod.InputMethodManager.HIDE_IMPLICIT_ONLY; +import static org.briarproject.android.TestingConstants.PREVENT_SCREENSHOTS; import java.util.concurrent.Executor; import java.util.logging.Logger; @@ -42,7 +43,7 @@ public class BriarActivity extends RoboActivity { @Override public void onCreate(Bundle state) { super.onCreate(state); - getWindow().setFlags(FLAG_SECURE, FLAG_SECURE); + if(PREVENT_SCREENSHOTS) getWindow().addFlags(FLAG_SECURE); if(databaseConfig.getEncryptionKey() != null) startAndBindService(); } diff --git a/briar-android/src/org/briarproject/android/ExpiredActivity.java b/briar-android/src/org/briarproject/android/ExpiredActivity.java index 042d894b27..d61f22646b 100644 --- a/briar-android/src/org/briarproject/android/ExpiredActivity.java +++ b/briar-android/src/org/briarproject/android/ExpiredActivity.java @@ -2,6 +2,7 @@ package org.briarproject.android; import static android.view.Gravity.CENTER; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; +import static org.briarproject.android.TestingConstants.PREVENT_SCREENSHOTS; import static org.briarproject.android.util.CommonLayoutParams.MATCH_MATCH; import org.briarproject.R; @@ -18,7 +19,7 @@ public class ExpiredActivity extends Activity { public void onCreate(Bundle state) { super.onCreate(state); - getWindow().setFlags(FLAG_SECURE, FLAG_SECURE); + if(PREVENT_SCREENSHOTS) getWindow().addFlags(FLAG_SECURE); LinearLayout layout = new LinearLayout(this); layout.setLayoutParams(MATCH_MATCH); diff --git a/briar-android/src/org/briarproject/android/PasswordActivity.java b/briar-android/src/org/briarproject/android/PasswordActivity.java index 68fce1d547..26ac3dee09 100644 --- a/briar-android/src/org/briarproject/android/PasswordActivity.java +++ b/briar-android/src/org/briarproject/android/PasswordActivity.java @@ -9,6 +9,7 @@ import static android.view.View.VISIBLE; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static android.view.inputmethod.InputMethodManager.HIDE_IMPLICIT_ONLY; import static android.widget.LinearLayout.VERTICAL; +import static org.briarproject.android.TestingConstants.PREVENT_SCREENSHOTS; import static org.briarproject.android.util.CommonLayoutParams.MATCH_MATCH; import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP; @@ -56,7 +57,7 @@ public class PasswordActivity extends RoboActivity { public void onCreate(Bundle state) { super.onCreate(state); - getWindow().setFlags(FLAG_SECURE, FLAG_SECURE); + if(PREVENT_SCREENSHOTS) getWindow().addFlags(FLAG_SECURE); SharedPreferences prefs = getSharedPreferences("db", MODE_PRIVATE); String hex = prefs.getString("key", null); diff --git a/briar-android/src/org/briarproject/android/SettingsActivity.java b/briar-android/src/org/briarproject/android/SettingsActivity.java index 68f9594aa2..02aca849d3 100644 --- a/briar-android/src/org/briarproject/android/SettingsActivity.java +++ b/briar-android/src/org/briarproject/android/SettingsActivity.java @@ -7,6 +7,7 @@ import static android.view.View.VISIBLE; import static android.widget.LinearLayout.VERTICAL; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; +import static org.briarproject.android.TestingConstants.SHOW_TESTING_ACTIVITY; import static org.briarproject.android.util.CommonLayoutParams.MATCH_WRAP; import static org.briarproject.android.util.CommonLayoutParams.MATCH_WRAP_1; @@ -168,16 +169,18 @@ OnClickListener { layout.addView(new HorizontalBorder(this)); - LinearLayout footer = new LinearLayout(this); - footer.setLayoutParams(MATCH_WRAP); - footer.setGravity(CENTER); - footer.setBackgroundColor(res.getColor(R.color.button_bar_background)); - testingButton = new ImageButton(this); - testingButton.setBackgroundResource(0); - testingButton.setImageResource(R.drawable.action_about); - testingButton.setOnClickListener(this); - footer.addView(testingButton); - layout.addView(footer); + if(SHOW_TESTING_ACTIVITY) { + LinearLayout footer = new LinearLayout(this); + footer.setLayoutParams(MATCH_WRAP); + footer.setGravity(CENTER); + footer.setBackgroundColor(res.getColor(R.color.button_bar_background)); + testingButton = new ImageButton(this); + testingButton.setBackgroundResource(0); + testingButton.setImageResource(R.drawable.action_about); + testingButton.setOnClickListener(this); + footer.addView(testingButton); + layout.addView(footer); + } setContentView(layout); } @@ -246,7 +249,7 @@ OnClickListener { } public void onClick(View view) { - if(testingButton == null) return; // Not created yet + if(progress == null) return; // Not created yet if(view == testingButton) { startActivity(new Intent(this, TestingActivity.class)); return; diff --git a/briar-android/src/org/briarproject/android/SetupActivity.java b/briar-android/src/org/briarproject/android/SetupActivity.java index 69ab300a00..b4d635cd1c 100644 --- a/briar-android/src/org/briarproject/android/SetupActivity.java +++ b/briar-android/src/org/briarproject/android/SetupActivity.java @@ -12,6 +12,7 @@ import static android.view.View.VISIBLE; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static android.widget.LinearLayout.VERTICAL; import static java.util.logging.Level.INFO; +import static org.briarproject.android.TestingConstants.PREVENT_SCREENSHOTS; import static org.briarproject.android.util.CommonLayoutParams.MATCH_MATCH; import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP; import static org.briarproject.api.AuthorConstants.MAX_AUTHOR_NAME_LENGTH; @@ -75,7 +76,7 @@ public class SetupActivity extends RoboActivity implements OnClickListener { public void onCreate(Bundle state) { super.onCreate(state); - getWindow().setFlags(FLAG_SECURE, FLAG_SECURE); + if(PREVENT_SCREENSHOTS) getWindow().addFlags(FLAG_SECURE); LinearLayout layout = new LinearLayout(this); layout.setLayoutParams(MATCH_MATCH); diff --git a/briar-android/src/org/briarproject/android/SplashScreenActivity.java b/briar-android/src/org/briarproject/android/SplashScreenActivity.java index a71774e40f..72bdabcc11 100644 --- a/briar-android/src/org/briarproject/android/SplashScreenActivity.java +++ b/briar-android/src/org/briarproject/android/SplashScreenActivity.java @@ -3,10 +3,11 @@ package org.briarproject.android; import static android.view.Gravity.CENTER; 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.util.CommonLayoutParams.MATCH_MATCH; import java.io.File; -import java.util.logging.Level; import java.util.logging.Logger; import org.briarproject.R; @@ -31,8 +32,6 @@ public class SplashScreenActivity extends RoboSplashActivity { // This build expires on 10 May 2014 private static final long EXPIRY_DATE = 1399680000 * 1000L; - // Default log level - change this to OFF for release builds - private static final Level DEFAULT_LOG_LEVEL = INFO; private long now = System.currentTimeMillis(); @@ -45,7 +44,7 @@ public class SplashScreenActivity extends RoboSplashActivity { public void onCreate(Bundle state) { super.onCreate(state); - getWindow().setFlags(FLAG_SECURE, FLAG_SECURE); + if(PREVENT_SCREENSHOTS) getWindow().addFlags(FLAG_SECURE); LinearLayout layout = new LinearLayout(this); layout.setLayoutParams(MATCH_MATCH); diff --git a/briar-android/src/org/briarproject/android/TestingConstants.java b/briar-android/src/org/briarproject/android/TestingConstants.java new file mode 100644 index 0000000000..4d053d32c9 --- /dev/null +++ b/briar-android/src/org/briarproject/android/TestingConstants.java @@ -0,0 +1,25 @@ +package org.briarproject.android; + +import static java.util.logging.Level.INFO; + +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. + */ + boolean PREVENT_SCREENSHOTS = false; + + /** + * Whether to allow TestingActivity to be launched from SettingsActivity. + * This should be false for release builds. + */ + boolean SHOW_TESTING_ACTIVITY = true; +} -- GitLab