From 9cffff715a556de843a13c6d993590798513b0bf Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Fri, 24 Mar 2017 16:19:09 -0300 Subject: [PATCH] Require a panic app to be set before executing any panic actions --- .../panic/PanicPreferencesFragment.java | 6 +++ .../android/panic/PanicResponderActivity.java | 11 ++--- .../src/main/res/xml/panic_preferences.xml | 48 +++++++++---------- 3 files changed, 31 insertions(+), 34 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java index b08e48d174..8fba2187cf 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java @@ -103,12 +103,14 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat showPanicApp(packageName); if (packageName.equals(Panic.PACKAGE_NAME_NONE)) { + lockPref.setEnabled(false); purgePref.setChecked(false); purgePref.setEnabled(false); uninstallPref.setChecked(false); uninstallPref.setEnabled(false); getActivity().setResult(Activity.RESULT_CANCELED); } else { + lockPref.setEnabled(true); purgePref.setEnabled(true); uninstallPref.setEnabled(true); } @@ -185,6 +187,8 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat panicAppPref.setIcon( android.R.drawable.ic_menu_close_clear_cancel); + // disable panic actions + lockPref.setEnabled(false); purgePref.setEnabled(false); uninstallPref.setEnabled(false); } else { @@ -196,6 +200,8 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat panicAppPref.setIcon( pm.getApplicationIcon(triggerPackageName)); + // enable panic actions + lockPref.setEnabled(true); purgePref.setEnabled(true); uninstallPref.setEnabled(true); } catch (PackageManager.NameNotFoundException e) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java index f79030e7fa..73d3f01804 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicResponderActivity.java @@ -60,7 +60,7 @@ public class PanicResponderActivity extends BriarActivity { LOG.info("Panic Trigger came from connected app."); LOG.info("Performing destructive responses..."); - // Performing destructive panic responses + // Performing panic responses if (sharedPref.getBoolean(KEY_UNINSTALL, false)) { LOG.info("Purging all data..."); deleteAllData(); @@ -73,16 +73,11 @@ public class PanicResponderActivity extends BriarActivity { } else if (sharedPref.getBoolean(KEY_PURGE, false)) { LOG.info("Purging all data..."); deleteAllData(); - } else if (sharedPref.getBoolean(KEY_LOCK, true)) { + } else if (sharedPref.getBoolean(KEY_LOCK, false)) { LOG.info("Signing out..."); signOut(true); } } - // Performing non-destructive default panic response - else if (sharedPref.getBoolean(KEY_LOCK, true)) { - LOG.info("Signing out..."); - signOut(true); - } } } // received intent from non-trusted app @@ -121,4 +116,4 @@ public class PanicResponderActivity extends BriarActivity { } }); } -} \ No newline at end of file +} diff --git a/briar-android/src/main/res/xml/panic_preferences.xml b/briar-android/src/main/res/xml/panic_preferences.xml index 306f53ac2a..c9597b9272 100644 --- a/briar-android/src/main/res/xml/panic_preferences.xml +++ b/briar-android/src/main/res/xml/panic_preferences.xml @@ -2,35 +2,31 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> + <ListPreference + android:icon="@android:drawable/ic_menu_close_clear_cancel" + android:key="pref_key_panic_app" + android:summary="@string/panic_app_setting_summary" + android:title="@string/panic_app_setting_title"/> + <CheckBoxPreference + android:defaultValue="true" + android:enabled="false" android:key="pref_key_lock" - android:title="@string/lock_setting_title" android:summary="@string/lock_setting_summary" - android:defaultValue="true"/> - - <PreferenceCategory - android:title="Destructive Actions"> - - <ListPreference - android:key="pref_key_panic_app" - android:title="@string/panic_app_setting_title" - android:summary="@string/panic_app_setting_summary" - android:icon="@android:drawable/ic_menu_close_clear_cancel"/> + android:title="@string/lock_setting_title"/> - <CheckBoxPreference - android:key="pref_key_purge" - android:title="@string/purge_setting_title" - android:summary="@string/purge_setting_summary" - android:enabled="false" - android:defaultValue="false"/> - - <CheckBoxPreference - android:key="pref_key_uninstall" - android:title="@string/uninstall_setting_title" - android:summary="@string/uninstall_setting_summary" - android:enabled="false" - android:defaultValue="false"/> + <CheckBoxPreference + android:defaultValue="false" + android:enabled="false" + android:key="pref_key_purge" + android:summary="@string/purge_setting_summary" + android:title="@string/purge_setting_title"/> - </PreferenceCategory> + <CheckBoxPreference + android:defaultValue="false" + android:enabled="false" + android:key="pref_key_uninstall" + android:summary="@string/uninstall_setting_summary" + android:title="@string/uninstall_setting_title"/> -</PreferenceScreen> \ No newline at end of file +</PreferenceScreen> -- GitLab