From f01cab57c72b83d0c3c5183fa994467239140bd9 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Fri, 2 Oct 2015 13:40:49 -0700 Subject: [PATCH] Screen security if enabled. Fixes #4187 // FREEBIE --- src/org/thoughtcrime/redphone/RedPhone.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/org/thoughtcrime/redphone/RedPhone.java b/src/org/thoughtcrime/redphone/RedPhone.java index dd0e0557f0..229a9458da 100644 --- a/src/org/thoughtcrime/redphone/RedPhone.java +++ b/src/org/thoughtcrime/redphone/RedPhone.java @@ -30,12 +30,12 @@ import android.content.IntentFilter; import android.content.ServiceConnection; import android.content.res.Configuration; import android.media.AudioManager; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; import android.os.Message; import android.util.Log; -import android.view.KeyEvent; import android.view.Window; import android.view.WindowManager; @@ -47,6 +47,7 @@ import org.thoughtcrime.redphone.ui.CallScreen; import org.thoughtcrime.redphone.util.AudioUtils; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.recipients.Recipient; +import org.thoughtcrime.securesms.util.TextSecurePreferences; /** * The main UI class for RedPhone. Most of the heavy lifting is @@ -116,6 +117,7 @@ public class RedPhone extends Activity { public void onResume() { super.onResume(); + initializeScreenshotSecurity(); initializeServiceBinding(); registerBluetoothReceiver(); } @@ -140,6 +142,16 @@ public class RedPhone extends Activity { bindService(bindIntent, serviceConnection, Context.BIND_AUTO_CREATE); } + private void initializeScreenshotSecurity() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH && + TextSecurePreferences.isScreenSecurityEnabled(this)) + { + getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); + } else { + getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE); + } + } + private void initializeResources() { callScreen = (CallScreen)findViewById(R.id.callScreen); state = STATE_IDLE;