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;
|
package com.keepassdroid.settings;
|
||||||
|
|
||||||
|
import android.content.DialogInterface;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v14.preference.SwitchPreference;
|
import android.support.v14.preference.SwitchPreference;
|
||||||
import android.support.v4.app.DialogFragment;
|
import android.support.v4.app.DialogFragment;
|
||||||
import android.support.v4.hardware.fingerprint.FingerprintManagerCompat;
|
import android.support.v4.hardware.fingerprint.FingerprintManagerCompat;
|
||||||
|
import android.support.v7.app.AlertDialog;
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
import android.support.v7.preference.PreferenceFragmentCompat;
|
import android.support.v7.preference.PreferenceFragmentCompat;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -118,36 +120,37 @@ public class NestedSettingsFragment extends PreferenceFragmentCompat {
|
|||||||
return false;
|
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;
|
break;
|
||||||
|
|
||||||
case NESTED_SCREEN_DB_KEY:
|
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
|
@Override
|
||||||
public void onDisplayPreferenceDialog(Preference preference) {
|
public void onDisplayPreferenceDialog(Preference preference) {
|
||||||
// Try if the preference is one of our custom Preferences
|
// Try if the preference is one of our custom Preferences
|
||||||
|
|||||||
@@ -226,6 +226,9 @@
|
|||||||
<string name="fingerprint">Empreinte digitale</string>
|
<string name="fingerprint">Empreinte digitale</string>
|
||||||
<string name="fingerprint_enable_title">Écoute d\'empreintes digitales</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_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_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_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>
|
<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="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="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_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="maskpass_default" translatable="false">true</bool>
|
||||||
<bool name="keyfile_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">Fingerprint</string>
|
||||||
<string name="fingerprint_enable_title">Fingerprint listening</string>
|
<string name="fingerprint_enable_title">Fingerprint listening</string>
|
||||||
<string name="fingerprint_enable_summary">Enable database opening by fingerprint</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_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_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>
|
<string name="unavailable_feature_hardware">The hardware is not detected.</string>
|
||||||
|
|||||||
@@ -118,6 +118,10 @@
|
|||||||
android:title="@string/fingerprint_enable_title"
|
android:title="@string/fingerprint_enable_title"
|
||||||
android:summary="@string/fingerprint_enable_summary"
|
android:summary="@string/fingerprint_enable_summary"
|
||||||
android:defaultValue="@bool/fingerprint_enable_default"/>
|
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>
|
</android.support.v7.preference.PreferenceCategory>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user