Skip to content
Snippets Groups Projects
Verified Commit 9cffff71 authored by Torsten Grote's avatar Torsten Grote
Browse files

Require a panic app to be set before executing any panic actions

parent 804e912e
No related branches found
No related tags found
No related merge requests found
...@@ -103,12 +103,14 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat ...@@ -103,12 +103,14 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat
showPanicApp(packageName); showPanicApp(packageName);
if (packageName.equals(Panic.PACKAGE_NAME_NONE)) { if (packageName.equals(Panic.PACKAGE_NAME_NONE)) {
lockPref.setEnabled(false);
purgePref.setChecked(false); purgePref.setChecked(false);
purgePref.setEnabled(false); purgePref.setEnabled(false);
uninstallPref.setChecked(false); uninstallPref.setChecked(false);
uninstallPref.setEnabled(false); uninstallPref.setEnabled(false);
getActivity().setResult(Activity.RESULT_CANCELED); getActivity().setResult(Activity.RESULT_CANCELED);
} else { } else {
lockPref.setEnabled(true);
purgePref.setEnabled(true); purgePref.setEnabled(true);
uninstallPref.setEnabled(true); uninstallPref.setEnabled(true);
} }
...@@ -185,6 +187,8 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat ...@@ -185,6 +187,8 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat
panicAppPref.setIcon( panicAppPref.setIcon(
android.R.drawable.ic_menu_close_clear_cancel); android.R.drawable.ic_menu_close_clear_cancel);
// disable panic actions
lockPref.setEnabled(false);
purgePref.setEnabled(false); purgePref.setEnabled(false);
uninstallPref.setEnabled(false); uninstallPref.setEnabled(false);
} else { } else {
...@@ -196,6 +200,8 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat ...@@ -196,6 +200,8 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat
panicAppPref.setIcon( panicAppPref.setIcon(
pm.getApplicationIcon(triggerPackageName)); pm.getApplicationIcon(triggerPackageName));
// enable panic actions
lockPref.setEnabled(true);
purgePref.setEnabled(true); purgePref.setEnabled(true);
uninstallPref.setEnabled(true); uninstallPref.setEnabled(true);
} catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) {
......
...@@ -60,7 +60,7 @@ public class PanicResponderActivity extends BriarActivity { ...@@ -60,7 +60,7 @@ public class PanicResponderActivity extends BriarActivity {
LOG.info("Panic Trigger came from connected app."); LOG.info("Panic Trigger came from connected app.");
LOG.info("Performing destructive responses..."); LOG.info("Performing destructive responses...");
// Performing destructive panic responses // Performing panic responses
if (sharedPref.getBoolean(KEY_UNINSTALL, false)) { if (sharedPref.getBoolean(KEY_UNINSTALL, false)) {
LOG.info("Purging all data..."); LOG.info("Purging all data...");
deleteAllData(); deleteAllData();
...@@ -73,16 +73,11 @@ public class PanicResponderActivity extends BriarActivity { ...@@ -73,16 +73,11 @@ public class PanicResponderActivity extends BriarActivity {
} else if (sharedPref.getBoolean(KEY_PURGE, false)) { } else if (sharedPref.getBoolean(KEY_PURGE, false)) {
LOG.info("Purging all data..."); LOG.info("Purging all data...");
deleteAllData(); deleteAllData();
} else if (sharedPref.getBoolean(KEY_LOCK, true)) { } else if (sharedPref.getBoolean(KEY_LOCK, false)) {
LOG.info("Signing out..."); LOG.info("Signing out...");
signOut(true); 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 // received intent from non-trusted app
...@@ -121,4 +116,4 @@ public class PanicResponderActivity extends BriarActivity { ...@@ -121,4 +116,4 @@ public class PanicResponderActivity extends BriarActivity {
} }
}); });
} }
} }
\ No newline at end of file
...@@ -2,35 +2,31 @@ ...@@ -2,35 +2,31 @@
<PreferenceScreen <PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"> 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 <CheckBoxPreference
android:defaultValue="true"
android:enabled="false"
android:key="pref_key_lock" android:key="pref_key_lock"
android:title="@string/lock_setting_title"
android:summary="@string/lock_setting_summary" android:summary="@string/lock_setting_summary"
android:defaultValue="true"/> android:title="@string/lock_setting_title"/>
<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"/>
<CheckBoxPreference <CheckBoxPreference
android:key="pref_key_purge" android:defaultValue="false"
android:title="@string/purge_setting_title" android:enabled="false"
android:summary="@string/purge_setting_summary" android:key="pref_key_purge"
android:enabled="false" android:summary="@string/purge_setting_summary"
android:defaultValue="false"/> android:title="@string/purge_setting_title"/>
<CheckBoxPreference
android:key="pref_key_uninstall"
android:title="@string/uninstall_setting_title"
android:summary="@string/uninstall_setting_summary"
android:enabled="false"
android:defaultValue="false"/>
</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> </PreferenceScreen>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment