mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Merge branch 'release/3.3.1'
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
KeePassDX(3.3.1)
|
||||
* Fix Japanese keyboard in search #1248
|
||||
* Better OOM management #256
|
||||
* Fix filters #1249
|
||||
* Fix temp advanced unlocking #1245
|
||||
* Best autofill recognition #1250
|
||||
* Workaround to fill OTP token in multiple fields with Magikeyboard (long press) #1158
|
||||
|
||||
KeePassDX(3.3.0)
|
||||
* Quick search and dynamic filters #163 #462 #521
|
||||
* Keep search context #1141
|
||||
|
||||
@@ -12,8 +12,8 @@ android {
|
||||
applicationId "com.kunzisoft.keepass"
|
||||
minSdkVersion 15
|
||||
targetSdkVersion 31
|
||||
versionCode = 102
|
||||
versionName = "3.3.0"
|
||||
versionCode = 103
|
||||
versionName = "3.3.1"
|
||||
multiDexEnabled true
|
||||
|
||||
testApplicationId = "com.kunzisoft.keepass.tests"
|
||||
@@ -104,7 +104,7 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
def room_version = "2.4.1"
|
||||
def room_version = "2.4.2"
|
||||
|
||||
dependencies {
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
|
||||
|
||||
@@ -130,8 +130,9 @@ class CipherDatabaseAction(context: Context) {
|
||||
cipherDatabaseResultListener: (CipherEncryptDatabase?) -> Unit) {
|
||||
if (useTempDao) {
|
||||
serviceActionTask {
|
||||
var cipherDatabase: CipherEncryptDatabase? = null
|
||||
mBinder?.getCipherDatabase(databaseUri)?.let { cipherDatabaseEntity ->
|
||||
val cipherDatabase = CipherEncryptDatabase().apply {
|
||||
cipherDatabase = CipherEncryptDatabase().apply {
|
||||
this.databaseUri = Uri.parse(cipherDatabaseEntity.databaseUri)
|
||||
this.encryptedValue = Base64.decode(
|
||||
cipherDatabaseEntity.encryptedValue,
|
||||
@@ -142,8 +143,8 @@ class CipherDatabaseAction(context: Context) {
|
||||
Base64.NO_WRAP
|
||||
)
|
||||
}
|
||||
cipherDatabaseResultListener.invoke(cipherDatabase)
|
||||
}
|
||||
cipherDatabaseResultListener.invoke(cipherDatabase)
|
||||
}
|
||||
} else {
|
||||
IOActionTask(
|
||||
|
||||
@@ -377,9 +377,11 @@ class StructureParser(private val structure: AssistStructure) {
|
||||
when {
|
||||
inputIsVariationType(inputType,
|
||||
InputType.TYPE_NUMBER_VARIATION_NORMAL) -> {
|
||||
usernameIdCandidate = autofillId
|
||||
usernameValueCandidate = node.autofillValue
|
||||
Log.d(TAG, "Autofill username candidate android number type: ${showHexInputType(inputType)}")
|
||||
if (usernameIdCandidate == null) {
|
||||
usernameIdCandidate = autofillId
|
||||
usernameValueCandidate = node.autofillValue
|
||||
Log.d(TAG, "Autofill username candidate android number type: ${showHexInputType(inputType)}")
|
||||
}
|
||||
}
|
||||
inputIsVariationType(inputType,
|
||||
InputType.TYPE_NUMBER_VARIATION_PASSWORD) -> {
|
||||
|
||||
@@ -180,12 +180,16 @@ abstract class BinaryData : Parcelable {
|
||||
|
||||
companion object {
|
||||
private val TAG = BinaryData::class.java.name
|
||||
private const val MAX_BINARY_BYTE = 10485760 // 10 MB
|
||||
|
||||
fun canMemoryBeAllocatedInRAM(context: Context, memoryWanted: Long): Boolean {
|
||||
if (memoryWanted > MAX_BINARY_BYTE)
|
||||
return false
|
||||
val memoryInfo = ActivityManager.MemoryInfo()
|
||||
(context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager).getMemoryInfo(memoryInfo)
|
||||
(context.getSystemService(Context.ACTIVITY_SERVICE)
|
||||
as? ActivityManager?)?.getMemoryInfo(memoryInfo)
|
||||
val availableMemory = memoryInfo.availMem
|
||||
return availableMemory > memoryWanted * 3
|
||||
return availableMemory > (memoryWanted * 5)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,8 @@ package com.kunzisoft.keepass.magikeyboard;
|
||||
|
||||
import static com.kunzisoft.keepass.magikeyboard.MagikeyboardService.KEY_BACK_KEYBOARD;
|
||||
import static com.kunzisoft.keepass.magikeyboard.MagikeyboardService.KEY_CHANGE_KEYBOARD;
|
||||
import static com.kunzisoft.keepass.magikeyboard.MagikeyboardService.KEY_OTP;
|
||||
import static com.kunzisoft.keepass.magikeyboard.MagikeyboardService.KEY_OTP_ALT;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
@@ -1047,6 +1049,9 @@ public class KeyboardView extends View implements View.OnClickListener {
|
||||
if (popupKey.codes[0] == KEY_BACK_KEYBOARD) {
|
||||
mKeyboardActionListener.onKey(KEY_CHANGE_KEYBOARD, popupKey.codes);
|
||||
return true;
|
||||
} else if (popupKey.codes[0] == KEY_OTP) {
|
||||
mKeyboardActionListener.onKey(KEY_OTP_ALT, popupKey.codes);
|
||||
return true;
|
||||
} else {
|
||||
int popupKeyboardId = popupKey.popupResId;
|
||||
if (popupKeyboardId != 0) {
|
||||
|
||||
@@ -245,35 +245,52 @@ class MagikeyboardService : InputMethodService(), KeyboardView.OnKeyboardActionL
|
||||
dismissCustomKeys()
|
||||
}
|
||||
KEY_USERNAME -> {
|
||||
if (entryInfoKey != null) {
|
||||
currentInputConnection.commitText(entryInfoKey!!.username, 1)
|
||||
entryInfoKey?.username?.let { username ->
|
||||
currentInputConnection.commitText(username, 1)
|
||||
}
|
||||
actionTabAutomatically()
|
||||
}
|
||||
KEY_PASSWORD -> {
|
||||
if (entryInfoKey != null) {
|
||||
currentInputConnection.commitText(entryInfoKey!!.password, 1)
|
||||
entryInfoKey?.password?.let { password ->
|
||||
currentInputConnection.commitText(password, 1)
|
||||
}
|
||||
val otpFieldExists = entryInfoKey?.containsCustomField(OTP_TOKEN_FIELD) ?: false
|
||||
actionGoAutomatically(!otpFieldExists)
|
||||
}
|
||||
KEY_OTP -> {
|
||||
if (entryInfoKey != null) {
|
||||
entryInfoKey?.let { entryInfo ->
|
||||
currentInputConnection.commitText(
|
||||
entryInfoKey!!.getGeneratedFieldValue(OTP_TOKEN_FIELD), 1)
|
||||
entryInfo.getGeneratedFieldValue(OTP_TOKEN_FIELD), 1)
|
||||
}
|
||||
actionGoAutomatically()
|
||||
}
|
||||
KEY_OTP_ALT -> {
|
||||
entryInfoKey?.let { entryInfo ->
|
||||
val otpToken = entryInfo.getGeneratedFieldValue(OTP_TOKEN_FIELD)
|
||||
if (otpToken.isNotEmpty()) {
|
||||
// Cut to fill each digit separatelyKeyEvent.KEYCODE_TAB
|
||||
val otpTokenChars = otpToken.chunked(1)
|
||||
otpTokenChars.forEachIndexed { index, char ->
|
||||
currentInputConnection.commitText(char, 1)
|
||||
if (index < (otpTokenChars.size-1))
|
||||
currentInputConnection.sendKeyEvent(
|
||||
KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_TAB)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
actionGoAutomatically()
|
||||
}
|
||||
KEY_URL -> {
|
||||
if (entryInfoKey != null) {
|
||||
currentInputConnection.commitText(entryInfoKey!!.url, 1)
|
||||
entryInfoKey?.url?.let { url ->
|
||||
currentInputConnection.commitText(url, 1)
|
||||
}
|
||||
actionGoAutomatically()
|
||||
}
|
||||
KEY_FIELDS -> {
|
||||
if (entryInfoKey != null) {
|
||||
entryInfoKey?.customFields?.let { customFields ->
|
||||
fieldsAdapter?.apply {
|
||||
setFields(entryInfoKey!!.customFields.filter { it.name != OTP_TOKEN_FIELD})
|
||||
setFields(customFields.filter { it.name != OTP_TOKEN_FIELD})
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
}
|
||||
@@ -347,7 +364,8 @@ class MagikeyboardService : InputMethodService(), KeyboardView.OnKeyboardActionL
|
||||
private const val KEY_ENTRY = 620
|
||||
private const val KEY_USERNAME = 500
|
||||
private const val KEY_PASSWORD = 510
|
||||
private const val KEY_OTP = 515
|
||||
const val KEY_OTP = 515
|
||||
const val KEY_OTP_ALT = 516
|
||||
private const val KEY_URL = 520
|
||||
private const val KEY_FIELDS = 530
|
||||
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:checked="false"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/entry_expires" />
|
||||
android:text="@string/expired" />
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/search_chip_note"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -154,7 +154,6 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:checked="true"
|
||||
android:enabled="false"
|
||||
style="@style/KeepassDXStyle.Chip.Filter"
|
||||
android:text="@string/other"/>
|
||||
<com.google.android.material.chip.Chip
|
||||
|
||||
@@ -328,7 +328,7 @@
|
||||
<string name="error_move_entry_here">Sem záznam přesunout nelze.</string>
|
||||
<string name="error_copy_entry_here">Sem záznam zkopírovat nelze.</string>
|
||||
<string name="list_groups_show_number_entries_title">Ukázat počet záznamů</string>
|
||||
<string name="list_groups_show_number_entries_summary">Ukázat počet záznamů ve skupině</string>
|
||||
<string name="list_groups_show_number_entries_summary">Zobrazit počet záznamů ve skupině</string>
|
||||
<string name="content_description_background">Pozadí</string>
|
||||
<string name="content_description_update_from_list">Aktualizovat</string>
|
||||
<string name="content_description_keyboard_close_fields">Zavřít pole</string>
|
||||
@@ -601,4 +601,18 @@
|
||||
<string name="hint_icon_name">Jméno symbolu</string>
|
||||
<string name="warning_exact_alarm">Nepovolili jste aplikaci použít přesný alarm. Výsledkem je, že funkce požadující časovač nebudou provedeny v přesný okamžik.</string>
|
||||
<string name="permission">Povolení</string>
|
||||
<string name="tags">Tagy</string>
|
||||
<string name="menu_merge_database">Sloučit databázi</string>
|
||||
<string name="warning_database_info_reloaded">Opětovné načtení databáze smaže všechny lokálně změněné data.</string>
|
||||
<string name="warning_keyfile_integrity">Hash souboru není garantován protože Android umožňuje změnu souboru v běhu. Změňte koncovku souboru na .bin pro opravu integrity.</string>
|
||||
<string name="enable_keep_screen_on_title">Ponechat obrazovku zapnutou</string>
|
||||
<string name="content_description_database_color">Barva databáze</string>
|
||||
<string name="wireless">Wi-Fi</string>
|
||||
<string name="searchable">Vyhledatelné</string>
|
||||
<string name="case_sensitive">Rozlišování velkých a malých písmen</string>
|
||||
<string name="current_group">Tato skupina</string>
|
||||
<string name="menu_merge_from">Sloučit z …</string>
|
||||
<string name="custom_data">Vlastní data</string>
|
||||
<string name="search_filters">Vyhledat filtry</string>
|
||||
<string name="menu_save_copy_to">Uložit kopii do …</string>
|
||||
</resources>
|
||||
@@ -635,4 +635,7 @@
|
||||
<string name="case_sensitive">Groß-/Kleinschreibung beachten</string>
|
||||
<string name="menu_merge_from">Zusammenführen von …</string>
|
||||
<string name="menu_save_copy_to">Kopie speichern unter …</string>
|
||||
<string name="content_description_nav_header">Navigationskopfzeile</string>
|
||||
<string name="navigation_drawer_close">Navigationsleiste schließen</string>
|
||||
<string name="navigation_drawer_open">Navigationsleiste öffnen</string>
|
||||
</resources>
|
||||
@@ -615,7 +615,7 @@
|
||||
<string name="searchable">Αναζητήσιμο</string>
|
||||
<string name="case_sensitive">Διάκριση πεζών-κεφαλαίων</string>
|
||||
<string name="menu_merge_from">Συγχώνευση από …</string>
|
||||
<string name="inherited">Κληρονόμησε</string>
|
||||
<string name="inherited">Κληρονομώ</string>
|
||||
<string name="search_filters">Αναζήτηση φίλτρων</string>
|
||||
<string name="content_description_nav_header">Κεφαλίδα πλοήγησης</string>
|
||||
<string name="navigation_drawer_close">Κλείσιμο συρταριού πλοήγησης</string>
|
||||
|
||||
@@ -498,7 +498,7 @@
|
||||
<string name="autofill_web_domain_blocklist_title">Lista de bloqueo de los dominios web</string>
|
||||
<string name="autofill_application_id_blocklist_summary">Lista de bloqueo que impide el llenado automático de las aplicaciones</string>
|
||||
<string name="autofill_application_id_blocklist_title">Lista de bloqueo de las aplicaciones</string>
|
||||
<string name="autofill_ask_to_save_data_summary">Pedir que se guarden los datos cuando se valide un formulario</string>
|
||||
<string name="autofill_ask_to_save_data_summary">Solicitar datos de guardado al completar el llenado de un formulario</string>
|
||||
<string name="autofill_ask_to_save_data_title">Pedir que se guarden los datos</string>
|
||||
<string name="autofill_save_search_info_summary">Intente guardar la información de la búsqueda cuando haga una selección de entrada manual</string>
|
||||
<string name="autofill_save_search_info_title">Guardar la información de la búsqueda</string>
|
||||
@@ -626,5 +626,5 @@
|
||||
<string name="search_filters">Filtros de búsqueda</string>
|
||||
<string name="menu_merge_from">Fusionar desde …</string>
|
||||
<string name="menu_save_copy_to">Guardar una copia en …</string>
|
||||
<string name="inherited">Heredado</string>
|
||||
<string name="inherited">Heredar</string>
|
||||
</resources>
|
||||
@@ -282,12 +282,12 @@
|
||||
<string name="allow_no_password_summary">Autorise l’appui du bouton \"Ouvrir\" si aucun identifiant n’est sélectionné</string>
|
||||
<string name="menu_file_selection_read_only">Protéger en écriture</string>
|
||||
<string name="menu_open_file_read_and_write">Modifiable</string>
|
||||
<string name="enable_read_only_title">Protégé en écriture</string>
|
||||
<string name="enable_read_only_title">Protéger en écriture</string>
|
||||
<string name="enable_read_only_summary">Ouvre la base de données en lecture seule par défaut</string>
|
||||
<string name="education_read_only_title">Protégez en écriture votre base de données</string>
|
||||
<string name="education_read_only_summary">Changez le mode d’ouverture pour la session.
|
||||
\n
|
||||
\n\"Protégé en écriture\" empêche les modifications involontaires de la base de données.
|
||||
\n\"Protéger en écriture\" empêche les modifications involontaires de la base de données.
|
||||
\n\"Modifiable\" vous permet d’ajouter, de supprimer ou de modifier tous les éléments comme vous le souhaitez.</string>
|
||||
<string name="edit_entry">Modifier l’entrée</string>
|
||||
<string name="error_load_database">Impossible de charger votre base de données.</string>
|
||||
@@ -631,8 +631,9 @@
|
||||
<string name="menu_merge_from">Fusionner depuis …</string>
|
||||
<string name="wireless">Wi-Fi</string>
|
||||
<string name="searchable">Recherchable</string>
|
||||
<string name="inherited">Hérité</string>
|
||||
<string name="inherited">Hériter</string>
|
||||
<string name="auto_type_sequence">Séquence Auto-Type</string>
|
||||
<string name="custom_data">Données personnalisées</string>
|
||||
<string name="case_sensitive">Sensible à la casse</string>
|
||||
<string name="expired">Expiré</string>
|
||||
</resources>
|
||||
@@ -617,7 +617,7 @@
|
||||
<string name="navigation_drawer_close">Szuflada nawigacyjna zamknięta</string>
|
||||
<string name="case_sensitive">Wielkość liter</string>
|
||||
<string name="regex">Wyrażenie regularne</string>
|
||||
<string name="inherited">Dziedziczone</string>
|
||||
<string name="inherited">Dziedzicz</string>
|
||||
<string name="auto_type_sequence">Sekwencja automatycznego wpisywania</string>
|
||||
<string name="current_group">Obecna grupa</string>
|
||||
<string name="custom_data">Dane niestandardowe</string>
|
||||
@@ -626,4 +626,5 @@
|
||||
<string name="auto_type">Automatyczne wpisywanie</string>
|
||||
<string name="searchable">Przeszukiwalne</string>
|
||||
<string name="menu_save_copy_to">Zapisz kopię w…</string>
|
||||
<string name="expired">Wygasłe</string>
|
||||
</resources>
|
||||
@@ -612,4 +612,12 @@
|
||||
<string name="error_move_group_here">Você não pode mover um grupo aqui.</string>
|
||||
<string name="wireless">Wi-Fi</string>
|
||||
<string name="warning_keyfile_integrity">O hash do arquivo não é garantido porque o Android pode alterar seus dados em tempo real. Altere a extensão do arquivo para .bin para obter a integridade correta.</string>
|
||||
<string name="content_description_nav_header">Cabeçalho de navegação</string>
|
||||
<string name="navigation_drawer_open">Gaveta de navegação aberta</string>
|
||||
<string name="searchable">Pesquisável</string>
|
||||
<string name="inherited">Herdar</string>
|
||||
<string name="custom_data">Dados personalizados</string>
|
||||
<string name="menu_merge_from">Mesclar de…</string>
|
||||
<string name="menu_save_copy_to">Salvar uma cópia em…</string>
|
||||
<string name="navigation_drawer_close">Gaveta de navegação fechada</string>
|
||||
</resources>
|
||||
@@ -495,7 +495,7 @@
|
||||
<string name="education_advanced_unlock_title">Desbloqueio avançado da base de dados</string>
|
||||
<string name="autofill_inline_suggestions_keyboard">Adicionadas sugestões de preenchimento automático.</string>
|
||||
<string name="autofill_read_only_save">Não é possível guardar dados numa base de dados aberta apenas com permissão de leitura.</string>
|
||||
<string name="autofill_ask_to_save_data_summary">Pedir para guardar dados quando é validado um formulário</string>
|
||||
<string name="autofill_ask_to_save_data_summary">Pedir para guardar dados quando terminar de preencher um formulário</string>
|
||||
<string name="autofill_ask_to_save_data_title">Pedir para guardar dados</string>
|
||||
<string name="autofill_save_search_info_summary">Tentar guardar as informações de pesquisas ao fazer uma seleção de entrada manual</string>
|
||||
<string name="autofill_save_search_info_title">Guardar informações de pesquisas</string>
|
||||
@@ -590,4 +590,17 @@
|
||||
<string name="content_description_database_color">Cor da base de dados</string>
|
||||
<string name="content_description_entry_foreground_color">Cor do primeiro plano da página inicial</string>
|
||||
<string name="content_description_entry_background_color">Cor do fundo da página inicial</string>
|
||||
<string name="content_description_nav_header">Cabeçalho de navegação</string>
|
||||
<string name="searchable">Pesquisável</string>
|
||||
<string name="auto_type_sequence">Sequência de preenchimento automático</string>
|
||||
<string name="custom_data">Dados personalizados</string>
|
||||
<string name="search_filters">Filtros de pesquisa</string>
|
||||
<string name="current_group">Grupo atual</string>
|
||||
<string name="case_sensitive">Sensível a maiúsculas e minúsculas</string>
|
||||
<string name="regex">Expressão regular</string>
|
||||
<string name="menu_save_copy_to">Guardar uma cópia em…</string>
|
||||
<string name="navigation_drawer_open">Gaveta de navegação aberta</string>
|
||||
<string name="navigation_drawer_close">Gaveta de navegação fechada</string>
|
||||
<string name="inherited">Herdar</string>
|
||||
<string name="menu_merge_from">Unir de…</string>
|
||||
</resources>
|
||||
@@ -50,7 +50,7 @@
|
||||
<string name="entry_notes">Заметки</string>
|
||||
<string name="entry_confpassword">Подтверждение пароля</string>
|
||||
<string name="entry_created">Создано</string>
|
||||
<string name="entry_expires">Истекает</string>
|
||||
<string name="entry_expires">Срок действия</string>
|
||||
<string name="entry_keyfile">Файл ключа</string>
|
||||
<string name="entry_modified">Изменено</string>
|
||||
<string name="entry_not_found">Данные записи не найдены.</string>
|
||||
@@ -406,7 +406,7 @@
|
||||
<string name="download_finalization">Завершение…</string>
|
||||
<string name="download_complete">Готово!</string>
|
||||
<string name="hide_expired_entries_title">Скрывать устаревшие записи</string>
|
||||
<string name="hide_expired_entries_summary">Не показывать записи с истёкшим сроком</string>
|
||||
<string name="hide_expired_entries_summary">Не показывать записи с истёкшим сроком действия</string>
|
||||
<string name="contact">Контактная информация</string>
|
||||
<string name="contribution">Помощь проекту</string>
|
||||
<string name="html_about_contribution">Для <strong>сохранения нашей независимости</strong>, <strong>исправления ошибок</strong>, <strong>добавления новых функций</strong> и <strong>поддержания разработки в активном состоянии</strong>, мы рассчитываем на вашу <strong>поддержку</strong>.</string>
|
||||
@@ -614,8 +614,8 @@
|
||||
<string name="show_entry_colors_summary">Показывать цвета текста и фона записи</string>
|
||||
<string name="navigation_drawer_open">Открыть панель навигации</string>
|
||||
<string name="content_description_nav_header">Заголовок навигации</string>
|
||||
<string name="searchable">Искомое</string>
|
||||
<string name="inherited">Наследуемое</string>
|
||||
<string name="searchable">Доступно для поиска</string>
|
||||
<string name="inherited">Наследовать</string>
|
||||
<string name="case_sensitive">С учётом регистра</string>
|
||||
<string name="menu_save_copy_to">Сохранить копию в…</string>
|
||||
<string name="menu_merge_from">Объединить с…</string>
|
||||
@@ -625,4 +625,5 @@
|
||||
<string name="auto_type_sequence">Последовательность автонабора</string>
|
||||
<string name="current_group">Текущая группа</string>
|
||||
<string name="custom_data">Пользовательские данные</string>
|
||||
<string name="expired">Срок действия истёк</string>
|
||||
</resources>
|
||||
@@ -399,8 +399,8 @@
|
||||
<string name="download_progression">Devam ediyor: %1$d%%</string>
|
||||
<string name="download_finalization">Sonuçlandırılıyor…</string>
|
||||
<string name="download_complete">Tamamlandı!</string>
|
||||
<string name="hide_expired_entries_title">Süresi dolmuş girdileri gizle</string>
|
||||
<string name="hide_expired_entries_summary">Süresi dolmuş girdiler gösterilmez</string>
|
||||
<string name="hide_expired_entries_title">Süresi dolan girdileri gizle</string>
|
||||
<string name="hide_expired_entries_summary">Süresi dolan girdiler gösterilmez</string>
|
||||
<string name="warning_database_read_only">Veri tabanı değişikliklerini kaydetmek için dosya yazma erişimi ver</string>
|
||||
<string name="hide_broken_locations_summary">Son veri tabanları listesindeki bozuk bağlantıları gizle</string>
|
||||
<string name="hide_broken_locations_title">Bozuk veri tabanı bağlantılarını gizle</string>
|
||||
@@ -611,7 +611,7 @@
|
||||
<string name="navigation_drawer_open">Gezinme çekmecesi açık</string>
|
||||
<string name="navigation_drawer_close">Gezinme çekmecesi kapalı</string>
|
||||
<string name="searchable">Aranabilir</string>
|
||||
<string name="inherited">Devralınan</string>
|
||||
<string name="inherited">Aktar</string>
|
||||
<string name="auto_type_sequence">Otomatik yazma sırası</string>
|
||||
<string name="menu_merge_from">Şuradan birleştir…</string>
|
||||
<string name="regex">Düzenli ifade</string>
|
||||
@@ -620,4 +620,5 @@
|
||||
<string name="current_group">Geçerli grup</string>
|
||||
<string name="custom_data">Özel veri</string>
|
||||
<string name="menu_save_copy_to">Bir kopyasını şuraya kaydet…</string>
|
||||
<string name="expired">Süresi doldu</string>
|
||||
</resources>
|
||||
@@ -616,7 +616,7 @@
|
||||
<string name="navigation_drawer_open">Відкрити панель навігації</string>
|
||||
<string name="navigation_drawer_close">Закрити панель навігації</string>
|
||||
<string name="searchable">Шукане</string>
|
||||
<string name="inherited">Успадковане</string>
|
||||
<string name="inherited">Успадкувати</string>
|
||||
<string name="current_group">Поточна група</string>
|
||||
<string name="case_sensitive">З урахуванням регістру</string>
|
||||
<string name="regex">Регулярний вираз</string>
|
||||
@@ -625,4 +625,5 @@
|
||||
<string name="search_filters">Фільтри пошуку</string>
|
||||
<string name="auto_type_sequence">Послідовність автовведення</string>
|
||||
<string name="menu_save_copy_to">Зберегти копію в …</string>
|
||||
<string name="expired">Термін дії завершився</string>
|
||||
</resources>
|
||||
@@ -619,11 +619,12 @@
|
||||
<string name="regex">正则表达式</string>
|
||||
<string name="menu_merge_from">合并自…</string>
|
||||
<string name="menu_save_copy_to">保存副本到…</string>
|
||||
<string name="inherited">继承的</string>
|
||||
<string name="inherited">继承</string>
|
||||
<string name="content_description_nav_header">导航标题</string>
|
||||
<string name="navigation_drawer_close">导航抽屉关闭</string>
|
||||
<string name="navigation_drawer_open">导航抽屉开启</string>
|
||||
<string name="search_filters">搜索过滤器</string>
|
||||
<string name="case_sensitive">区分大小写</string>
|
||||
<string name="auto_type">自动输入</string>
|
||||
<string name="expired">已过期</string>
|
||||
</resources>
|
||||
@@ -90,6 +90,7 @@
|
||||
<string name="entry_confpassword">Confirm password</string>
|
||||
<string name="entry_created">Created</string>
|
||||
<string name="entry_expires">Expires</string>
|
||||
<string name="expired">Expired</string>
|
||||
<string name="entry_UUID">UUID</string>
|
||||
<string name="entry_history">History</string>
|
||||
<string name="entry_attachments">Attachments</string>
|
||||
|
||||
@@ -20,6 +20,6 @@
|
||||
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:label="@string/search"
|
||||
android:searchMode="showSearchLabelAsBadge"
|
||||
android:inputType="textNoSuggestions|textVisiblePassword"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:imeOptions="actionSearch|flagNoPersonalizedLearning"
|
||||
/>
|
||||
6
fastlane/metadata/android/en-US/changelogs/103.txt
Normal file
6
fastlane/metadata/android/en-US/changelogs/103.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
* Fix Japanese keyboard in search #1248
|
||||
* Better OOM management #256
|
||||
* Fix filters #1249
|
||||
* Fix temp advanced unlocking #1245
|
||||
* Best autofill recognition #1250
|
||||
* Workaround to fill OTP token in multiple fields with Magikeyboard (long press) #1158
|
||||
6
fastlane/metadata/android/fr-FR/changelogs/103.txt
Normal file
6
fastlane/metadata/android/fr-FR/changelogs/103.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
* Correction du clavier japonais dans la recherche #1248
|
||||
* Meilleur gestion d'OOM #256
|
||||
* Correction des filtres #1249
|
||||
* Correction du déverouillage avancé temporaire #1245
|
||||
* Meilleure reconnaissance du remplissage automatique #1250
|
||||
* Solution pour remplir le token OTP dans des champs multiple avec le Magiclavier (appui long) #1158
|
||||
Reference in New Issue
Block a user