From 639a5e8e768d4c23f8daa7063977e73c1b4c6ad8 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Mon, 7 Apr 2014 20:33:53 +0100 Subject: [PATCH] Prevent screenshots (including the Recents menu). Thanks to the team that audited CryptoCat for this idea. :-) --- briar-android/src/org/briarproject/android/BriarActivity.java | 2 ++ .../src/org/briarproject/android/ExpiredActivity.java | 3 +++ .../src/org/briarproject/android/PasswordActivity.java | 3 +++ briar-android/src/org/briarproject/android/SetupActivity.java | 3 +++ .../src/org/briarproject/android/SplashScreenActivity.java | 3 +++ 5 files changed, 14 insertions(+) diff --git a/briar-android/src/org/briarproject/android/BriarActivity.java b/briar-android/src/org/briarproject/android/BriarActivity.java index 1d3e30b45a..6dcf3e1b72 100644 --- a/briar-android/src/org/briarproject/android/BriarActivity.java +++ b/briar-android/src/org/briarproject/android/BriarActivity.java @@ -2,6 +2,7 @@ package org.briarproject.android; 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 java.util.concurrent.Executor; @@ -41,6 +42,7 @@ public class BriarActivity extends RoboActivity { @Override public void onCreate(Bundle state) { super.onCreate(state); + getWindow().setFlags(FLAG_SECURE, 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 453775393d..042d894b27 100644 --- a/briar-android/src/org/briarproject/android/ExpiredActivity.java +++ b/briar-android/src/org/briarproject/android/ExpiredActivity.java @@ -1,6 +1,7 @@ package org.briarproject.android; import static android.view.Gravity.CENTER; +import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static org.briarproject.android.util.CommonLayoutParams.MATCH_MATCH; import org.briarproject.R; @@ -17,6 +18,8 @@ public class ExpiredActivity extends Activity { public void onCreate(Bundle state) { super.onCreate(state); + getWindow().setFlags(FLAG_SECURE, FLAG_SECURE); + LinearLayout layout = new LinearLayout(this); layout.setLayoutParams(MATCH_MATCH); layout.setGravity(CENTER); diff --git a/briar-android/src/org/briarproject/android/PasswordActivity.java b/briar-android/src/org/briarproject/android/PasswordActivity.java index 2ae108330b..68fce1d547 100644 --- a/briar-android/src/org/briarproject/android/PasswordActivity.java +++ b/briar-android/src/org/briarproject/android/PasswordActivity.java @@ -6,6 +6,7 @@ import static android.view.Gravity.CENTER; import static android.view.Gravity.CENTER_HORIZONTAL; import static android.view.View.GONE; 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.util.CommonLayoutParams.MATCH_MATCH; @@ -55,6 +56,8 @@ public class PasswordActivity extends RoboActivity { public void onCreate(Bundle state) { super.onCreate(state); + getWindow().setFlags(FLAG_SECURE, FLAG_SECURE); + SharedPreferences prefs = getSharedPreferences("db", MODE_PRIVATE); String hex = prefs.getString("key", null); if(hex == null || !databaseConfig.databaseExists()) { diff --git a/briar-android/src/org/briarproject/android/SetupActivity.java b/briar-android/src/org/briarproject/android/SetupActivity.java index 02d9b0183f..69ab300a00 100644 --- a/briar-android/src/org/briarproject/android/SetupActivity.java +++ b/briar-android/src/org/briarproject/android/SetupActivity.java @@ -9,6 +9,7 @@ import static android.view.Gravity.CENTER_HORIZONTAL; import static android.view.View.GONE; import static android.view.View.INVISIBLE; 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.util.CommonLayoutParams.MATCH_MATCH; @@ -74,6 +75,8 @@ public class SetupActivity extends RoboActivity implements OnClickListener { public void onCreate(Bundle state) { super.onCreate(state); + getWindow().setFlags(FLAG_SECURE, FLAG_SECURE); + LinearLayout layout = new LinearLayout(this); layout.setLayoutParams(MATCH_MATCH); layout.setOrientation(VERTICAL); diff --git a/briar-android/src/org/briarproject/android/SplashScreenActivity.java b/briar-android/src/org/briarproject/android/SplashScreenActivity.java index 16039e96ad..fb5eeda3b5 100644 --- a/briar-android/src/org/briarproject/android/SplashScreenActivity.java +++ b/briar-android/src/org/briarproject/android/SplashScreenActivity.java @@ -1,6 +1,7 @@ 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.util.CommonLayoutParams.MATCH_MATCH; @@ -44,6 +45,8 @@ public class SplashScreenActivity extends RoboSplashActivity { public void onCreate(Bundle state) { super.onCreate(state); + getWindow().setFlags(FLAG_SECURE, FLAG_SECURE); + LinearLayout layout = new LinearLayout(this); layout.setLayoutParams(MATCH_MATCH); layout.setGravity(CENTER); -- GitLab