From 90cb9a2fae0178deace7494f6fc6b181549946d5 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 1 Aug 2018 12:23:20 -0300 Subject: [PATCH] Disable screen lock setting instead of hiding it when not available --- .../briar/android/settings/SettingsFragment.java | 15 ++++++++------- briar-android/src/main/res/values/strings.xml | 1 + briar-android/src/main/res/xml/settings.xml | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java index e263d40ed..21c73da14 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java @@ -205,12 +205,7 @@ public class SettingsFragment extends PreferenceFragmentCompat enableBluetooth.setOnPreferenceChangeListener(this); torNetwork.setOnPreferenceChangeListener(this); torBlocked.setOnPreferenceChangeListener(this); - if (getActivity() != null && hasScreenLock(getActivity())) { - screenLock.setVisible(FEATURE_FLAG_PIN_LOCK); - screenLock.setOnPreferenceChangeListener(this); - } else { - screenLock.setVisible(false); - } + screenLock.setOnPreferenceChangeListener(this); if (SDK_INT >= 21) { notifyLockscreen.setVisible(true); notifyLockscreen.setOnPreferenceChangeListener(this); @@ -231,6 +226,7 @@ public class SettingsFragment extends PreferenceFragmentCompat } else { theme.setVisible(FEATURE_FLAG_DARK_THEME); notifySignIn.setVisible(FEATURE_FLAG_SIGN_IN_REMINDER); + screenLock.setVisible(FEATURE_FLAG_PIN_LOCK); findPreference("pref_key_explode").setVisible(false); findPreference("pref_key_test_data").setVisible(false); @@ -428,7 +424,12 @@ public class SettingsFragment extends PreferenceFragmentCompat enableBluetooth.setEnabled(enabled); torNetwork.setEnabled(enabled); torBlocked.setEnabled(enabled); - screenLock.setEnabled(enabled); + if (enabled && getActivity() != null && hasScreenLock(getActivity())) { + screenLock.setEnabled(true); + } else { + screenLock.setEnabled(false); + screenLock.setSummary(getString(R.string.lock_disabled)); + } notifyPrivateMessages.setEnabled(enabled); notifyGroupMessages.setEnabled(enabled); notifyForumPosts.setEnabled(enabled); diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index a4d6a7a49..5b2f13a03 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -452,5 +452,6 @@ Unlock Briar Briar is locked Tap to unlock + Only available on Android 5 or newer and when a system screen lock is set diff --git a/briar-android/src/main/res/xml/settings.xml b/briar-android/src/main/res/xml/settings.xml index bc5a2a3f7..e9eb2733a 100644 --- a/briar-android/src/main/res/xml/settings.xml +++ b/briar-android/src/main/res/xml/settings.xml @@ -61,7 +61,7 @@ android:persistent="false" android:summary="@string/pref_lock_summary" android:title="@string/pref_lock_title" - android:visibility="gone"/> + android:enabled="false"/>