mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
New settings to delete fingerprints
This commit is contained in:
@@ -19,12 +19,14 @@
|
||||
*/
|
||||
package com.keepassdroid.settings;
|
||||
|
||||
import android.content.DialogInterface;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.v14.preference.SwitchPreference;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v4.hardware.fingerprint.FingerprintManagerCompat;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceFragmentCompat;
|
||||
import android.util.Log;
|
||||
@@ -118,36 +120,37 @@ public class NestedSettingsFragment extends PreferenceFragmentCompat {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
fingerprintEnablePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
Boolean value = (Boolean) newValue;
|
||||
if (!value) {
|
||||
FingerPrintHelper fingerPrintHelper = new FingerPrintHelper(
|
||||
getContext(), new FingerPrintHelper.FingerPrintCallback() {
|
||||
@Override
|
||||
public void handleEncryptedResult(String value, String ivSpec) {}
|
||||
|
||||
@Override
|
||||
public void handleDecryptedResult(String value) {}
|
||||
|
||||
@Override
|
||||
public void onInvalidKeyException() {}
|
||||
|
||||
@Override
|
||||
public void onFingerPrintException(Exception e) {
|
||||
Toast.makeText(getContext(), R.string.fingerprint_error, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
fingerPrintHelper.deleteEntryKey();
|
||||
PrefsUtil.deleteAllValuesFromNoBackupPreferences(getContext());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Preference deleteKeysFingerprints = findPreference(getString(R.string.fingerprint_delete_all_key));
|
||||
deleteKeysFingerprints.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
new AlertDialog.Builder(getContext())
|
||||
.setMessage(getResources().getString(R.string.fingerprint_delete_all_warning))
|
||||
.setIcon(getResources().getDrawable(
|
||||
android.R.drawable.ic_dialog_alert))
|
||||
.setPositiveButton(
|
||||
getResources().getString(android.R.string.yes),
|
||||
new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog,
|
||||
int which) {
|
||||
deleteAllKeysForFingerprints();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(
|
||||
getResources().getString(android.R.string.no),
|
||||
new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog,
|
||||
int which) {
|
||||
}
|
||||
}).show();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
break;
|
||||
|
||||
case NESTED_SCREEN_DB_KEY:
|
||||
@@ -182,6 +185,30 @@ public class NestedSettingsFragment extends PreferenceFragmentCompat {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete all entries of NoBackup preference and remove entry key in keystore
|
||||
*/
|
||||
private void deleteAllKeysForFingerprints() {
|
||||
FingerPrintHelper fingerPrintHelper = new FingerPrintHelper(
|
||||
getContext(), new FingerPrintHelper.FingerPrintCallback() {
|
||||
@Override
|
||||
public void handleEncryptedResult(String value, String ivSpec) {}
|
||||
|
||||
@Override
|
||||
public void handleDecryptedResult(String value) {}
|
||||
|
||||
@Override
|
||||
public void onInvalidKeyException() {}
|
||||
|
||||
@Override
|
||||
public void onFingerPrintException(Exception e) {
|
||||
Toast.makeText(getContext(), R.string.fingerprint_error, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
fingerPrintHelper.deleteEntryKey();
|
||||
PrefsUtil.deleteAllValuesFromNoBackupPreferences(getContext());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisplayPreferenceDialog(Preference preference) {
|
||||
// Try if the preference is one of our custom Preferences
|
||||
|
||||
@@ -226,6 +226,9 @@
|
||||
<string name="fingerprint">Empreinte digitale</string>
|
||||
<string name="fingerprint_enable_title">Écoute d\'empreintes digitales</string>
|
||||
<string name="fingerprint_enable_summary">Activer l\'ouverture de la base de données par empreinte digitale</string>
|
||||
<string name="fingerprint_delete_all_title">Supprimer les clés de chiffrement</string>
|
||||
<string name="fingerprint_delete_all_summary">Supprimer toutes les clés de chiffrement liées à la reconnaissance des empreintes digitales</string>
|
||||
<string name="fingerprint_delete_all_warning">Êtes-vous sûr de vouloir supprimer toutes les clés liées aux empreintes digitales?</string>
|
||||
<string name="unavailable_feature_text">Impossible de démarrer cette fonctionnalité.</string>
|
||||
<string name="unavailable_feature_version">Votre version Android %1$d n\'est pas la version minimale %2$d requise.</string>
|
||||
<string name="unavailable_feature_hardware">Le matériel n\'est pas détecté.</string>
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
<string name="clipboard_notifications_key" translatable="false">clipboard_notifications_key</string>
|
||||
<string name="lock_database_screen_off_key" translatable="false">lock_database_screen_off_key</string>
|
||||
<string name="fingerprint_enable_key" translatable="true">fingerprint_enable_key</string>
|
||||
<string name="fingerprint_delete_all_key" translatable="true">fingerprint_delete_all_key</string>
|
||||
|
||||
<bool name="maskpass_default" translatable="false">true</bool>
|
||||
<bool name="keyfile_default" translatable="false">true</bool>
|
||||
|
||||
@@ -227,6 +227,9 @@
|
||||
<string name="fingerprint">Fingerprint</string>
|
||||
<string name="fingerprint_enable_title">Fingerprint listening</string>
|
||||
<string name="fingerprint_enable_summary">Enable database opening by fingerprint</string>
|
||||
<string name="fingerprint_delete_all_title">Delete encryption keys</string>
|
||||
<string name="fingerprint_delete_all_summary">Delete all encryption keys related to fingerprint recognition</string>
|
||||
<string name="fingerprint_delete_all_warning">Are you sure you want to delete all the keys related to fingerprints?</string>
|
||||
<string name="unavailable_feature_text">Can not start this feature.</string>
|
||||
<string name="unavailable_feature_version">Your Android version %1$d is not the minimum version %2$d required.</string>
|
||||
<string name="unavailable_feature_hardware">The hardware is not detected.</string>
|
||||
|
||||
@@ -118,6 +118,10 @@
|
||||
android:title="@string/fingerprint_enable_title"
|
||||
android:summary="@string/fingerprint_enable_summary"
|
||||
android:defaultValue="@bool/fingerprint_enable_default"/>
|
||||
<android.support.v7.preference.Preference
|
||||
android:key="@string/fingerprint_delete_all_key"
|
||||
android:title="@string/fingerprint_delete_all_title"
|
||||
android:summary="@string/fingerprint_delete_all_summary" />
|
||||
|
||||
</android.support.v7.preference.PreferenceCategory>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user