diff options
author | Fabian Henneke <FabianHenneke@users.noreply.github.com> | 2020-11-02 20:25:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-02 20:25:37 +0100 |
commit | 1d13a1fbd6580c0d28c90579ade96e0a93e17c92 (patch) | |
tree | 89cf7824cb7938bb107cca37124dc91354b19087 /app/src/main/res | |
parent | cff8d41c91a73371f7eb65b08730fa548ce510a4 (diff) |
Improve Autofill UI and enable inline presentations (#1181)
* Improve Autofill UI and enable inline presentations
Improves the Autofill UI in the following ways:
* Add support for Android 11 inline presentations of Autofill datasets.
* Instead of showing the identifier (app name or web origin) of the
current app on top of every Autofill dataset, it is now shown 1) as a
header dataset on Android 9 and 10 as well as 2) at the top of the
search activity on all supported versions of Android. Rationale: The
identifier is only used in trust decisions when choosing an existing
entry to fill and should feature prominently in that view, not
elsewhere.
* Show the actual identifier part of a matched entry's path, which may
differ from the identifier of the matched app/website.
* Slightly tweak the labels of Search/Generate Autofill actions to
indicate that a) this is about entries and b) the user may skip the
generation of a password and supply a custom one as well.
* Suppress lint error
* Address review comments
* Add a fixme about properly handling fill-in datasets
* CHANGELOG: add entry for inline presentation
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Remove unused parameter
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
Diffstat (limited to 'app/src/main/res')
-rw-r--r-- | app/src/main/res/layout/activity_oreo_autofill_filter.xml | 18 | ||||
-rw-r--r-- | app/src/main/res/layout/oreo_autofill_dataset.xml | 7 | ||||
-rw-r--r-- | app/src/main/res/values-de/strings.xml | 5 | ||||
-rw-r--r-- | app/src/main/res/values-es/strings.xml | 2 | ||||
-rw-r--r-- | app/src/main/res/values-fr/strings.xml | 6 | ||||
-rw-r--r-- | app/src/main/res/values-pt-rBR/strings.xml | 6 | ||||
-rw-r--r-- | app/src/main/res/values-ru/strings.xml | 6 | ||||
-rw-r--r-- | app/src/main/res/values/strings.xml | 9 | ||||
-rw-r--r-- | app/src/main/res/xml/oreo_autofill_service.xml | 1 |
9 files changed, 36 insertions, 24 deletions
diff --git a/app/src/main/res/layout/activity_oreo_autofill_filter.xml b/app/src/main/res/layout/activity_oreo_autofill_filter.xml index a3718b43..8e671e30 100644 --- a/app/src/main/res/layout/activity_oreo_autofill_filter.xml +++ b/app/src/main/res/layout/activity_oreo_autofill_filter.xml @@ -14,16 +14,28 @@ <ImageView android:id="@+id/cover" android:layout_width="0dp" - android:layout_height="80dp" + android:layout_height="60dp" android:background="@color/primary_color" android:contentDescription="@string/app_name" android:src="@mipmap/ic_launcher_foreground" - app:layout_constraintBottom_toTopOf="@id/searchLayout" + app:layout_constraintBottom_toTopOf="@id/origin" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.0" /> + <TextView + android:id="@+id/origin" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:singleLine="false" + android:textAlignment="center" + app:layout_constraintBottom_toTopOf="@id/searchLayout" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/cover" + app:layout_constraintVertical_bias="0.0" /> + <com.google.android.material.textfield.TextInputLayout android:id="@+id/searchLayout" android:layout_width="match_parent" @@ -35,7 +47,7 @@ app:layout_constraintBottom_toTopOf="@id/rvPasswordSwitcher" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/cover"> + app:layout_constraintTop_toBottomOf="@id/origin"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/search" diff --git a/app/src/main/res/layout/oreo_autofill_dataset.xml b/app/src/main/res/layout/oreo_autofill_dataset.xml index 2e9f48b9..e13d1688 100644 --- a/app/src/main/res/layout/oreo_autofill_dataset.xml +++ b/app/src/main/res/layout/oreo_autofill_dataset.xml @@ -6,9 +6,10 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_width="wrap_content" + android:layout_height="wrap_content" android:orientation="horizontal" + android:gravity="center_vertical" android:paddingLeft="10dp" android:paddingTop="5dp" android:paddingRight="10dp" @@ -20,6 +21,8 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginEnd="10dp" + android:layout_marginTop="5dp" + android:layout_marginBottom="5dp" android:adjustViewBounds="true" android:maxWidth="20dp" android:maxHeight="20dp" diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index add23eda..82e75d68 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -157,12 +157,15 @@ <string name="send_plaintext_password_to">Passwort unverschlüsselt senden an…</string> <string name="app_icon_hint">App Icon</string> <!-- Oreo Autofill --> + <string name="oreo_autofill_select_and_fill_into">Eintrag auswählen für Autofill in</string> <string name="oreo_autofill_strict_domain_search">Phishing-resistente Suche</string> <string name="oreo_autofill_filter_no_results">Keine Ergebnisse.</string> <string name="oreo_autofill_save_internal_error">Speichern aufgrund eines internen Fehlers fehlgeschlagen</string> <string name="oreo_autofill_save_app_not_supported">Diese App wird derzeit nicht unterstützt</string> <string name="oreo_autofill_save_passwords_dont_match">Die Passwörter stimmen nicht überein</string> - <string name="oreo_autofill_generate_password">Passwort generieren…</string> + <string name="oreo_autofill_generate_password">Eintrag erstellen</string> + <string name="oreo_autofill_search_in_store">Eintrag suchen</string> + <string name="oreo_autofill_fill_otp_from_sms">Code aus SMS einfügen</string> <string name="oreo_autofill_warning_publisher_footer"><b>Die derzeit installierte App versucht, Ihre Anmeldeinformationen zu stehlen, indem sie vorgibt, eine vertrauenswürdige App zu sein.</b>\n\nVersuchen Sie die App zu deinstallieren und installieren Sie sie erneut aus einer vertrauenswürdigen Quelle wie dem Play Store, Amazon Appstore, F-Droid oder dem Shop Ihres Telefonherstellers.</string> <string name="oreo_autofill_warning_publisher_install_time">Installiert: %1$s</string> <string name="oreo_autofill_warning_publisher_warning_sign_description">Warnung</string> diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index c64287b5..f19b6817 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -130,11 +130,9 @@ <!-- Oreo Autofill --> <string name="oreo_autofill_match_with">Coincide con %1$s</string> <string name="oreo_autofill_filter_no_results">Sin resultados.</string> - <string name="oreo_autofill_search_in_store">Buscar en la tienda…</string> <string name="oreo_autofill_save_internal_error">Error al guardar debido a un error interno</string> <string name="oreo_autofill_save_app_not_supported">Esta aplicación no es compatible actualmente</string> <string name="oreo_autofill_save_passwords_dont_match">Las contraseñas no coinciden</string> - <string name="oreo_autofill_generate_password">Generar contraseña…</string> <string name="oreo_autofill_warning_publisher_install_time">Instalada: %1$s</string> <string name="oreo_autofill_warning_publisher_advanced_info_button">Información avanzada</string> <string name="oreo_autofill_warning_publisher_changed_disable_autofill_button">Mantener el Autocompletado desactivado</string> diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 557591e8..10fa1130 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -185,17 +185,15 @@ <string name="oreo_autofill_match_with">Apparier avec %1$s</string> <string name="oreo_autofill_matches_clear_existing">Effacer l’appairage actuel</string> <string name="oreo_autofill_filter_no_results">Aucun résultat.</string> - <string name="oreo_autofill_search_in_store">Rechercher dans le dépôt…</string> <string name="oreo_autofill_save_internal_error">Échec de la sauvegarde : erreur interne</string> <string name="oreo_autofill_save_app_not_supported">Cette application n\'est actuellement pas prise en charge</string> <string name="oreo_autofill_save_passwords_dont_match">Les mots de passe ne coïncident pas</string> - <string name="oreo_autofill_generate_password">Générer un mot de passe…</string> - <string name="oreo_autofill_fill_otp_from_sms">Extraire le code depuis un SMS…</string> + <string name="oreo_autofill_fill_otp_from_sms">Extraire le code depuis un SMS</string> <string name="oreo_autofill_warning_publisher_header">L\'éditeur de cette application a changé depuis que vous avez appairé un mot de passe avec celle-ci:</string> <string name="oreo_autofill_warning_publisher_footer"><b>L\'application actuellement installée peut essayer de voler vos identifiants en faisant semblant d\'être une application de confiance.</b>\n\nEssayez de désinstaller et de réinstaller l\'application à partir d\'une source fiable, comme le Play Store, l\'AppStore d\'Amazon, le F-Droid ou la boutique du fabricant de votre téléphone.</string> <string name="oreo_autofill_warning_publisher_install_time">Installé : %1$s</string> <string name="oreo_autofill_warning_publisher_warning_sign_description">Avertissement</string> - <string name="oreo_autofill_warning_publisher_dataset_summary">Appuyez pour en savoir plus…</string> + <string name="oreo_autofill_warning_publisher_dataset_summary">Appuyez pour en savoir plus</string> <string name="oreo_autofill_warning_publisher_dataset_title">Tentative possible d\'hameçonnage</string> <string name="oreo_autofill_general_fill_and_save_support">Remplir et enregistrer les identifiants</string> <string name="oreo_autofill_general_fill_support">Remplir les identifiants</string> diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index cef14227..c45b2705 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -187,12 +187,10 @@ <string name="oreo_autofill_match_with">Combinar com %1$s</string> <string name="oreo_autofill_matches_clear_existing">Limpar correspondências existentes</string> <string name="oreo_autofill_filter_no_results">Sem resultados.</string> - <string name="oreo_autofill_search_in_store">Pesquisar no armazenamento…</string> <string name="oreo_autofill_save_internal_error">Falha ao salvar devido a um erro interno</string> <string name="oreo_autofill_save_app_not_supported">Este app não é suportado no momento</string> <string name="oreo_autofill_save_passwords_dont_match">As senhas não coincidem</string> - <string name="oreo_autofill_generate_password">Gerar senha…</string> - <string name="oreo_autofill_fill_otp_from_sms">Extrair código do SMS…</string> + <string name="oreo_autofill_fill_otp_from_sms">Extrair código do SMS</string> <string name="oreo_autofill_max_matches_reached">Número máximo de correspondências (%1$d) atingidas; limpar correspondências antes de adicionar novas.</string> <string name="oreo_autofill_warning_publisher_header">O editor deste aplicativo mudou desde a primeira vez que você associou uma entrada no Password Store:</string> <string name="oreo_autofill_warning_publisher_footer"><b>O aplicativo atualmente instalado pode estar tentando roubar suas credenciais fingindo ser um aplicativo confiável.</b>\n\nTente desinstalar e reinstalar o aplicativo de uma fonte confiável, como a Play Store, Amazon Appstore, F-Droid ou a loja do fabricante do seu telefone.</string> @@ -201,7 +199,7 @@ <string name="oreo_autofill_warning_publisher_changed_disable_autofill_button">Manter o preenchimento automático desativado</string> <string name="oreo_autofill_warning_publisher_reenable_button">Reativar preenchimento automático</string> <string name="oreo_autofill_warning_publisher_warning_sign_description">Alerta</string> - <string name="oreo_autofill_warning_publisher_dataset_summary">Toque para detalhes…</string> + <string name="oreo_autofill_warning_publisher_dataset_summary">Toque para detalhes</string> <string name="oreo_autofill_warning_publisher_dataset_title">Possível tentativa de phishing</string> <string name="oreo_autofill_general_fill_and_save_support">Preencher e salvar credenciais</string> <string name="oreo_autofill_general_fill_support">Preencher as credenciais</string> diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f9340b41..baa49c74 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -191,12 +191,10 @@ <string name="oreo_autofill_match_with">Совпадает с %1$s</string> <string name="oreo_autofill_matches_clear_existing">Очистить существующие совпадения</string> <string name="oreo_autofill_filter_no_results">Не найдено.</string> - <string name="oreo_autofill_search_in_store">Искать в хранилище...</string> <string name="oreo_autofill_save_internal_error">Сохранение не удалось из-за внутренней ошибки</string> <string name="oreo_autofill_save_app_not_supported">Это приложение в настоящее время не поддерживается</string> <string name="oreo_autofill_save_passwords_dont_match">Пароли не совпадают</string> - <string name="oreo_autofill_generate_password">Сгенерировать пароль...</string> - <string name="oreo_autofill_fill_otp_from_sms">Извлечение кодов из SMS…</string> + <string name="oreo_autofill_fill_otp_from_sms">Извлечение кодов из SMS</string> <string name="oreo_autofill_max_matches_reached">Достигнуто максимальное количество совпадений (%1$d); очистите совпадения перед тем как добавите новые.</string> <string name="oreo_autofill_warning_publisher_header">Издатель приложения изменился с тех пор как вы первый раз связали с ним запись хранилища паролей:</string> <string name="oreo_autofill_warning_publisher_footer"><b>Установленное приложение может попытаться украсть ваши учетные данные, выдавая себя за доверенное приложение</b>\n\nПопробуйте удалить или переустановить приложение из доверенного источника, такого как Play Store, Amazon Appstore, F-Droid или магазин приложений производителя вашего смартфона.</string> @@ -205,7 +203,7 @@ <string name="oreo_autofill_warning_publisher_changed_disable_autofill_button">Оставить автозаполнение отключенным</string> <string name="oreo_autofill_warning_publisher_reenable_button">Включить автозаполнение снова</string> <string name="oreo_autofill_warning_publisher_warning_sign_description">Предупреждение</string> - <string name="oreo_autofill_warning_publisher_dataset_summary">Нажмите для получения подробностей...</string> + <string name="oreo_autofill_warning_publisher_dataset_summary">Нажмите для получения подробностей</string> <string name="oreo_autofill_warning_publisher_dataset_title">Возможная попытка фишинга</string> <string name="oreo_autofill_general_fill_and_save_support">Заполнить и сохранить учетные данные</string> <string name="oreo_autofill_general_fill_support">Заполнить учетные данные</string> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ea222409..9c87c1da 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -231,16 +231,17 @@ <string name="app_icon_hint">App icon</string> <!-- Oreo Autofill --> + <string name="oreo_autofill_select_and_fill_into">Select entry to fill into</string> <string name="oreo_autofill_strict_domain_search">Phishing-resistant search</string> <string name="oreo_autofill_match_with">Match with %1$s</string> <string name="oreo_autofill_matches_clear_existing">Clear existing matches</string> <string name="oreo_autofill_filter_no_results">No results.</string> - <string name="oreo_autofill_search_in_store">Search in store…</string> + <string name="oreo_autofill_search_in_store">Search entry</string> <string name="oreo_autofill_save_internal_error">Save failed due to an internal error</string> <string name="oreo_autofill_save_app_not_supported">This app is currently not supported</string> <string name="oreo_autofill_save_passwords_dont_match">Passwords don\'t match</string> - <string name="oreo_autofill_generate_password">Generate password…</string> - <string name="oreo_autofill_fill_otp_from_sms">Extract code from SMS…</string> + <string name="oreo_autofill_generate_password">Create entry</string> + <string name="oreo_autofill_fill_otp_from_sms">Extract code from SMS</string> <string name="oreo_autofill_max_matches_reached">Maximum number of matches (%1$d) reached; clear matches before adding new ones.</string> <string name="oreo_autofill_warning_publisher_header">This app\'s publisher has changed since you first associated a Password Store entry with it:</string> <string name="oreo_autofill_warning_publisher_footer"><b>The currently installed app may be trying to steal your credentials by pretending to be a trusted app.</b>\n\nTry to uninstall and reinstall the app from a trusted source, such as the Play Store, Amazon Appstore, F-Droid, or your phone manufacturer\'s store.</string> @@ -250,7 +251,7 @@ <string name="oreo_autofill_warning_publisher_changed_disable_autofill_button">Keep Autofill disabled</string> <string name="oreo_autofill_warning_publisher_reenable_button">Re-enable Autofill</string> <string name="oreo_autofill_warning_publisher_warning_sign_description">Warning</string> - <string name="oreo_autofill_warning_publisher_dataset_summary">Tap for details…</string> + <string name="oreo_autofill_warning_publisher_dataset_summary">Tap for details</string> <string name="oreo_autofill_warning_publisher_dataset_title">Possible phishing attempt</string> <string name="oreo_autofill_general_fill_and_save_support">Fill and save credentials</string> <string name="oreo_autofill_general_fill_support">Fill credentials</string> diff --git a/app/src/main/res/xml/oreo_autofill_service.xml b/app/src/main/res/xml/oreo_autofill_service.xml index 00736cd5..b8a7510b 100644 --- a/app/src/main/res/xml/oreo_autofill_service.xml +++ b/app/src/main/res/xml/oreo_autofill_service.xml @@ -5,6 +5,7 @@ <autofill-service xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" + android:supportsInlineSuggestions="true" tools:ignore="UnusedAttribute"> <compatibility-package android:name="com.android.chrome" /> <compatibility-package android:name="com.brave.browser" /> |