Browse Source

Closes #25 settings for enabling / disabling fingerprint tool
Closes #1

isundil 7 years ago
parent
commit
5a0c0b32ad

+ 8 - 0
app/src/main/java/info/knacki/pass/settings/SettingsManager.java

@@ -270,4 +270,12 @@ public class SettingsManager {
     public static boolean HasGPGKey(Context ctx) {
         return GetPrefManager(ctx).contains("GPGKeyFile");
     }
+
+    public static boolean IsFingerprintEnabled(Context ctx) {
+        return GetPrefManager(ctx).getBoolean("FingerprintEnabled", false);
+    }
+
+    public static void SetFingerprintEnabled(Context ctx, boolean value) {
+        GetPrefManager(ctx).edit().putBoolean("FingerprintEnabled", value).commit();
+    }
 }

+ 7 - 0
app/src/main/java/info/knacki/pass/settings/ui/SettingsActivity.java

@@ -172,6 +172,13 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
                 SettingsManager.SetDefaultEncryptionType(getActivity(), SettingsManager.EncryptionType.FromInt(value));
                 return true;
             });
+
+            SwitchPreference fingerPref = (SwitchPreference) findPreference(getString(R.string.pref_enctype_fingerprint));
+            fingerPref.setChecked(SettingsManager.IsFingerprintEnabled(getActivity()));
+            fingerPref.setOnPreferenceChangeListener((preference, o) -> {
+                SettingsManager.SetFingerprintEnabled(getActivity(), (Boolean) o);
+                return true;
+            });
         }
 
         @Override

+ 1 - 1
app/src/main/java/info/knacki/pass/ui/passwordPicker/PasswordPicker.java

@@ -34,7 +34,7 @@ class PasswordPicker implements FileInterfaceFactory.PasswordGetter {
                 if (!onPassword.onResponse(null))
                     WrongPassword();
             })
-                .setTitle(GetTitle())
+            .setTitle(GetTitle())
             .show();
     }
 

+ 3 - 2
app/src/main/java/info/knacki/pass/ui/passwordPicker/PasswordPickerFactory.java

@@ -6,6 +6,7 @@ import android.os.Build;
 import android.view.View;
 
 import info.knacki.pass.io.FileInterfaceFactory;
+import info.knacki.pass.settings.SettingsManager;
 import info.knacki.pass.ui.alertPrompt.AlertPromptGenerator;
 import info.knacki.pass.ui.alertPrompt.ServiceAlertPromptGenerator;
 
@@ -13,7 +14,7 @@ public class PasswordPickerFactory {
     public static FileInterfaceFactory.PasswordGetter GetPasswordPicker(Context ctx) {
         final AlertPromptGenerator generator = new AlertPromptGenerator();
 
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) // FIXME config !
+        if (SettingsManager.IsFingerprintEnabled(ctx) && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
             return new FingerprintPicker(ctx, generator);
         return new PasswordPicker(ctx, generator);
     }
@@ -21,7 +22,7 @@ public class PasswordPickerFactory {
     public static FileInterfaceFactory.PasswordGetter GetPasswordPicker(Service ctx, View v) {
         final AlertPromptGenerator generator = new ServiceAlertPromptGenerator(v);
 
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) // FIXME config !
+        if (SettingsManager.IsFingerprintEnabled(ctx) && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
             return new FingerprintPicker(ctx, generator);
         return new PasswordPicker(ctx, generator);
     }

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -10,6 +10,7 @@
     </string-array>
     <string name="id_softSettings">id_softSettings</string>
     <string name="id_enctype">id_enctype</string>
+    <string name="pref_enctype_fingerprint">pref_enctype_fingerprint</string>
     <string name="id_vcs_enable">id_vcs_enable</string>
     <string name="id_vcs_list">id_vcs_list</string>
     <string name="id_vcs_git_url">id_vcs_git_url</string>

+ 4 - 0
app/src/main/res/xml/pref_encryption.xml

@@ -15,4 +15,8 @@
         android:fragment="info.knacki.pass.settings.ui.SettingsActivity$GPGPreferenceFragment"
         android:icon="@drawable/ic_info_black_24dp"
         android:title="@string/pref_header_GPG" />
+    <SwitchPreference
+        android:key="@string/pref_enctype_fingerprint"
+        android:title="@string/pushfinger"
+        android:icon="@drawable/ic_fingerprint" />
 </PreferenceScreen>