diff options
Diffstat (limited to 'app/src')
-rw-r--r-- | app/src/main/AndroidManifest.xml | 3 | ||||
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/UserPreference.kt | 37 | ||||
-rw-r--r-- | app/src/main/res/values-ar/strings.xml | 2 | ||||
-rw-r--r-- | app/src/main/res/values-cs/strings.xml | 3 | ||||
-rw-r--r-- | app/src/main/res/values-de/strings.xml | 3 | ||||
-rw-r--r-- | app/src/main/res/values-es/strings.xml | 3 | ||||
-rw-r--r-- | app/src/main/res/values-fr/strings.xml | 3 | ||||
-rw-r--r-- | app/src/main/res/values-ja/strings.xml | 3 | ||||
-rw-r--r-- | app/src/main/res/values-ru/strings.xml | 3 | ||||
-rw-r--r-- | app/src/main/res/values-zh-rCN/strings.xml | 3 | ||||
-rw-r--r-- | app/src/main/res/values-zh-rTW/strings.xml | 3 | ||||
-rw-r--r-- | app/src/main/res/values/arrays.xml | 6 | ||||
-rw-r--r-- | app/src/main/res/values/strings.xml | 40 | ||||
-rw-r--r-- | app/src/main/res/xml/preference.xml | 251 |
14 files changed, 183 insertions, 180 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 75f0752a..8e05d5b8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,7 +43,8 @@ <activity android:name=".UserPreference" - android:parentActivityName=".PasswordStore" /> + android:parentActivityName=".PasswordStore" + android:label="@string/action_settings" /> <service android:name=".autofill.AutofillService" android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"> diff --git a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt index 2a8f584d..8667110a 100644 --- a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt +++ b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt @@ -60,7 +60,7 @@ class UserPreference : AppCompatActivity() { class PrefsFragment : PreferenceFragmentCompat() { private var autofillDependencies = listOf<Preference?>() - private var autoFillEnablePreference: CheckBoxPreference? = null + private var autoFillEnablePreference: SwitchPreferenceCompat? = null private lateinit var callingActivity: UserPreference override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { @@ -87,6 +87,7 @@ class UserPreference : AppCompatActivity() { val keyPreference = findPreference<Preference>("openpgp_key_id_pref") // General preferences + val showTimePreference = findPreference<Preference>("general_show_time") val clearAfterCopyPreference = findPreference<CheckBoxPreference>("clear_after_copy") val clearClipboard20xPreference = findPreference<CheckBoxPreference>("clear_clipboard_20x") @@ -115,7 +116,7 @@ class UserPreference : AppCompatActivity() { clearAfterCopyPreference?.isVisible = sharedPreferences.getString("general_show_time", "45")?.toInt() != 0 clearClipboard20xPreference?.isVisible = sharedPreferences.getString("general_show_time", "45")?.toInt() != 0 val selectedKeys = (sharedPreferences.getStringSet("openpgp_key_ids_set", null) - ?: HashSet<String>()).toTypedArray() + ?: HashSet()).toTypedArray() keyPreference?.summary = if (selectedKeys.isEmpty()) { this.resources.getString(R.string.pref_no_key_selected) } else { @@ -270,17 +271,20 @@ class UserPreference : AppCompatActivity() { } } - findPreference<Preference>("general_show_time")?.onPreferenceChangeListener = - ChangeListener { _, newValue: Any? -> - try { - val isEnabled = newValue.toString().toInt() != 0 - clearAfterCopyPreference?.isVisible = isEnabled - clearClipboard20xPreference?.isVisible = isEnabled - true - } catch (e: NumberFormatException) { - false - } - } + showTimePreference?.onPreferenceChangeListener = ChangeListener { _, newValue: Any? -> + try { + val isEnabled = newValue.toString().toInt() != 0 + clearAfterCopyPreference?.isVisible = isEnabled + clearClipboard20xPreference?.isVisible = isEnabled + true + } catch (e: NumberFormatException) { + false + } + } + + showTimePreference?.summaryProvider = Preference.SummaryProvider<Preference> { + getString(R.string.pref_show_time_summary, sharedPreferences.getString("general_show_time", "45")) + } findPreference<SwitchPreferenceCompat>("biometric_auth")?.apply { val isFingerprintSupported = BiometricManager.from(requireContext()).canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS @@ -290,6 +294,7 @@ class UserPreference : AppCompatActivity() { summary = getString(R.string.biometric_auth_summary_error) } else { setOnPreferenceClickListener { + isEnabled = false val editor = sharedPreferences.edit() val checked = isChecked Authenticator(requireActivity()) { result -> @@ -297,12 +302,14 @@ class UserPreference : AppCompatActivity() { is AuthenticationResult.Success -> { // Apply the changes editor.putBoolean("biometric_auth", checked) + isEnabled = true } else -> { // If any error occurs, revert back to the previous state. This // catch-all clause includes the cancellation case. editor.putBoolean("biometric_auth", !checked) isChecked = !checked + isEnabled = true } } }.authenticate() @@ -541,7 +548,7 @@ class UserPreference : AppCompatActivity() { // TODO: This is fragile. Workaround until PasswordItem is backed by DocumentFile val docId = DocumentsContract.getTreeDocumentId(uri) val split = docId.split(":".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray() - val path = if (split.size > 0) split[1] else split[0] + val path = if (split.isNotEmpty()) split[1] else split[0] val repoPath = "${Environment.getExternalStorageDirectory()}/$path" Timber.tag(TAG).d("Selected repository path is $repoPath") @@ -689,7 +696,7 @@ class UserPreference : AppCompatActivity() { @JvmStatic private fun setCustomDictSummary(customDictPref: Preference?, uri: Uri) { val fileName = uri.path?.substring(uri.path?.lastIndexOf(":")!! + 1) - customDictPref?.summary = "Selected dictionary: " + fileName + customDictPref?.summary = "Selected dictionary: $fileName" } } } diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 3ac92731..c23ff0e0 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -80,7 +80,7 @@ <string name="pref_crypto_title">التشفير</string> <string name="pref_provider_title">إختيار مزود الأوبن بي جي بي OpenPGP</string> <string name="pref_general_title">الإعدادات العامة</string> - <string name="pref_password_title">مدة الإبقاء على كلمة السر ظاهرة</string> + <string name="pref_show_time_title">مدة الإبقاء على كلمة السر ظاهرة</string> <string name="pref_copy_title">نسخ كلمة السر تلقائيًا</string> <string name="ssh_key_success_dialog_title">تم استيراد مفتاح الـ SSH</string> <string name="ssh_key_error_dialog_title">حدث هناك خطأ أثناء عملية إسترجاع مفتاح الـ SSH</string> diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 40b9e316..c1830df5 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -79,8 +79,7 @@ <string name="pref_provider_title">Vybrat poskytovatele OpenPGP</string> <string name="pref_key_title">Vybrat ID OpenPGP klíče</string> <string name="pref_general_title">Všeobecné</string> - <string name="pref_password_title">Čas zobrazení hesla</string> - <string name="pref_password_dialog_title">Nastavení času po který bude heslo uloženo ve schránce</string> + <string name="pref_show_time_title">Čas zobrazení hesla</string> <string name="pref_copy_title">Automaticky kopírovat heslo</string> <string name="pref_copy_dialog_title">Automatické kopírování hesla do schránky po úspěšném dešifrování.</string> <string name="ssh_key_success_dialog_title">SSH-key importován</string> diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 99358f5a..1c4b3cde 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -96,8 +96,7 @@ <string name="pref_provider_title">Wähle OpenPGP-Provider</string> <string name="pref_key_title">Wähle OpenPGP-Key ID</string> <string name="pref_general_title">Allgemein</string> - <string name="pref_password_title">Ablaufzeit des Passworts</string> - <string name="pref_password_dialog_title">Nach dieser Anzahl der Sekunden wird das Passwort aus der Zwischenablage gelöscht.</string> + <string name="pref_show_time_title">Ablaufzeit des Passworts</string> <string name="pref_copy_title">Kopiere Passwort automatisch</string> <string name="pref_copy_dialog_title">Kopiert das Passwort in die Zwischenablage, wenn der Eintrag entschlüsselt wurde.</string> <string name="ssh_key_success_dialog_title">SSH-Key importiert</string> diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 84d1f7b9..faaf046e 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -122,8 +122,7 @@ <string name="pref_key_title">Selecciona la llave OpenPGP</string> <string name="pref_no_key_selected">Ninguna llave seleccionada</string> <string name="pref_general_title">General</string> - <string name="pref_password_title">Tiempo para mostrar contraseña</string> - <string name="pref_password_dialog_title">Establece el tiempo antes de limpiar la contraseña del portapapeles. Un valor de cero deshabilita el limpiado.</string> + <string name="pref_show_time_title">Tiempo para mostrar contraseña</string> <string name="pref_copy_title">Copiar contraseña automáticamente</string> <string name="pref_copy_dialog_title">Automáticamente copia la contraseña al portapapeles si el descifrado fue exitoso.</string> <string name="ssh_key_success_dialog_title">Llave SSH importada</string> diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index a45a90a8..93f21000 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -81,8 +81,7 @@ <string name="pref_provider_title">Sélection du prestataire OpenPGP</string> <string name="pref_key_title">Sélection de votre identifiant OpenPGP</string> <string name="pref_general_title">Général</string> - <string name="pref_password_title">Durée de disponibilité du mot de passe</string> - <string name="pref_password_dialog_title">Choisissez la durée pendant laquelle le mot de passe sera disponnible dans le presse-papier</string> + <string name="pref_show_time_title">Durée de disponibilité du mot de passe</string> <string name="pref_copy_title">Copie automatique du mot de passe</string> <string name="pref_copy_dialog_title">Copie automatiquement le mot de passe vers le presse-papier si le déchiffrement a réussi.</string> <string name="ssh_key_success_dialog_title">Clef SSH importée</string> diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 43db9352..ae7ea9ab 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -82,8 +82,7 @@ <string name="pref_provider_title">OpenPGP プロバイダーを選択</string> <string name="pref_key_title">OpenPGP 鍵 ID を選択</string> <string name="pref_general_title">全般</string> - <string name="pref_password_title">パスワード表示時間</string> - <string name="pref_password_dialog_title">パスワードをクリップボードに入れておく時間を設定</string> + <string name="pref_show_time_title">パスワード表示時間</string> <string name="pref_copy_title">自動的にパスワードをコピー</string> <string name="pref_copy_dialog_title">復号化が成功した後、自動的にパスワードをクリップボードにコピーします。</string> <string name="ssh_key_success_dialog_title">SSH 鍵をインポートしました</string> diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index b21824a6..e34cb292 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -100,8 +100,7 @@ <string name="pref_provider_title">Выберите провайдера OpenPGP</string> <string name="pref_key_title">Выберите ключ OpenPGP</string> <string name="pref_general_title">Общие</string> - <string name="pref_password_title">Время в буфере</string> - <string name="pref_password_dialog_title">Время нахождения пароля в буфере обмена</string> + <string name="pref_show_time_title">Время в буфере</string> <string name="pref_copy_title">Автоматически копировать пароль</string> <string name="pref_copy_dialog_title">Автоматически копировать пароль в буфер обмена после успешного расшифрования</string> <string name="ssh_key_success_dialog_title">SSH ключ импортирован</string> diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 1201fd31..61deada0 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -65,8 +65,7 @@ <string name="pref_git_delete_repo_summary">删除本地的 (隐藏) Repo</string> <string name="pref_git_title">Git</string> <string name="pref_key_title">选择 OpenPGP Key Id</string> - <string name="pref_password_dialog_title">选择密码在剪贴板中保存的时间限制</string> - <string name="pref_password_title">密码保存时限</string> + <string name="pref_show_time_title">密码保存时限</string> <string name="pref_provider_title">选择 OpenPGP 应用</string> <string name="pref_recursive_filter">搜索子文件夹</string> <string name="pref_recursive_filter_hint">在当前目录的子目录中查找密码</string> diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index f8c01e48..22da24d2 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -63,8 +63,7 @@ <string name="pref_git_delete_repo_summary">刪除本機的 (隱藏) Repo</string> <string name="pref_git_title">Git</string> <string name="pref_key_title">選擇 OpenPGP Key Id</string> - <string name="pref_password_dialog_title">選擇密碼在剪貼簿中保存的時間限制</string> - <string name="pref_password_title">密碼保存時限</string> + <string name="pref_show_time_title">密碼保存時限</string> <string name="pref_provider_title">選擇 OpenPGP app</string> <string name="pref_recursive_filter">搜尋子資料夾</string> <string name="pref_recursive_filter_hint">在目前目錄的子目錄中查詢密碼</string> diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 6b757fd6..522fe6cc 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -43,7 +43,11 @@ <item>9</item> <item>10</item> </string-array> - <string-array name="pwgen_provider"> + <string-array name="pwgen_provider_labels"> + <item>Classic</item> + <item>XKPasswd</item> + </string-array> + <string-array name="pwgen_provider_values"> <item>classic</item> <item>xkpasswd</item> </string-array> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cbc88eaf..288b93f2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,11 +10,11 @@ <string name="dialog_delete">Delete directory</string> <string name="dialog_do_not_delete">Cancel</string> <string name="title_activity_git_clone">Repository information</string> - <string name="title_activity_git_config" translatable="false">Git Configurations</string> + <string name="title_activity_git_config" translatable="false">Git configuration</string> <!-- Password Store --> - <string name="creation_dialog_text">Please clone or create a new repository below before trying to add a password or any synchronization operation.</string> - <string name="key_dialog_text">You have to select your "PGP-Key ID" before initializing the repository</string> + <string name="creation_dialog_text">Please clone or create a new repository below before trying to add a password or running any synchronization operation.</string> + <string name="key_dialog_text">You have to select your PGP key ID before initializing the repository</string> <string name="delete_dialog_text">Are you sure you want to delete the password %1$s?</string> <string name="move">Move</string> <string name="edit">Edit</string> @@ -29,15 +29,14 @@ <string name="password_exists_message">This will overwrite %1$s with %2$s.</string> <!-- git commits --> - <string name="git_commit_add_text">Add password for %1$s using android password store.</string> - <string name="git_commit_edit_text">"Edit %1$s using android password store."</string> - <string name="git_commit_folder_text">"Folder %1$s created using android password store."</string> - <string name="git_commit_remove_text">"Remove %1$s from store."</string> - <string name="git_commit_move_text">"Rename %1$s to %2$s."</string> - <string name="git_commit_increment_text">"Increment HOTP counter for %1$s."</string> + <string name="git_commit_add_text">Add generated password for %1$s using android password store.</string> + <string name="git_commit_edit_text">Edit password for %1$s using android password store.</string> + <string name="git_commit_remove_text">Remove %1$s from store.</string> + <string name="git_commit_move_text">Rename %1$s to %2$s.</string> + <string name="git_commit_increment_text">Increment HOTP counter for %1$s.</string> <!-- PGPHandler --> - <string name="provider_toast_text">No OpenPGP Provider selected!</string> + <string name="provider_toast_text">No OpenPGP provider selected!</string> <string name="clipboard_password_toast_text">Password copied to clipboard, you have %d seconds to paste it somewhere.</string> <string name="clipboard_password_no_clear_toast_text">Password copied to clipboard</string> <string name="clipboard_username_toast_text">Username copied to clipboard</string> @@ -134,13 +133,13 @@ <string name="pref_git_delete_repo">Delete repository</string> <string name="pref_dialog_delete_title">Clear repository</string> <string name="pref_crypto_title">Crypto</string> - <string name="pref_provider_title">Select OpenPGP Provider</string> - <string name="pref_key_title">Select OpenPGP Key id</string> + <string name="pref_provider_title">Select OpenPGP provider</string> + <string name="pref_key_title">Select OpenPGP key ID</string> <string name="pref_no_key_selected">No key selected</string> <string name="pref_general_title">General</string> - <string name="pref_password_title">Password Show Time</string> - <string name="pref_password_dialog_title">Set the time (in seconds) you want the password to be in clipboard. 0 means forever.</string> - <string name="pref_copy_title">Automatically copy Password</string> + <string name="pref_show_time_title">Password show time</string> + <string name="pref_show_time_summary">Set the time (in seconds) you want the password to be in clipboard. 0 means forever. Current value: %1$s</string> + <string name="pref_copy_title">Automatically copy password</string> <string name="pref_copy_dialog_title">Automatically copy the password to the clipboard after decryption was successful.</string> <string name="ssh_key_success_dialog_title">SSH-key imported</string> <string name="ssh_key_error_dialog_title">Error while trying to import the ssh-key</string> @@ -148,9 +147,9 @@ <string name="pref_recursive_filter">Recursive filtering</string> <string name="pref_recursive_filter_hint">Recursively find passwords of the current directory.</string> <string name="pref_sort_order_title">Password sort order</string> - <string name="pref_folder_first_sort_order">Folders First</string> - <string name="pref_file_first_sort_order">Files First</string> - <string name="pref_type_independent_sort_order">Type Independent</string> + <string name="pref_folder_first_sort_order">Folders first</string> + <string name="pref_file_first_sort_order">Files first</string> + <string name="pref_type_independent_sort_order">Type independent</string> <string name="pref_autofill_title">Autofill</string> <string name="pref_autofill_enable_title">Enable autofill</string> <string name="pref_autofill_enable_msg">Tap OK to go to Accessibility settings. There, tap Password Store under Services then tap the switch in the top right to turn it on or off.</string> @@ -160,7 +159,7 @@ <string name="pref_autofill_default_title">Automatically match by default</string> <string name="pref_autofill_default_hint">Default to \'Automatically match\' for apps without custom settings. Otherwise, \'Never match.\'</string> <string name="pref_autofill_always_title">Always show dialog</string> - <string name="pref_autofill_full_path_title">Show Full Path</string> + <string name="pref_autofill_full_path_title">Show full path</string> <string name="pref_autofill_full_path_hint">Show full path of matching password files</string> <string name="pref_misc_title">Misc</string> <string name="pref_clear_clipboard_title">Clear clipboard 20 times</string> @@ -172,7 +171,7 @@ <string name="prefs_use_default_file_picker">Use default file picker</string> <string name="prefs_clear_after_copy_title">Automatically clear the clipboard after copy</string> <string name="prefs_clear_after_copy_summary">After an automatic copy or a manual copy of the password, the clipboard will be automatically cleared.</string> - <string name="prefs_export_passwords_title">Export Passwords</string> + <string name="prefs_export_passwords_title">Export passwords</string> <string name="prefs_export_passwords_summary">Exports the encrypted passwords to an external directory</string> <string name="prefs_version">Version</string> @@ -208,7 +207,6 @@ <string name="xkpwgen_pref_custom_dict_picker_title">Custom worldlist file</string> <string name="xkpwgen_pref_custom_dict_picker_summary">Tap to pick a custom wordlist file containing one word per line</string> - <!-- ssh keygen fragment --> <string name="ssh_keygen_length">Length</string> <string name="ssh_keygen_passphrase">Passphrase</string> diff --git a/app/src/main/res/xml/preference.xml b/app/src/main/res/xml/preference.xml index 3d91cbfa..1fb8d325 100644 --- a/app/src/main/res/xml/preference.xml +++ b/app/src/main/res/xml/preference.xml @@ -1,179 +1,180 @@ <?xml version="1.0" encoding="utf-8"?> <androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> - <androidx.preference.PreferenceCategory android:title="@string/pref_git_title"> + <androidx.preference.PreferenceCategory app:title="@string/pref_git_title"> <androidx.preference.Preference - android:key="git_server_info" - android:title="@string/pref_edit_server_info" /> + app:key="git_server_info" + app:title="@string/pref_edit_server_info" /> <androidx.preference.Preference - android:key="git_config" - android:title="@string/pref_edit_git_config" /> + app:key="git_config" + app:title="@string/pref_edit_git_config" /> <androidx.preference.Preference - android:key="ssh_key" - android:title="@string/pref_ssh_title" /> + app:key="ssh_key" + app:title="@string/pref_ssh_title" /> <androidx.preference.Preference - android:key="ssh_keygen" - android:title="@string/pref_ssh_keygen_title" /> + app:key="ssh_keygen" + app:title="@string/pref_ssh_keygen_title" /> <androidx.preference.Preference - android:key="ssh_key_clear_passphrase" - android:title="@string/ssh_key_clear_passphrase" /> + app:key="ssh_key_clear_passphrase" + app:title="@string/ssh_key_clear_passphrase" /> <androidx.preference.Preference - android:key="hotp_remember_clear_choice" - android:title="@string/hotp_remember_clear_choice" /> + app:key="hotp_remember_clear_choice" + app:title="@string/hotp_remember_clear_choice" /> <androidx.preference.Preference - android:key="ssh_openkeystore_clear_keyid" - android:title="@string/ssh_openkeystore_clear_keyid" /> + app:key="ssh_openkeystore_clear_keyid" + app:title="@string/ssh_openkeystore_clear_keyid" /> <androidx.preference.Preference - android:key="ssh_see_key" - android:title="@string/pref_ssh_see_key_title" /> + app:key="ssh_see_key" + app:title="@string/pref_ssh_see_key_title" /> <androidx.preference.Preference - android:key="git_delete_repo" - android:summary="@string/pref_git_delete_repo_summary" - android:title="@string/pref_git_delete_repo" /> + app:key="git_delete_repo" + app:summary="@string/pref_git_delete_repo_summary" + app:title="@string/pref_git_delete_repo" /> <CheckBoxPreference - android:key="git_external" - android:summary="@string/pref_external_repository_summary" - android:title="@string/pref_external_repository" /> + app:key="git_external" + app:summary="@string/pref_external_repository_summary" + app:title="@string/pref_external_repository" /> <androidx.preference.Preference - android:dependency="git_external" - android:key="pref_select_external" - android:title="@string/pref_select_external_repository" /> + app:dependency="git_external" + app:key="pref_select_external" + app:title="@string/pref_select_external_repository" /> </androidx.preference.PreferenceCategory> - <androidx.preference.PreferenceCategory android:title="@string/pref_crypto_title"> + <androidx.preference.PreferenceCategory app:title="@string/pref_crypto_title"> <me.msfjarvis.openpgpktx.preference.OpenPgpAppPreference - android:key="openpgp_provider_list" - android:title="@string/pref_provider_title" /> + app:key="openpgp_provider_list" + app:title="@string/pref_provider_title" /> <androidx.preference.Preference - android:key="openpgp_key_id_pref" - android:title="@string/pref_key_title" /> + app:key="openpgp_key_id_pref" + app:title="@string/pref_key_title" /> </androidx.preference.PreferenceCategory> - <androidx.preference.PreferenceCategory android:title="@string/password_generator_category_title"> + <androidx.preference.PreferenceCategory app:title="@string/password_generator_category_title"> <androidx.preference.ListPreference - android:key="pref_key_pwgen_type" - android:title="@string/xkpwgen_pref_gentype_title" - android:defaultValue="classic" - android:entries="@array/pwgen_provider" - android:entryValues="@array/pwgen_provider" + app:key="pref_key_pwgen_type" + app:title="@string/xkpwgen_pref_gentype_title" + app:defaultValue="classic" + app:entries="@array/pwgen_provider_labels" + app:entryValues="@array/pwgen_provider_values" app:useSimpleSummaryProvider="true" - android:persistent="true" /> + app:persistent="true" /> <androidx.preference.CheckBoxPreference - android:key="pref_key_is_custom_dict" - android:title="@string/xkpwgen_pref_custom_dict_title" - android:summaryOn="@string/xkpwgen_pref_custom_dict_summary_on" - android:summaryOff="@string/xkpwgen_pref_custom_dict_summary_off"/> + app:key="pref_key_is_custom_dict" + app:title="@string/xkpwgen_pref_custom_dict_title" + app:summaryOn="@string/xkpwgen_pref_custom_dict_summary_on" + app:summaryOff="@string/xkpwgen_pref_custom_dict_summary_off"/> <androidx.preference.Preference - android:key="pref_key_custom_dict" - android:title="@string/xkpwgen_pref_custom_dict_picker_title" - android:summary="@string/xkpwgen_pref_custom_dict_picker_summary" - android:dependency="pref_key_is_custom_dict"/> + app:key="pref_key_custom_dict" + app:title="@string/xkpwgen_pref_custom_dict_picker_title" + app:summary="@string/xkpwgen_pref_custom_dict_picker_summary" + app:dependency="pref_key_is_custom_dict"/> </androidx.preference.PreferenceCategory> - <androidx.preference.PreferenceCategory android:title="@string/pref_general_title"> + <androidx.preference.PreferenceCategory app:title="@string/pref_general_title"> <androidx.preference.EditTextPreference - android:defaultValue="45" - android:dialogTitle="@string/pref_password_dialog_title" + app:defaultValue="45" + app:dialogTitle="@string/pref_show_time_summary" android:inputType="number" - android:key="general_show_time" - android:summary="@string/pref_password_dialog_title" - android:title="@string/pref_password_title" /> + app:key="general_show_time" + app:summary="@string/pref_show_time_summary" + app:title="@string/pref_show_time_title" /> <androidx.preference.CheckBoxPreference - android:defaultValue="true" - android:title="@string/show_password_pref_title" - android:summary="@string/show_password_pref_summary" - android:key="show_password" /> + app:defaultValue="true" + app:title="@string/show_password_pref_title" + app:summary="@string/show_password_pref_summary" + app:key="show_password" /> <androidx.preference.CheckBoxPreference - android:defaultValue="true" - android:title="@string/show_extra_content_pref_title" - android:summary="@string/show_extra_content_pref_summary" - android:key="show_extra_content" /> + app:defaultValue="true" + app:title="@string/show_extra_content_pref_title" + app:summary="@string/show_extra_content_pref_summary" + app:key="show_extra_content" /> <androidx.preference.CheckBoxPreference - android:defaultValue="true" - android:dialogTitle="@string/pref_copy_dialog_title" - android:key="copy_on_decrypt" - android:summary="@string/pref_copy_dialog_title" - android:title="@string/pref_copy_title" /> + app:defaultValue="true" + app:dialogTitle="@string/pref_copy_dialog_title" + app:key="copy_on_decrypt" + app:summary="@string/pref_copy_dialog_title" + app:title="@string/pref_copy_title" /> <androidx.preference.CheckBoxPreference - android:defaultValue="true" - android:key="clear_after_copy" - android:summary="@string/prefs_clear_after_copy_summary" - android:title="@string/prefs_clear_after_copy_title" /> + app:defaultValue="true" + app:key="clear_after_copy" + app:summary="@string/prefs_clear_after_copy_summary" + app:title="@string/prefs_clear_after_copy_title" /> <androidx.preference.CheckBoxPreference - android:defaultValue="true" - android:key="filter_recursively" - android:summary="@string/pref_recursive_filter_hint" - android:title="@string/pref_recursive_filter" /> + app:defaultValue="true" + app:key="filter_recursively" + app:summary="@string/pref_recursive_filter_hint" + app:title="@string/pref_recursive_filter" /> <androidx.preference.CheckBoxPreference - android:defaultValue="false" - android:key="search_on_start" - android:summary="@string/pref_search_on_start_hint" - android:title="@string/pref_search_on_start" /> + app:defaultValue="false" + app:key="search_on_start" + app:summary="@string/pref_search_on_start_hint" + app:title="@string/pref_search_on_start" /> <androidx.preference.CheckBoxPreference - android:defaultValue="false" - android:key="search_from_root" - android:summary="@string/pref_search_from_root_hint" - android:title="@string/pref_search_from_root" /> + app:defaultValue="false" + app:key="search_from_root" + app:summary="@string/pref_search_from_root_hint" + app:title="@string/pref_search_from_root" /> <androidx.preference.ListPreference - android:title="@string/pref_sort_order_title" - android:defaultValue="FOLDER_FIRST" - android:key="sort_order" - android:entries="@array/sort_order_entries" - android:entryValues="@array/sort_order_values" - android:persistent="true" /> - <androidx.preference.SwitchPreferenceCompat - android:title="@string/pref_show_hidden_title" - android:summary="@string/pref_show_hidden_summary" - android:key="show_hidden_folders" - android:defaultValue="false" - android:persistent="true" /> + app:title="@string/pref_sort_order_title" + app:defaultValue="FOLDER_FIRST" + app:key="sort_order" + app:entries="@array/sort_order_entries" + app:entryValues="@array/sort_order_values" + app:persistent="true" + app:summary="%s" /> + <androidx.preference.CheckBoxPreference + app:title="@string/pref_show_hidden_title" + app:summary="@string/pref_show_hidden_summary" + app:key="show_hidden_folders" + app:defaultValue="false" + app:persistent="true" /> <androidx.preference.SwitchPreferenceCompat - android:key="biometric_auth" - android:title="@string/biometric_auth_title" - android:summary="@string/biometric_auth_summary" /> + app:key="biometric_auth" + app:title="@string/biometric_auth_title" + app:summary="@string/biometric_auth_summary" /> </androidx.preference.PreferenceCategory> - <androidx.preference.PreferenceCategory android:title="@string/pref_autofill_title"> - <androidx.preference.CheckBoxPreference - android:defaultValue="true" - android:key="autofill_enable" - android:title="@string/pref_autofill_enable_title"/> + <androidx.preference.PreferenceCategory app:title="@string/pref_autofill_title"> + <androidx.preference.SwitchPreferenceCompat + app:defaultValue="true" + app:key="autofill_enable" + app:title="@string/pref_autofill_enable_title"/> <androidx.preference.Preference - android:key="autofill_apps" - android:title="@string/pref_autofill_apps_title"/> + app:key="autofill_apps" + app:title="@string/pref_autofill_apps_title"/> <androidx.preference.CheckBoxPreference - android:defaultValue="true" - android:key="autofill_default" - android:summary="@string/pref_autofill_default_hint" - android:title="@string/pref_autofill_default_title"/> + app:defaultValue="true" + app:key="autofill_default" + app:summary="@string/pref_autofill_default_hint" + app:title="@string/pref_autofill_default_title"/> <androidx.preference.CheckBoxPreference - android:defaultValue="false" - android:key="autofill_always" - android:title="@string/pref_autofill_always_title"/> + app:defaultValue="false" + app:key="autofill_always" + app:title="@string/pref_autofill_always_title"/> <androidx.preference.CheckBoxPreference - android:defaultValue="false" - android:key="autofill_full_path" - android:summary="@string/pref_autofill_full_path_hint" - android:title="@string/pref_autofill_full_path_title"/> + app:defaultValue="false" + app:key="autofill_full_path" + app:summary="@string/pref_autofill_full_path_hint" + app:title="@string/pref_autofill_full_path_title"/> </androidx.preference.PreferenceCategory> - <androidx.preference.PreferenceCategory android:title="@string/pref_misc_title"> + <androidx.preference.PreferenceCategory app:title="@string/pref_misc_title"> <androidx.preference.Preference - android:key="export_passwords" - android:title="@string/prefs_export_passwords_title" - android:summary="@string/prefs_export_passwords_summary"/> + app:key="export_passwords" + app:title="@string/prefs_export_passwords_title" + app:summary="@string/prefs_export_passwords_summary"/> <androidx.preference.CheckBoxPreference - android:defaultValue="false" - android:key="clear_clipboard_20x" - android:summary="@string/pref_clear_clipboard_hint" - android:title="@string/pref_clear_clipboard_title" /> + app:defaultValue="false" + app:key="clear_clipboard_20x" + app:summary="@string/pref_clear_clipboard_hint" + app:title="@string/pref_clear_clipboard_title" /> </androidx.preference.PreferenceCategory> <androidx.preference.PreferenceCategory> <androidx.preference.Preference - android:icon="@mipmap/ic_launcher_round" - android:key="app_version" - android:title="@string/prefs_version" /> + app:icon="@mipmap/ic_launcher_round" + app:key="app_version" + app:title="@string/prefs_version" /> </androidx.preference.PreferenceCategory> </androidx.preference.PreferenceScreen> |