Implement screen security, combine with password in app protection category
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
package i2p.bote.android;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import i2p.bote.android.util.LocaleManager;
|
||||
|
||||
@@ -18,6 +22,14 @@ public class BoteActivityBase extends AppCompatActivity {
|
||||
// Initialize I2P settings
|
||||
InitActivities init = new InitActivities(this);
|
||||
init.initialize();
|
||||
|
||||
// Initialize screen security
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH &&
|
||||
prefs.getBoolean("pref_screen_security", true))
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
|
||||
else
|
||||
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package i2p.bote.android.config;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.preference.Preference;
|
||||
import android.support.v4.preference.PreferenceFragment;
|
||||
|
||||
import i2p.bote.android.R;
|
||||
|
||||
public class AppProtectionPreferenceFragment extends PreferenceFragment {
|
||||
@Override
|
||||
public void onCreate(Bundle paramBundle) {
|
||||
super.onCreate(paramBundle);
|
||||
addPreferencesFromResource(R.xml.settings_app_protection);
|
||||
setupAppProtectionSettings();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
//noinspection ConstantConditions
|
||||
((SettingsActivity) getActivity()).getSupportActionBar().setTitle(R.string.settings_label_app_protection);
|
||||
|
||||
// Screen security only works from API 14
|
||||
Preference screenSecurityPreference = findPreference("pref_screen_security");
|
||||
if (screenSecurityPreference != null &&
|
||||
Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
|
||||
getPreferenceScreen().removePreference(screenSecurityPreference);
|
||||
}
|
||||
|
||||
private void setupAppProtectionSettings() {
|
||||
findPreference("pref_change_password").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
startActivity(new Intent(getActivity(), SetPasswordActivity.class));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -20,9 +20,9 @@ public class SettingsActivity extends BoteActivityBase implements
|
||||
SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
public static final String PREFERENCE_CATEGORY = "preference_category";
|
||||
public static final String PREFERENCE_CATEGORY_GENERAL = "preference_category_general";
|
||||
public static final String PREFERENCE_CATEGORY_CHANGE_PASSWORD = "preference_category_change_password";
|
||||
public static final String PREFERENCE_CATEGORY_IDENTITIES = "preference_category_identities";
|
||||
public static final String PREFERENCE_CATEGORY_PRIVACY = "preference_category_privacy";
|
||||
public static final String PREFERENCE_CATEGORY_APP_PROTECTION = "preference_category_app_protection";
|
||||
public static final String PREFERENCE_CATEGORY_APPEARANCE = "preference_category_appearance";
|
||||
public static final String PREFERENCE_CATEGORY_ADVANCED = "preference_category_advanced";
|
||||
|
||||
@@ -90,12 +90,12 @@ public class SettingsActivity extends BoteActivityBase implements
|
||||
|
||||
findPreference(PREFERENCE_CATEGORY_GENERAL)
|
||||
.setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_GENERAL));
|
||||
findPreference(PREFERENCE_CATEGORY_CHANGE_PASSWORD)
|
||||
.setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_CHANGE_PASSWORD));
|
||||
findPreference(PREFERENCE_CATEGORY_IDENTITIES)
|
||||
.setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_IDENTITIES));
|
||||
findPreference(PREFERENCE_CATEGORY_PRIVACY)
|
||||
.setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_PRIVACY));
|
||||
findPreference(PREFERENCE_CATEGORY_APP_PROTECTION)
|
||||
.setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_APP_PROTECTION));
|
||||
findPreference(PREFERENCE_CATEGORY_APPEARANCE)
|
||||
.setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_APPEARANCE));
|
||||
findPreference(PREFERENCE_CATEGORY_ADVANCED)
|
||||
@@ -119,11 +119,6 @@ public class SettingsActivity extends BoteActivityBase implements
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
switch (category) {
|
||||
case PREFERENCE_CATEGORY_CHANGE_PASSWORD:
|
||||
Intent spi = new Intent(getActivity(), SetPasswordActivity.class);
|
||||
startActivity(spi);
|
||||
break;
|
||||
|
||||
case PREFERENCE_CATEGORY_IDENTITIES:
|
||||
Intent ili = new Intent(getActivity(), IdentityListActivity.class);
|
||||
startActivity(ili);
|
||||
@@ -148,6 +143,8 @@ public class SettingsActivity extends BoteActivityBase implements
|
||||
return new GeneralPreferenceFragment();
|
||||
case PREFERENCE_CATEGORY_PRIVACY:
|
||||
return new PrivacyPreferenceFragment();
|
||||
case PREFERENCE_CATEGORY_APP_PROTECTION:
|
||||
return new AppProtectionPreferenceFragment();
|
||||
case PREFERENCE_CATEGORY_APPEARANCE:
|
||||
return new AppearancePreferenceFragment();
|
||||
case PREFERENCE_CATEGORY_ADVANCED:
|
||||
|
||||
@@ -204,6 +204,9 @@
|
||||
<string name="pref_summ_minDelay">%s minutes</string>
|
||||
<string name="pref_title_maxDelay">Maximum delay per hop</string>
|
||||
<string name="pref_summ_maxDelay">%s minutes</string>
|
||||
<string name="settings_label_app_protection">App protection</string>
|
||||
<string name="screen_security">Screen security</string>
|
||||
<string name="screen_security_summ">Block screenshots in the recents list and inside the app</string>
|
||||
<string name="settings_label_appearance">Appearance</string>
|
||||
<string name="settings_label_language">Language</string>
|
||||
<string name="settings_default">Default</string>
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
<Preference
|
||||
android:key="preference_category_general"
|
||||
android:title="@string/pref_title_general"/>
|
||||
<Preference
|
||||
android:key="preference_category_change_password"
|
||||
android:title="@string/pref_title_change_password"/>
|
||||
<Preference
|
||||
android:key="preference_category_identities"
|
||||
android:title="@string/pref_title_identities"/>
|
||||
<Preference
|
||||
android:key="preference_category_privacy"
|
||||
android:title="@string/pref_title_privacy" />
|
||||
<Preference
|
||||
android:key="preference_category_app_protection"
|
||||
android:title="@string/settings_label_app_protection"/>
|
||||
<Preference
|
||||
android:key="preference_category_appearance"
|
||||
android:title="@string/settings_label_appearance" />
|
||||
|
||||
14
app/src/main/res/xml/settings_app_protection.xml
Normal file
14
app/src/main/res/xml/settings_app_protection.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<Preference
|
||||
android:key="pref_change_password"
|
||||
android:title="@string/pref_title_change_password"/>
|
||||
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="true"
|
||||
android:key="pref_screen_security"
|
||||
android:summary="@string/screen_security_summ"
|
||||
android:title="@string/screen_security"/>
|
||||
|
||||
</PreferenceScreen>
|
||||
Reference in New Issue
Block a user