Wakeup and unlock screen before running the tests am: 91bc9d9012
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/DocumentsUI/+/13080688
Change-Id: I1467d93fd1cde07a4c99905324b50adcc6739227
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 572f3e4..6fa0971 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -169,7 +169,8 @@
</intent-filter>
</provider>
- <receiver android:name=".PackageReceiver">
+ <receiver android:name=".PackageReceiver"
+ android:exported="true">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" />
<action android:name="android.intent.action.PACKAGE_DATA_CLEARED" />
@@ -177,13 +178,15 @@
</intent-filter>
</receiver>
- <receiver android:name=".roots.BootReceiver" android:enabled="false">
+ <receiver android:name=".roots.BootReceiver" android:enabled="false"
+ android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
- <receiver android:name=".PreBootReceiver">
+ <receiver android:name=".PreBootReceiver"
+ android:exported="true">
<intent-filter>
<action android:name="android.intent.action.PRE_BOOT_COMPLETED" />
</intent-filter>
@@ -201,6 +204,7 @@
<activity
android:name=".selection.demo.SelectionDemoActivity"
android:label="Selection Demo"
+ android:exported="true"
android:theme="@style/DocumentsTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
diff --git a/MODULE_LICENSE_APACHE2 b/MODULE_LICENSE_APACHE2
deleted file mode 100644
index e69de29..0000000
--- a/MODULE_LICENSE_APACHE2
+++ /dev/null
diff --git a/res/layout/drawer_layout.xml b/res/layout/drawer_layout.xml
index 7cb185f..589953d 100644
--- a/res/layout/drawer_layout.xml
+++ b/res/layout/drawer_layout.xml
@@ -51,8 +51,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
- <!-- Drawer edge is a dummy view used to capture hovering event
- on view edge to open the drawer. (b/28345294) -->
+ <!-- Drawer edge is a placeholder view used to capture hovering
+ event on view edge to open the drawer. (b/28345294) -->
<View
android:id="@+id/drawer_edge"
android:background="@android:color/transparent"
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 5ddec85..742fd03 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -213,7 +213,7 @@
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> елемента</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> елемент</item>
</plurals>
- <string name="delete_filename_confirmation_message" msgid="8338069763240613258">"Искате ли да изтриете „<xliff:g id="NAME">%1$s</xliff:g>“?"</string>
+ <string name="delete_filename_confirmation_message" msgid="8338069763240613258">"Искате ли да изтриете <xliff:g id="NAME">%1$s</xliff:g>?"</string>
<string name="delete_foldername_confirmation_message" msgid="9084085260877704140">"Искате ли да изтриете папката „<xliff:g id="NAME">%1$s</xliff:g>“ и съдържанието в нея?"</string>
<plurals name="delete_files_confirmation_message" formatted="false" msgid="4866664063250034142">
<item quantity="other">Искате ли да изтриете <xliff:g id="COUNT_1">%1$d</xliff:g> файла?</item>
@@ -233,7 +233,7 @@
<string name="authentication_required" msgid="8030880723643436099">"За да прегледате тази директория, влезте в/ъв <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="cant_display_content" msgid="8633226333229417237">"Съдържанието не може да бъде показано"</string>
<string name="sign_in" msgid="6253762676723505592">"Вход"</string>
- <string name="new_archive_file_name" msgid="1604650338077249838">"<xliff:g id="EXTENSION">%s</xliff:g> архивен файл"</string>
+ <string name="new_archive_file_name" msgid="1604650338077249838">"archive<xliff:g id="EXTENSION">%s</xliff:g>"</string>
<string name="overwrite_file_confirmation_message" msgid="2496109652768222716">"Да се презапише ли <xliff:g id="NAME">%1$s</xliff:g>?"</string>
<string name="continue_in_background" msgid="1974214559047793331">"Продължаване на заден план"</string>
<plurals name="selected_count" formatted="false" msgid="7555250236512981129">
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index c713449..b4b6223 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -61,7 +61,7 @@
<string name="button_extract" msgid="1038674453689912247">"Extraer"</string>
<string name="button_move" msgid="8596460499325291272">"Mover"</string>
<string name="button_dismiss" msgid="7235249361023803349">"Cerrar"</string>
- <string name="button_retry" msgid="4011461781916631389">"Volver a intentarlo"</string>
+ <string name="button_retry" msgid="4011461781916631389">"Reintentar"</string>
<string name="button_clear" msgid="5412304437764369441">"Borrar"</string>
<string name="button_show_provider" msgid="6905880493806292753">"Mostrar en el proveedor"</string>
<string name="button_back" msgid="1888621708934742182">"Atrás"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index b13de15..c4fb538 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -196,7 +196,7 @@
<item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> elementu kopiatu da arbelean.</item>
</plurals>
<string name="file_operation_rejected" msgid="4301554203329008794">"Ez da onartzen hori egitea fitxategiarekin."</string>
- <string name="file_operation_error" msgid="2234357335716533795">"Ezin da egin hori fitxategiarekin."</string>
+ <string name="file_operation_error" msgid="2234357335716533795">"Ezin izan da egin hori fitxategiarekin."</string>
<string name="rename_error" msgid="6700093173508118635">"Ezin izan zaio aldatu izena dokumentuari"</string>
<string name="menu_eject_root" msgid="9215040039374893613">"Atera"</string>
<string name="notification_copy_files_converted_title" msgid="6916768494891833365">"Artxibo batzuk bihurtu dira"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index d46c6bc..617fce1 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -124,22 +124,27 @@
<string name="copy_remaining" msgid="5390517377265177727">"Temps restant : <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="151184708996738192">
<item quantity="one">Copie de <xliff:g id="COUNT_1">%1$d</xliff:g> élément en cours.</item>
+ <item quantity="many">Copying <xliff:g id="COUNT_1">%1$d</xliff:g> items.</item>
<item quantity="other">Copie de <xliff:g id="COUNT_1">%1$d</xliff:g> éléments en cours.</item>
</plurals>
<plurals name="compress_begin" formatted="false" msgid="3534158317098678895">
<item quantity="one">Compression de <xliff:g id="COUNT_1">%1$d</xliff:g> fichier en cours.</item>
+ <item quantity="many">Compressing <xliff:g id="COUNT_1">%1$d</xliff:g> files.</item>
<item quantity="other">Compression de <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers en cours.</item>
</plurals>
<plurals name="extract_begin" formatted="false" msgid="1006380679562903749">
<item quantity="one">Extraction de <xliff:g id="COUNT_1">%1$d</xliff:g> fichier en cours.</item>
+ <item quantity="many">Extracting <xliff:g id="COUNT_1">%1$d</xliff:g> files.</item>
<item quantity="other">Extraction de <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers en cours.</item>
</plurals>
<plurals name="move_begin" formatted="false" msgid="1464229874265756956">
<item quantity="one">Déplacement de <xliff:g id="COUNT_1">%1$d</xliff:g> élément en cours.</item>
+ <item quantity="many">Moving <xliff:g id="COUNT_1">%1$d</xliff:g> items.</item>
<item quantity="other">Déplacement de <xliff:g id="COUNT_1">%1$d</xliff:g> éléments en cours.</item>
</plurals>
<plurals name="deleting" formatted="false" msgid="1729138001178158901">
<item quantity="one">Suppression de <xliff:g id="COUNT_1">%1$d</xliff:g> élément en cours.</item>
+ <item quantity="many">Deleting <xliff:g id="COUNT_1">%1$d</xliff:g> items.</item>
<item quantity="other">Suppression de <xliff:g id="COUNT_1">%1$d</xliff:g> éléments en cours.</item>
</plurals>
<string name="undo" msgid="2902438994196400565">"Annuler"</string>
@@ -151,48 +156,59 @@
<string name="delete_progress" msgid="2627631054702306423">"<xliff:g id="COUNT_0">%1$d</xliff:g> sur <xliff:g id="TOTALCOUNT">%2$d</xliff:g>"</string>
<plurals name="copy_error_notification_title" formatted="false" msgid="3188432450429390963">
<item quantity="one">Impossible de copier <xliff:g id="COUNT_1">%1$d</xliff:g> élément</item>
+ <item quantity="many">Couldn’t copy <xliff:g id="COUNT_1">%1$d</xliff:g> items</item>
<item quantity="other">Impossible de copier <xliff:g id="COUNT_1">%1$d</xliff:g> éléments</item>
</plurals>
<plurals name="compress_error_notification_title" formatted="false" msgid="3043630066678213644">
<item quantity="one">Impossible de compresser <xliff:g id="COUNT_1">%1$d</xliff:g> fichier</item>
+ <item quantity="many">Couldn’t compress <xliff:g id="COUNT_1">%1$d</xliff:g> files</item>
<item quantity="other">Impossible de compresser <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers</item>
</plurals>
<plurals name="move_error_notification_title" formatted="false" msgid="2185736082411854754">
<item quantity="one">Impossible de déplacer <xliff:g id="COUNT_1">%1$d</xliff:g> élément</item>
+ <item quantity="many">Couldn’t move <xliff:g id="COUNT_1">%1$d</xliff:g> items</item>
<item quantity="other">Impossible de déplacer <xliff:g id="COUNT_1">%1$d</xliff:g> éléments</item>
</plurals>
<plurals name="delete_error_notification_title" formatted="false" msgid="7568122018481625267">
<item quantity="one">Impossible de supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> élément</item>
+ <item quantity="many">Couldn’t delete <xliff:g id="COUNT_1">%1$d</xliff:g> items</item>
<item quantity="other">Impossible de supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> éléments</item>
</plurals>
<string name="notification_touch_for_details" msgid="2385563502445129570">"Touchez pour afficher les détails"</string>
<string name="close" msgid="905969391788869975">"Fermer"</string>
<plurals name="copy_failure_alert_content" formatted="false" msgid="5570549471912990536">
<item quantity="one">Ce fichier n\'a pas été copié : <xliff:g id="LIST_1">%1$s</xliff:g></item>
+ <item quantity="many">These files weren’t copied: <xliff:g id="LIST_1">%1$s</xliff:g></item>
<item quantity="other">Ces fichiers n\'ont pas été copiés : <xliff:g id="LIST_1">%1$s</xliff:g></item>
</plurals>
<plurals name="compress_failure_alert_content" formatted="false" msgid="5760632881868842400">
<item quantity="one">Ce fichier n\'a pas été compressé : <xliff:g id="LIST_1">%1$s</xliff:g></item>
+ <item quantity="many">These files weren’t compressed: <xliff:g id="LIST_1">%1$s</xliff:g></item>
<item quantity="other">Ces fichiers n\'ont pas été compressés : <xliff:g id="LIST_1">%1$s</xliff:g></item>
</plurals>
<plurals name="extract_failure_alert_content" formatted="false" msgid="7572748127571720803">
<item quantity="one">Ce fichier n\'a pas été extrait : <xliff:g id="LIST_1">%1$s</xliff:g></item>
+ <item quantity="many">These files weren’t extracted: <xliff:g id="LIST_1">%1$s</xliff:g></item>
<item quantity="other">Ces fichiers n\'ont pas été extraits : <xliff:g id="LIST_1">%1$s</xliff:g></item>
</plurals>
<plurals name="move_failure_alert_content" formatted="false" msgid="2747390342670799196">
<item quantity="one">Ce fichier n\'a pas été déplacé : <xliff:g id="LIST_1">%1$s</xliff:g></item>
+ <item quantity="many">These files weren’t moved: <xliff:g id="LIST_1">%1$s</xliff:g></item>
<item quantity="other">Ces fichiers n\'ont pas été déplacés : <xliff:g id="LIST_1">%1$s</xliff:g></item>
</plurals>
<plurals name="delete_failure_alert_content" formatted="false" msgid="6122372614839711711">
<item quantity="one">Ce fichier n\'a pas été supprimé : <xliff:g id="LIST_1">%1$s</xliff:g></item>
+ <item quantity="many">These files weren’t deleted: <xliff:g id="LIST_1">%1$s</xliff:g></item>
<item quantity="other">Ces fichiers n\'ont pas été supprimés : <xliff:g id="LIST_1">%1$s</xliff:g></item>
</plurals>
<plurals name="copy_converted_warning_content" formatted="false" msgid="7433742181712126588">
<item quantity="one">Ce fichier a été converti en un autre format : <xliff:g id="LIST_1">%1$s</xliff:g></item>
+ <item quantity="many">These files were converted to another format: <xliff:g id="LIST_1">%1$s</xliff:g></item>
<item quantity="other">Ces fichiers ont été convertis en un autre format : <xliff:g id="LIST_1">%1$s</xliff:g></item>
</plurals>
<plurals name="clipboard_files_clipped" formatted="false" msgid="4847061634862926902">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> élément copié dans le presse-papiers.</item>
+ <item quantity="many">Copied <xliff:g id="COUNT_1">%1$d</xliff:g> items to clipboard.</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> éléments copiés dans le presse-papiers.</item>
</plurals>
<string name="file_operation_rejected" msgid="4301554203329008794">"Opération relative au fichier non prise en charge"</string>
@@ -207,24 +223,29 @@
<string name="deny" msgid="5127201668078153379">"Refuser"</string>
<plurals name="elements_selected" formatted="false" msgid="4448165978637163692">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> élément sélectionné</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> selected</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> éléments sélectionnés</item>
</plurals>
<plurals name="elements_dragged" formatted="false" msgid="5932571296037626279">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> article</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> items</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> articles</item>
</plurals>
<string name="delete_filename_confirmation_message" msgid="8338069763240613258">"Supprimer « <xliff:g id="NAME">%1$s</xliff:g> »?"</string>
<string name="delete_foldername_confirmation_message" msgid="9084085260877704140">"Supprimer le dossier « <xliff:g id="NAME">%1$s</xliff:g> » et son contenu?"</string>
<plurals name="delete_files_confirmation_message" formatted="false" msgid="4866664063250034142">
<item quantity="one">Supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> fichier?</item>
+ <item quantity="many">Delete <xliff:g id="COUNT_1">%1$d</xliff:g> files?</item>
<item quantity="other">Supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers?</item>
</plurals>
<plurals name="delete_folders_confirmation_message" formatted="false" msgid="1028946402799686388">
<item quantity="one">Supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> dossier et son contenu?</item>
+ <item quantity="many">Delete <xliff:g id="COUNT_1">%1$d</xliff:g> folders and their contents?</item>
<item quantity="other">Supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> dossiers et leur contenu?</item>
</plurals>
<plurals name="delete_items_confirmation_message" formatted="false" msgid="7285090426511028179">
<item quantity="one">Supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> élément?</item>
+ <item quantity="many">Delete <xliff:g id="COUNT_1">%1$d</xliff:g> items?</item>
<item quantity="other">Supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> éléments?</item>
</plurals>
<string name="images_shortcut_label" msgid="2545168016070493574">"Images"</string>
@@ -238,6 +259,7 @@
<string name="continue_in_background" msgid="1974214559047793331">"Continuer en arrière-plan"</string>
<plurals name="selected_count" formatted="false" msgid="7555250236512981129">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> élément sélectionné</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> selected</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> éléments sélectionnés</item>
</plurals>
<string name="root_info_header_recent" msgid="5654901877295332262">"Fichiers récents"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 9705244..3b46f9d 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -124,22 +124,27 @@
<string name="copy_remaining" msgid="5390517377265177727">"Temps restant : <xliff:g id="DURATION">%s</xliff:g>"</string>
<plurals name="copy_begin" formatted="false" msgid="151184708996738192">
<item quantity="one">Copie de <xliff:g id="COUNT_1">%1$d</xliff:g> élément…</item>
+ <item quantity="many">Copying <xliff:g id="COUNT_1">%1$d</xliff:g> items.</item>
<item quantity="other">Copie de <xliff:g id="COUNT_1">%1$d</xliff:g> éléments…</item>
</plurals>
<plurals name="compress_begin" formatted="false" msgid="3534158317098678895">
<item quantity="one">Compression de <xliff:g id="COUNT_1">%1$d</xliff:g> fichier…</item>
+ <item quantity="many">Compressing <xliff:g id="COUNT_1">%1$d</xliff:g> files.</item>
<item quantity="other">Compression de <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers…</item>
</plurals>
<plurals name="extract_begin" formatted="false" msgid="1006380679562903749">
<item quantity="one">Extraction de <xliff:g id="COUNT_1">%1$d</xliff:g> fichier…</item>
+ <item quantity="many">Extracting <xliff:g id="COUNT_1">%1$d</xliff:g> files.</item>
<item quantity="other">Extraction de <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers…</item>
</plurals>
<plurals name="move_begin" formatted="false" msgid="1464229874265756956">
<item quantity="one">Déplacement de <xliff:g id="COUNT_1">%1$d</xliff:g> élément…</item>
+ <item quantity="many">Moving <xliff:g id="COUNT_1">%1$d</xliff:g> items.</item>
<item quantity="other">Déplacement de <xliff:g id="COUNT_1">%1$d</xliff:g> éléments…</item>
</plurals>
<plurals name="deleting" formatted="false" msgid="1729138001178158901">
<item quantity="one">Suppression de <xliff:g id="COUNT_1">%1$d</xliff:g> élément…</item>
+ <item quantity="many">Deleting <xliff:g id="COUNT_1">%1$d</xliff:g> items.</item>
<item quantity="other">Suppression de <xliff:g id="COUNT_1">%1$d</xliff:g> éléments…</item>
</plurals>
<string name="undo" msgid="2902438994196400565">"Annuler"</string>
@@ -151,48 +156,59 @@
<string name="delete_progress" msgid="2627631054702306423">"<xliff:g id="COUNT_0">%1$d</xliff:g>/<xliff:g id="TOTALCOUNT">%2$d</xliff:g>"</string>
<plurals name="copy_error_notification_title" formatted="false" msgid="3188432450429390963">
<item quantity="one">Impossible de copier <xliff:g id="COUNT_1">%1$d</xliff:g> élément</item>
+ <item quantity="many">Couldn’t copy <xliff:g id="COUNT_1">%1$d</xliff:g> items</item>
<item quantity="other">Impossible de copier <xliff:g id="COUNT_1">%1$d</xliff:g> éléments</item>
</plurals>
<plurals name="compress_error_notification_title" formatted="false" msgid="3043630066678213644">
<item quantity="one">Impossible de compresser <xliff:g id="COUNT_1">%1$d</xliff:g> fichier</item>
+ <item quantity="many">Couldn’t compress <xliff:g id="COUNT_1">%1$d</xliff:g> files</item>
<item quantity="other">Impossible de compresser <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers</item>
</plurals>
<plurals name="move_error_notification_title" formatted="false" msgid="2185736082411854754">
<item quantity="one">Impossible de déplacer <xliff:g id="COUNT_1">%1$d</xliff:g> élément</item>
+ <item quantity="many">Couldn’t move <xliff:g id="COUNT_1">%1$d</xliff:g> items</item>
<item quantity="other">Impossible de déplacer <xliff:g id="COUNT_1">%1$d</xliff:g> éléments</item>
</plurals>
<plurals name="delete_error_notification_title" formatted="false" msgid="7568122018481625267">
<item quantity="one">Impossible de supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> élément</item>
+ <item quantity="many">Couldn’t delete <xliff:g id="COUNT_1">%1$d</xliff:g> items</item>
<item quantity="other">Impossible de supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> éléments</item>
</plurals>
<string name="notification_touch_for_details" msgid="2385563502445129570">"Appuyez pour afficher plus d\'informations."</string>
<string name="close" msgid="905969391788869975">"Fermer"</string>
<plurals name="copy_failure_alert_content" formatted="false" msgid="5570549471912990536">
<item quantity="one">Ce fichier n\'a pas été copié : <xliff:g id="LIST_1">%1$s</xliff:g></item>
+ <item quantity="many">These files weren’t copied: <xliff:g id="LIST_1">%1$s</xliff:g></item>
<item quantity="other">Ces fichiers n\'ont pas été copiés : <xliff:g id="LIST_1">%1$s</xliff:g></item>
</plurals>
<plurals name="compress_failure_alert_content" formatted="false" msgid="5760632881868842400">
<item quantity="one">Ce fichier n\'a pas été compressé : <xliff:g id="LIST_1">%1$s</xliff:g></item>
+ <item quantity="many">These files weren’t compressed: <xliff:g id="LIST_1">%1$s</xliff:g></item>
<item quantity="other">Ces fichiers n\'ont pas été compressés : <xliff:g id="LIST_1">%1$s</xliff:g></item>
</plurals>
<plurals name="extract_failure_alert_content" formatted="false" msgid="7572748127571720803">
<item quantity="one">Ce fichier n\'a pas été extrait : <xliff:g id="LIST_1">%1$s</xliff:g></item>
+ <item quantity="many">These files weren’t extracted: <xliff:g id="LIST_1">%1$s</xliff:g></item>
<item quantity="other">Ces fichiers n\'ont pas été extraits : <xliff:g id="LIST_1">%1$s</xliff:g></item>
</plurals>
<plurals name="move_failure_alert_content" formatted="false" msgid="2747390342670799196">
<item quantity="one">Ce fichier n\'a pas été déplacé : <xliff:g id="LIST_1">%1$s</xliff:g></item>
+ <item quantity="many">These files weren’t moved: <xliff:g id="LIST_1">%1$s</xliff:g></item>
<item quantity="other">Ces fichiers n\'ont pas été déplacés : <xliff:g id="LIST_1">%1$s</xliff:g></item>
</plurals>
<plurals name="delete_failure_alert_content" formatted="false" msgid="6122372614839711711">
<item quantity="one">Ce fichier n\'a pas été supprimé : <xliff:g id="LIST_1">%1$s</xliff:g></item>
+ <item quantity="many">These files weren’t deleted: <xliff:g id="LIST_1">%1$s</xliff:g></item>
<item quantity="other">Ces fichiers n\'ont pas été supprimés : <xliff:g id="LIST_1">%1$s</xliff:g></item>
</plurals>
<plurals name="copy_converted_warning_content" formatted="false" msgid="7433742181712126588">
<item quantity="one">Ce fichier a été converti dans un autre format : <xliff:g id="LIST_1">%1$s</xliff:g></item>
+ <item quantity="many">These files were converted to another format: <xliff:g id="LIST_1">%1$s</xliff:g></item>
<item quantity="other">Ces fichiers ont été convertis dans un autre format : <xliff:g id="LIST_1">%1$s</xliff:g></item>
</plurals>
<plurals name="clipboard_files_clipped" formatted="false" msgid="4847061634862926902">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> élément a été copié dans le presse-papiers.</item>
+ <item quantity="many">Copied <xliff:g id="COUNT_1">%1$d</xliff:g> items to clipboard.</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> éléments ont été copiés dans le presse-papiers.</item>
</plurals>
<string name="file_operation_rejected" msgid="4301554203329008794">"Opération relative au fichier non acceptée."</string>
@@ -207,24 +223,29 @@
<string name="deny" msgid="5127201668078153379">"Refuser"</string>
<plurals name="elements_selected" formatted="false" msgid="4448165978637163692">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> élément sélectionné</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> selected</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> éléments sélectionnés</item>
</plurals>
<plurals name="elements_dragged" formatted="false" msgid="5932571296037626279">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> élément</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> items</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> éléments</item>
</plurals>
<string name="delete_filename_confirmation_message" msgid="8338069763240613258">"Supprimer le fichier \"<xliff:g id="NAME">%1$s</xliff:g>\" ?"</string>
<string name="delete_foldername_confirmation_message" msgid="9084085260877704140">"Supprimer le dossier \"<xliff:g id="NAME">%1$s</xliff:g>\" et son contenu ?"</string>
<plurals name="delete_files_confirmation_message" formatted="false" msgid="4866664063250034142">
<item quantity="one">Supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> fichier ?</item>
+ <item quantity="many">Delete <xliff:g id="COUNT_1">%1$d</xliff:g> files?</item>
<item quantity="other">Supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers ?</item>
</plurals>
<plurals name="delete_folders_confirmation_message" formatted="false" msgid="1028946402799686388">
<item quantity="one">Supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> dossier et son contenu ?</item>
+ <item quantity="many">Delete <xliff:g id="COUNT_1">%1$d</xliff:g> folders and their contents?</item>
<item quantity="other">Supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> dossiers et leur contenu ?</item>
</plurals>
<plurals name="delete_items_confirmation_message" formatted="false" msgid="7285090426511028179">
<item quantity="one">Supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> élément ?</item>
+ <item quantity="many">Delete <xliff:g id="COUNT_1">%1$d</xliff:g> items?</item>
<item quantity="other">Supprimer <xliff:g id="COUNT_1">%1$d</xliff:g> éléments ?</item>
</plurals>
<string name="images_shortcut_label" msgid="2545168016070493574">"Images"</string>
@@ -238,6 +259,7 @@
<string name="continue_in_background" msgid="1974214559047793331">"Continuer en arrière-plan"</string>
<plurals name="selected_count" formatted="false" msgid="7555250236512981129">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> élément sélectionné</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> selected</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> éléments sélectionnés</item>
</plurals>
<string name="root_info_header_recent" msgid="5654901877295332262">"Fichiers récents"</string>
diff --git a/res/values-hu/inspector_strings.xml b/res/values-hu/inspector_strings.xml
index c883f55..23746a5 100644
--- a/res/values-hu/inspector_strings.xml
+++ b/res/values-hu/inspector_strings.xml
@@ -30,7 +30,7 @@
<string name="metadata_coordinates" msgid="6897383227370702734">"Koordináták"</string>
<string name="metadata_coordinates_format" msgid="1402724596764547761">"<xliff:g id="LATITUDE">%1$,.3f</xliff:g>, <xliff:g id="LONGITUDE">%2$,.3f</xliff:g>"</string>
<string name="metadata_altitude" msgid="8063792127436794294">"Magasság"</string>
- <string name="metadata_camera" msgid="2363009732801281319">"Fényképezőgép"</string>
+ <string name="metadata_camera" msgid="2363009732801281319">"Kamera"</string>
<string name="metadata_camera_format" msgid="1494489751904311612">"<xliff:g id="MAKE">%1$s</xliff:g> <xliff:g id="MODEL">%2$s</xliff:g>"</string>
<string name="metadata_aperture" msgid="6538741952698935357">"Rekesz"</string>
<string name="metadata_shutter_speed" msgid="8204739885103326131">"Záridő"</string>
diff --git a/res/values-mk/inspector_strings.xml b/res/values-mk/inspector_strings.xml
index 373c656..9687d1d 100644
--- a/res/values-mk/inspector_strings.xml
+++ b/res/values-mk/inspector_strings.xml
@@ -17,7 +17,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="inspector_title" msgid="1924760928091740238">"Информации"</string>
- <string name="inspector_load_error" msgid="7522190243413249291">"Не можеше да се вчитаат информациите за датотеката"</string>
+ <string name="inspector_load_error" msgid="7522190243413249291">"Не може да се вчитаат информациите за датотеката"</string>
<string name="inspector_debug_section" msgid="2576052661505700421">"Инф. за отстранување грешки (само за програмери)"</string>
<string name="inspector_debug_metadata_section" msgid="5875140675600744846">"Необработени метаподатоци: <xliff:g id="METADATATYPE">%1$s</xliff:g>"</string>
<string name="inspector_metadata_section" msgid="6077622515328240575">"Детали за аудиовизуелните содржини"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 737080e..c30e6e0 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -150,20 +150,20 @@
<string name="delete_preparing" msgid="7339349837842802508">"Се подготвува…"</string>
<string name="delete_progress" msgid="2627631054702306423">"<xliff:g id="COUNT_0">%1$d</xliff:g>/<xliff:g id="TOTALCOUNT">%2$d</xliff:g>"</string>
<plurals name="copy_error_notification_title" formatted="false" msgid="3188432450429390963">
- <item quantity="one">Не можеше да се копира <xliff:g id="COUNT_1">%1$d</xliff:g> ставка</item>
- <item quantity="other">Не можеше да се копираат <xliff:g id="COUNT_1">%1$d</xliff:g> ставки</item>
+ <item quantity="one">Не може да се копира <xliff:g id="COUNT_1">%1$d</xliff:g> ставка</item>
+ <item quantity="other">Не може да се копираат <xliff:g id="COUNT_1">%1$d</xliff:g> ставки</item>
</plurals>
<plurals name="compress_error_notification_title" formatted="false" msgid="3043630066678213644">
- <item quantity="one">Не можеше да се компримира <xliff:g id="COUNT_1">%1$d</xliff:g> датотека</item>
- <item quantity="other">Не можеше да се компримираат <xliff:g id="COUNT_1">%1$d</xliff:g> датотеки</item>
+ <item quantity="one">Не може да се компримира <xliff:g id="COUNT_1">%1$d</xliff:g> датотека</item>
+ <item quantity="other">Не може да се компримираат <xliff:g id="COUNT_1">%1$d</xliff:g> датотеки</item>
</plurals>
<plurals name="move_error_notification_title" formatted="false" msgid="2185736082411854754">
- <item quantity="one">Не можеше да премести <xliff:g id="COUNT_1">%1$d</xliff:g> ставка</item>
- <item quantity="other">Не можеше да преместат <xliff:g id="COUNT_1">%1$d</xliff:g> ставки</item>
+ <item quantity="one">Не може да премести <xliff:g id="COUNT_1">%1$d</xliff:g> ставка</item>
+ <item quantity="other">Не може да преместат <xliff:g id="COUNT_1">%1$d</xliff:g> ставки</item>
</plurals>
<plurals name="delete_error_notification_title" formatted="false" msgid="7568122018481625267">
- <item quantity="one">Не можеше да се избрише <xliff:g id="COUNT_1">%1$d</xliff:g> ставка</item>
- <item quantity="other">Не можеше да се избришат <xliff:g id="COUNT_1">%1$d</xliff:g> ставки</item>
+ <item quantity="one">Не може да се избрише <xliff:g id="COUNT_1">%1$d</xliff:g> ставка</item>
+ <item quantity="other">Не може да се избришат <xliff:g id="COUNT_1">%1$d</xliff:g> ставки</item>
</plurals>
<string name="notification_touch_for_details" msgid="2385563502445129570">"Допрете за приказ на деталите"</string>
<string name="close" msgid="905969391788869975">"Затвори"</string>
diff --git a/res/values-mn/inspector_strings.xml b/res/values-mn/inspector_strings.xml
index 625c31a..50aa68b 100644
--- a/res/values-mn/inspector_strings.xml
+++ b/res/values-mn/inspector_strings.xml
@@ -17,7 +17,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="inspector_title" msgid="1924760928091740238">"Мэдээлэл"</string>
- <string name="inspector_load_error" msgid="7522190243413249291">"Файлын мэдээллийг ачааллаж чадсангүй"</string>
+ <string name="inspector_load_error" msgid="7522190243413249291">"Файлын мэдээллийг ачаалж чадсангүй"</string>
<string name="inspector_debug_section" msgid="2576052661505700421">"Дебаг хийх мэдээлэл (зөвхөн хөгжүүлэгчид)"</string>
<string name="inspector_debug_metadata_section" msgid="5875140675600744846">"RAW мета өгөгдөл: <xliff:g id="METADATATYPE">%1$s</xliff:g>"</string>
<string name="inspector_metadata_section" msgid="6077622515328240575">"Медианы дэлгэрэнгүй"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index a83f389..dd22215 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -89,7 +89,7 @@
<string name="drawer_close" msgid="4263880768630848848">"रूट लपवा"</string>
<string name="save_error" msgid="8631128801982095782">"दस्तऐवज सेव्ह करणे अयशस्वी झाले"</string>
<string name="create_error" msgid="3092144450044861994">"फोल्डर तयार करण्यात अयशस्वी झाले"</string>
- <string name="query_error" msgid="6625421453613879336">"याक्षणी सामग्री लोड करू शकत नाही"</string>
+ <string name="query_error" msgid="6625421453613879336">"याक्षणी आशय लोड करू शकत नाही"</string>
<string name="quiet_mode_error_title" msgid="9126656325282792843">"कार्य प्रोफाइल थांबवली आहे"</string>
<string name="quiet_mode_button" msgid="6977115032320235420">"सुरू करा"</string>
<string name="cant_select_work_files_error_title" msgid="6688716319549644354">"कामासंबंधित फाइल निवडता आल्या नाहीत"</string>
@@ -110,7 +110,7 @@
<string name="root_type_apps" msgid="8646073235029886342">"अधिक अॅप्स"</string>
<string name="empty" msgid="5300254272613103004">"कोणतेही आयटम नाहीत"</string>
<string name="no_results" msgid="2371026325236359209">"%1$s मध्ये कोणत्याही जुळण्या नाहीत"</string>
- <string name="toast_no_application" msgid="7555319548595113121">"फाईल उघडू शकत नाही"</string>
+ <string name="toast_no_application" msgid="7555319548595113121">"फाइल उघडू शकत नाही"</string>
<string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"संग्रहणांमध्ये फाइल उघडू शकत नाही"</string>
<string name="toast_failed_delete" msgid="3453846588205817591">"काही दस्तऐवज हटविण्यात अक्षम"</string>
<string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g> हून अधिक फाइल शेअर करू शकत नाही"</string>
@@ -217,11 +217,11 @@
<string name="delete_foldername_confirmation_message" msgid="9084085260877704140">"\"<xliff:g id="NAME">%1$s</xliff:g>\" फोल्डर आणि त्यामधील आशय हटवायचा?"</string>
<plurals name="delete_files_confirmation_message" formatted="false" msgid="4866664063250034142">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> फाइल हटवायच्या?</item>
- <item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> फाईल हटवायची?</item>
+ <item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> फाइल हटवायची?</item>
</plurals>
<plurals name="delete_folders_confirmation_message" formatted="false" msgid="1028946402799686388">
- <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> फोल्डर आणि त्यामधील सामग्री हटवायची?</item>
- <item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> फोल्डर आणि त्यामधील सामग्री हटवायची?</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> फोल्डर आणि त्यामधील आशय हटवायची?</item>
+ <item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> फोल्डर आणि त्यामधील आशय हटवायची?</item>
</plurals>
<plurals name="delete_items_confirmation_message" formatted="false" msgid="7285090426511028179">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> आयटम हटवायचे?</item>
@@ -231,7 +231,7 @@
<string name="archive_loading_failed" msgid="7243436722828766996">"ब्राउझिंगसाठी संग्रहण उघडण्यात अक्षम. फाइल एकतर दूषित झाली आहे किंवा असमर्थित स्वरूपात आहे."</string>
<string name="name_conflict" msgid="28407269328862986">"या नावाची फाइल आधीपासून अस्तित्वात आहे."</string>
<string name="authentication_required" msgid="8030880723643436099">"डिरेक्टरी पाहण्यासाठी <xliff:g id="NAME">%1$s</xliff:g> मध्ये साइन इन करा"</string>
- <string name="cant_display_content" msgid="8633226333229417237">"सामग्री प्रदर्शित करू शकत नाही"</string>
+ <string name="cant_display_content" msgid="8633226333229417237">"आशय प्रदर्शित करू शकत नाही"</string>
<string name="sign_in" msgid="6253762676723505592">"साइन इन करा"</string>
<string name="new_archive_file_name" msgid="1604650338077249838">"संग्रहण<xliff:g id="EXTENSION">%s</xliff:g>"</string>
<string name="overwrite_file_confirmation_message" msgid="2496109652768222716">"<xliff:g id="NAME">%1$s</xliff:g> अधिलिखित करायचे?"</string>
diff --git a/res/values-ne/inspector_strings.xml b/res/values-ne/inspector_strings.xml
index e9780af..c9acb58 100644
--- a/res/values-ne/inspector_strings.xml
+++ b/res/values-ne/inspector_strings.xml
@@ -27,7 +27,7 @@
<string name="handler_app_unknown" msgid="5911661530593229287">"अज्ञात"</string>
<string name="metadata_dimensions" msgid="6112907724016659801">"उचाइ तथा चौडाइ"</string>
<string name="metadata_dimensions_format" msgid="6138765871412005962">"<xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g> - <xliff:g id="MEGAPIXELS">%3$,.1f</xliff:g> एम. पि."</string>
- <string name="metadata_coordinates" msgid="6897383227370702734">"तस्बिर खिचेको स्थानका भौगोलिक स्थितिहरू"</string>
+ <string name="metadata_coordinates" msgid="6897383227370702734">"फोटो खिचेको स्थानका भौगोलिक स्थितिहरू"</string>
<string name="metadata_coordinates_format" msgid="1402724596764547761">"<xliff:g id="LATITUDE">%1$,.3f</xliff:g>, <xliff:g id="LONGITUDE">%2$,.3f</xliff:g>"</string>
<string name="metadata_altitude" msgid="8063792127436794294">"उचाइ"</string>
<string name="metadata_camera" msgid="2363009732801281319">"क्यामेरा"</string>
@@ -35,7 +35,7 @@
<string name="metadata_aperture" msgid="6538741952698935357">"अपार्चर"</string>
<string name="metadata_shutter_speed" msgid="8204739885103326131">"सटरको गति"</string>
<string name="metadata_duration" msgid="3115494422055472715">"अवधि"</string>
- <string name="metadata_date_time" msgid="1090351199248114406">"तस्बिर खिचेको समय"</string>
+ <string name="metadata_date_time" msgid="1090351199248114406">"फोटो खिचेको समय"</string>
<string name="metadata_focal_length" msgid="3440735161407699893">"फोकल लम्बाइ"</string>
<string name="metadata_focal_format" msgid="8542211707962355623">"<xliff:g id="LENGTH">%1$.2f </xliff:g> मि. मि."</string>
<string name="metadata_iso_speed_ratings" msgid="1699781252899759058">"ISO बराबर"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 5c4d722..9922e75 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -233,7 +233,7 @@
<string name="authentication_required" msgid="8030880723643436099">"ଏହି ଡିରେକ୍ଟୋରୀ ଦେଖିବାକୁ, <xliff:g id="NAME">%1$s</xliff:g>ରେ ସାଇନ୍ କରନ୍ତୁ"</string>
<string name="cant_display_content" msgid="8633226333229417237">"ଜଣ୍ଟେଣ୍ଟ ଦେଖାଇ ପାରିବ ନାହିଁ"</string>
<string name="sign_in" msgid="6253762676723505592">"ସାଇନ୍-ଇନ୍ କରନ୍ତୁ"</string>
- <string name="new_archive_file_name" msgid="1604650338077249838">"ସଂଗ୍ରହ<xliff:g id="EXTENSION">%s</xliff:g>"</string>
+ <string name="new_archive_file_name" msgid="1604650338077249838">"ଆର୍କାଇଭ<xliff:g id="EXTENSION">%s</xliff:g>"</string>
<string name="overwrite_file_confirmation_message" msgid="2496109652768222716">"<xliff:g id="NAME">%1$s</xliff:g>ଙ୍କୁ ବଦଳାଇବେ?"</string>
<string name="continue_in_background" msgid="1974214559047793331">"ବ୍ୟାକଗ୍ରାଉଣ୍ଡରେ ଜାରିରଖନ୍ତୁ"</string>
<plurals name="selected_count" formatted="false" msgid="7555250236512981129">
diff --git a/res/values-ur/inspector_strings.xml b/res/values-ur/inspector_strings.xml
index 3a6904b..8173ada 100644
--- a/res/values-ur/inspector_strings.xml
+++ b/res/values-ur/inspector_strings.xml
@@ -18,7 +18,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="inspector_title" msgid="1924760928091740238">"معلومات"</string>
<string name="inspector_load_error" msgid="7522190243413249291">"فائل کى معلومات لوڈ نہیں کی جا سکی"</string>
- <string name="inspector_debug_section" msgid="2576052661505700421">"ڈیبگ کی معلومات (ڈیولپر فقط)"</string>
+ <string name="inspector_debug_section" msgid="2576052661505700421">"ڈیبگ کی معلومات (ڈویلپر فقط)"</string>
<string name="inspector_debug_metadata_section" msgid="5875140675600744846">"خام میٹا ڈیٹا: <xliff:g id="METADATATYPE">%1$s</xliff:g>"</string>
<string name="inspector_metadata_section" msgid="6077622515328240575">"میڈیا کی تفصیلات"</string>
<string name="handler_app_file_opens_with" msgid="5272329600389613550">"اس قسم کی فائل اس کے ساتھ کُھلتی ہے"</string>
diff --git a/src/com/android/documentsui/AbstractActionHandler.java b/src/com/android/documentsui/AbstractActionHandler.java
index 0c612ed..d2f7e41 100644
--- a/src/com/android/documentsui/AbstractActionHandler.java
+++ b/src/com/android/documentsui/AbstractActionHandler.java
@@ -745,7 +745,7 @@
public void onRootLoaded(@Nullable RootInfo root) {
if (root == null) {
// There is no such root in the other profile. Maybe the provider is missing on
- // the other profile. Create a dummy root and open it to show error message.
+ // the other profile. Create a placeholder root and open it to show error message.
root = RootInfo.copyRootInfo(mOriginalRoot);
root.userId = mSelectedUserId;
}
diff --git a/src/com/android/documentsui/BaseActivity.java b/src/com/android/documentsui/BaseActivity.java
index 8c0d969..5efb9a9 100644
--- a/src/com/android/documentsui/BaseActivity.java
+++ b/src/com/android/documentsui/BaseActivity.java
@@ -934,7 +934,7 @@
getMainLooper().getQueue().addIdleHandler(new IdleHandler() {
@Override
public boolean queueIdle() {
- // If startup benchmark is requested by a whitelisted testing package, then
+ // If startup benchmark is requested by an allowedlist testing package, then
// close the activity once idle, and notify the testing activity.
if (getIntent().getBooleanExtra(EXTRA_BENCHMARK, false) &&
BENCHMARK_TESTING_PACKAGE.equals(getCallingPackage())) {
diff --git a/src/com/android/documentsui/DocsSelectionHelper.java b/src/com/android/documentsui/DocsSelectionHelper.java
index b7a720c..956527a 100644
--- a/src/com/android/documentsui/DocsSelectionHelper.java
+++ b/src/com/android/documentsui/DocsSelectionHelper.java
@@ -37,10 +37,10 @@
private final DelegateFactory mFactory;
- // initialize to a dummy object incase we get some input
+ // initialize to a stub object incase we get some input
// event drive calls before we're properly initialized.
// See: b/69306667.
- private SelectionTracker<String> mDelegate = new DummySelectionTracker<>();
+ private SelectionTracker<String> mDelegate = new StubSelectionTracker<>();
@VisibleForTesting
DocsSelectionHelper(DelegateFactory factory) {
diff --git a/src/com/android/documentsui/DrawerController.java b/src/com/android/documentsui/DrawerController.java
index cb53616..56b3a87 100644
--- a/src/com/android/documentsui/DrawerController.java
+++ b/src/com/android/documentsui/DrawerController.java
@@ -55,7 +55,7 @@
DrawerLayout layout = (DrawerLayout) activity.findViewById(R.id.drawer_layout);
if (layout == null) {
- return new DummyDrawerController();
+ return new StubDrawerController();
}
View drawer = activity.findViewById(R.id.drawer_roots);
@@ -76,8 +76,8 @@
/**
* Returns a controller suitable for {@code Layout}.
*/
- static DrawerController createDummy() {
- return new DummyDrawerController();
+ static DrawerController createStub() {
+ return new StubDrawerController();
}
private static int calculateDrawerWidth(Activity activity) {
@@ -235,9 +235,9 @@
}
/*
- * Dummy controller useful with clients that don't host a real drawer.
+ * Stub controller useful with clients that don't host a real drawer.
*/
- private static final class DummyDrawerController extends DrawerController {
+ private static final class StubDrawerController extends DrawerController {
@Override
public void setOpen(boolean open) {}
diff --git a/src/com/android/documentsui/DummyProfileTabsAddons.java b/src/com/android/documentsui/StubProfileTabsAddons.java
similarity index 86%
rename from src/com/android/documentsui/DummyProfileTabsAddons.java
rename to src/com/android/documentsui/StubProfileTabsAddons.java
index 697025e..cac1759 100644
--- a/src/com/android/documentsui/DummyProfileTabsAddons.java
+++ b/src/com/android/documentsui/StubProfileTabsAddons.java
@@ -17,9 +17,9 @@
package com.android.documentsui;
/**
- * A dummy {@ProfileTabsAddons} implementation.
+ * A stub {@ProfileTabsAddons} implementation.
*/
-public class DummyProfileTabsAddons implements ProfileTabsAddons {
+public class StubProfileTabsAddons implements ProfileTabsAddons {
@Override
public void setEnabled(boolean enabled) {
diff --git a/src/com/android/documentsui/DummySelectionTracker.java b/src/com/android/documentsui/StubSelectionTracker.java
similarity index 91%
rename from src/com/android/documentsui/DummySelectionTracker.java
rename to src/com/android/documentsui/StubSelectionTracker.java
index 49b9ad9..1a39214 100644
--- a/src/com/android/documentsui/DummySelectionTracker.java
+++ b/src/com/android/documentsui/StubSelectionTracker.java
@@ -26,10 +26,11 @@
import java.util.Set;
/**
- * A dummy SelectionTracker used by DocsSelectionHelper before a real SelectionTracker has been
+ * A stub SelectionTracker used by DocsSelectionHelper before a real SelectionTracker has been
* initialized by DirectoryFragment.
+ * @param <K> Selection key type which extends {@link SelectionTracker}.
*/
-public class DummySelectionTracker<K> extends SelectionTracker<K> {
+public class StubSelectionTracker<K> extends SelectionTracker<K> {
@Override
public void addObserver(SelectionObserver observer) {
diff --git a/src/com/android/documentsui/base/DummyLookup.java b/src/com/android/documentsui/base/StubLookup.java
similarity index 79%
rename from src/com/android/documentsui/base/DummyLookup.java
rename to src/com/android/documentsui/base/StubLookup.java
index 11a6375..2a2dc9b 100644
--- a/src/com/android/documentsui/base/DummyLookup.java
+++ b/src/com/android/documentsui/base/StubLookup.java
@@ -17,8 +17,10 @@
/**
* Lookup that always returns null.
+ * @param <K> input type (the "key") which implements {@link Lookup}.
+ * @param <V> output type (the "value") which implements {@link Lookup}.
*/
-public final class DummyLookup<K, V> implements Lookup<K, V> {
+public final class StubLookup<K, V> implements Lookup<K, V> {
@Override
public V lookup(K key) {
return null;
diff --git a/src/com/android/documentsui/dirlist/DirectoryFragment.java b/src/com/android/documentsui/dirlist/DirectoryFragment.java
index a079ab1..ec396ff 100644
--- a/src/com/android/documentsui/dirlist/DirectoryFragment.java
+++ b/src/com/android/documentsui/dirlist/DirectoryFragment.java
@@ -368,7 +368,7 @@
mRecView.setItemAnimator(new DirectoryItemAnimator());
mInjector = mActivity.getInjector();
- // Initially, this selection tracker (delegator) uses a dummy implementation, so it must be
+ // Initially, this selection tracker (delegator) uses a stub implementation, so it must be
// updated (reset) when necessary things are ready.
mSelectionMgr = mInjector.selectionMgr;
mModel = mInjector.getModel();
@@ -493,7 +493,7 @@
this::getModelId,
mRecView::findChildViewUnder,
DocumentsApplication.getDragAndDropManager(mActivity))
- : DragStartListener.DUMMY;
+ : DragStartListener.STUB;
{
// Limiting the scope of the localTracker so nobody uses it.
diff --git a/src/com/android/documentsui/dirlist/DocumentsAdapter.java b/src/com/android/documentsui/dirlist/DocumentsAdapter.java
index 7d09d68..41ce73c 100644
--- a/src/com/android/documentsui/dirlist/DocumentsAdapter.java
+++ b/src/com/android/documentsui/dirlist/DocumentsAdapter.java
@@ -36,8 +36,8 @@
/**
* DocumentsAdapter provides glue between a directory Model, and RecyclerView. We've
* abstracted this a bit in order to decompose some specialized support
- * for adding dummy layout objects (@see SectionBreakDocumentsAdapter). Handling of the
- * dummy layout objects was error prone when interspersed with the core mode / adapter code.
+ * for adding stub layout objects (@see SectionBreakDocumentsAdapter). Handling of the
+ * stub layout objects was error prone when interspersed with the core mode / adapter code.
*
* @see ModelBackedDocumentsAdapter
* @see DirectoryAddonsAdapter
diff --git a/src/com/android/documentsui/dirlist/DragStartListener.java b/src/com/android/documentsui/dirlist/DragStartListener.java
index 8fe0872..0adddcc 100644
--- a/src/com/android/documentsui/dirlist/DragStartListener.java
+++ b/src/com/android/documentsui/dirlist/DragStartListener.java
@@ -48,7 +48,7 @@
*/
interface DragStartListener {
- static final DragStartListener DUMMY = new DragStartListener() {
+ DragStartListener STUB = new DragStartListener() {
@Override
public boolean onDragEvent(MotionEvent event) {
return false;
diff --git a/src/com/android/documentsui/files/FilesActivity.java b/src/com/android/documentsui/files/FilesActivity.java
index a256726..7c09811 100644
--- a/src/com/android/documentsui/files/FilesActivity.java
+++ b/src/com/android/documentsui/files/FilesActivity.java
@@ -37,7 +37,6 @@
import com.android.documentsui.BaseActivity;
import com.android.documentsui.DocsSelectionHelper;
import com.android.documentsui.DocumentsApplication;
-import com.android.documentsui.DummyProfileTabsAddons;
import com.android.documentsui.FocusManager;
import com.android.documentsui.Injector;
import com.android.documentsui.MenuManager.DirectoryDetails;
@@ -49,6 +48,7 @@
import com.android.documentsui.R;
import com.android.documentsui.SharedInputHandler;
import com.android.documentsui.ShortcutsUpdater;
+import com.android.documentsui.StubProfileTabsAddons;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.Features;
import com.android.documentsui.base.RootInfo;
@@ -76,7 +76,7 @@
private Injector<ActionHandler<FilesActivity>> mInjector;
private ActivityInputHandler mActivityInputHandler;
private SharedInputHandler mSharedInputHandler;
- private final ProfileTabsAddons mProfileTabsAddonsStub = new DummyProfileTabsAddons();
+ private final ProfileTabsAddons mProfileTabsAddonsStub = new StubProfileTabsAddons();
public FilesActivity() {
super(R.layout.files_activity, TAG);
@@ -151,7 +151,7 @@
mInjector.searchManager = mSearchManager;
- // No profile tabs will be shown on FilesActivity. Use a dummy to avoid unnecessary
+ // No profile tabs will be shown on FilesActivity. Use a stub to avoid unnecessary
// operations.
mInjector.profileTabsController = new ProfileTabsController(
mInjector.selectionMgr,
diff --git a/src/com/android/documentsui/inspector/DebugView.java b/src/com/android/documentsui/inspector/DebugView.java
index ffd4b7e..908d192 100644
--- a/src/com/android/documentsui/inspector/DebugView.java
+++ b/src/com/android/documentsui/inspector/DebugView.java
@@ -27,8 +27,8 @@
import com.android.documentsui.R;
import com.android.documentsui.base.DocumentInfo;
-import com.android.documentsui.base.DummyLookup;
import com.android.documentsui.base.Lookup;
+import com.android.documentsui.base.StubLookup;
import com.android.documentsui.inspector.InspectorController.DebugDisplay;
import java.text.NumberFormat;
@@ -47,7 +47,7 @@
private final Context mContext;
private final Resources mRes;
- private Lookup<String, Executor> mExecutors = new DummyLookup<>();
+ private Lookup<String, Executor> mExecutors = new StubLookup<>();
public DebugView(Context context) {
this(context, null);
diff --git a/src/com/android/documentsui/sidebar/RootItem.java b/src/com/android/documentsui/sidebar/RootItem.java
index 9af396e..a0a3210 100644
--- a/src/com/android/documentsui/sidebar/RootItem.java
+++ b/src/com/android/documentsui/sidebar/RootItem.java
@@ -210,13 +210,13 @@
}
/**
- * Creates a dummy root item for a user. A dummy root item is used as a place holder when
+ * Creates a stub root item for a user. A stub root item is used as a place holder when
* there is no such root available. We can therefore show the item on the UI.
*/
- public static RootItem createDummyItem(RootItem item, UserId targetUser) {
- RootInfo dummyRootInfo = RootInfo.copyRootInfo(item.root);
- dummyRootInfo.userId = targetUser;
- RootItem dummy = new RootItem(dummyRootInfo, item.mActionHandler, item.mMaybeShowBadge);
- return dummy;
+ public static RootItem createStubItem(RootItem item, UserId targetUser) {
+ RootInfo stubRootInfo = RootInfo.copyRootInfo(item.root);
+ stubRootInfo.userId = targetUser;
+ RootItem stub = new RootItem(stubRootInfo, item.mActionHandler, item.mMaybeShowBadge);
+ return stub;
}
}
diff --git a/src/com/android/documentsui/sidebar/RootItemListBuilder.java b/src/com/android/documentsui/sidebar/RootItemListBuilder.java
index 4bdce15..b29bd0d 100644
--- a/src/com/android/documentsui/sidebar/RootItemListBuilder.java
+++ b/src/com/android/documentsui/sidebar/RootItemListBuilder.java
@@ -37,7 +37,7 @@
* selected user.
*
* <p>If no root of the selected user was added but that of the other user was added,
- * a dummy root of that root for the selected user will be generated.
+ * a stub root of that root for the selected user will be generated.
*
* <p>The builder group the roots using {@link Item#stringId} as key.
*
@@ -45,9 +45,9 @@
* itemC[10], itemX[0],itemY[10] where root itemX, itemY do not support cross profile.
*
* <p>When the selected user is user 0, {@link #getList()} returns itemA[0], itemB[0],
- * dummyC[0], itemX[0], itemY[10].
+ * stubC[0], itemX[0], itemY[10].
*
- * <p>When the selected user is user 10, {@link #getList()} returns itemA[10], dummyB[10],
+ * <p>When the selected user is user 10, {@link #getList()} returns itemA[10], stubB[10],
* itemC[10], itemX[0], itemY[10].
*/
class RootItemListBuilder {
@@ -87,7 +87,7 @@
return items;
}
- // If the root supports cross-profile, we return the added root or create a dummy root if
+ // If the root supports cross-profile, we return the added root or create a stub root if
// it was not added for the selected user.
for (RootItem item : items) {
if (item.userId.equals(mSelectedUser)) {
@@ -96,6 +96,6 @@
}
}
- return Collections.singletonList(RootItem.createDummyItem(testRootItem, mSelectedUser));
+ return Collections.singletonList(RootItem.createStubItem(testRootItem, mSelectedUser));
}
}
diff --git a/src/com/android/documentsui/sidebar/SpacerItem.java b/src/com/android/documentsui/sidebar/SpacerItem.java
index d0f49c9..44dd75c 100644
--- a/src/com/android/documentsui/sidebar/SpacerItem.java
+++ b/src/com/android/documentsui/sidebar/SpacerItem.java
@@ -25,7 +25,7 @@
import com.android.documentsui.base.UserId;
/**
- * Dummy {@link Item} for dividers between different types of {@link Item}s.
+ * Stub {@link Item} for dividers between different types of {@link Item}s.
*/
class SpacerItem extends Item {
private static final String TAG = "SpacerItem";
diff --git a/src/com/android/documentsui/util/VersionUtils.java b/src/com/android/documentsui/util/VersionUtils.java
index 58ae3cd..eecd631 100644
--- a/src/com/android/documentsui/util/VersionUtils.java
+++ b/src/com/android/documentsui/util/VersionUtils.java
@@ -31,6 +31,6 @@
*/
public static boolean isAtLeastR() {
return Build.VERSION.CODENAME.equals("R")
- || (Build.VERSION.CODENAME.equals("REL") && Build.VERSION.SDK_INT >= 30);
+ || Build.VERSION.SDK_INT >= 30;
}
}
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index cb43811..d5e9a60 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -9,7 +9,8 @@
<application android:label="DocumentsUI Tests">
<uses-library android:name="android.test.runner" />
- <activity android:name="com.android.documentsui.SettingsActivity">
+ <activity android:name="com.android.documentsui.SettingsActivity"
+ android:exported="true">
<intent-filter>
<action android:name="android.provider.action.DOCUMENT_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -20,7 +21,8 @@
</activity>
<!--Needed for demo'ing and functional testing the open in provider feature in inspector -->
- <activity android:name="com.android.documentsui.TestProviderActivity">
+ <activity android:name="com.android.documentsui.TestProviderActivity"
+ android:exported="true">
<intent-filter>
<action android:name="android.provider.action.DOCUMENT_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -30,7 +32,8 @@
</intent-filter>
</activity>
- <activity android:name="com.android.documentsui.AuthenticationActivity">
+ <activity android:name="com.android.documentsui.AuthenticationActivity"
+ android:exported="true">
<intent-filter>
<action android:name="com.android.documentsui.test.action.AUTHENTICATE" />
<category android:name="android.intent.category.DEFAULT" />
@@ -130,6 +133,7 @@
<service android:name="com.android.documentsui.services.TestNotificationService"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"
+ android:exported="true"
android:process="com.android.documentsui">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService" />
diff --git a/tests/common/com/android/documentsui/InspectorProvider.java b/tests/common/com/android/documentsui/InspectorProvider.java
index 1d678d1..7227993 100644
--- a/tests/common/com/android/documentsui/InspectorProvider.java
+++ b/tests/common/com/android/documentsui/InspectorProvider.java
@@ -34,10 +34,10 @@
*
* Structure of the provider.
*
- * Top ------------> Middle ------> Bottom -------> Dummy21 50B
- * openInProvider Dummy1 50B Dummy11 50B Dummy22 150B
- * test.txt Dummy2 150B Dummy12 150B Dummy23 100B
- * update.txt Dummy3 100B Dummy13 100B
+ * Top ------------> Middle ------> Bottom -------> Stub21 50B
+ * openInProvider Stub1 50B Stub11 50B Stub22 150B
+ * test.txt Stub2 150B Stub12 150B Stub23 100B
+ * update.txt Stub3 100B Stub13 100B
* test.jpg
* invalid.jpg
*/
@@ -97,24 +97,24 @@
if("Top".equals(s)) {
MatrixCursor c = createDocCursor(projection);
addFolder(c, "Middle");
- addFileWithSize(c, "dummy1", 50);
- addFileWithSize(c, "dummy2", 150);
- addFileWithSize(c, "dummy3", 100);
+ addFileWithSize(c, "stub1", 50);
+ addFileWithSize(c, "stub2", 150);
+ addFileWithSize(c, "stub3", 100);
return c;
}
else if("Middle".equals(s)) {
MatrixCursor c = createDocCursor(projection);
addFolder(c, "Bottom");
- addFileWithSize(c, "dummy11", 50);
- addFileWithSize(c, "dummy12", 150);
- addFileWithSize(c, "dummy13", 100);
+ addFileWithSize(c, "stub11", 50);
+ addFileWithSize(c, "stub12", 150);
+ addFileWithSize(c, "stub13", 100);
return c;
}
else if("Bottom".equals(s)) {
MatrixCursor c = createDocCursor(projection);
- addFileWithSize(c, "dummy21", 50);
- addFileWithSize(c, "dummy22", 150);
- addFileWithSize(c, "dummy23", 100);
+ addFileWithSize(c, "stub21", 50);
+ addFileWithSize(c, "stub22", 150);
+ addFileWithSize(c, "stub23", 100);
return c;
}
else {
diff --git a/tests/common/com/android/documentsui/bots/SearchBot.java b/tests/common/com/android/documentsui/bots/SearchBot.java
index 13494f0..d14fd13 100644
--- a/tests/common/com/android/documentsui/bots/SearchBot.java
+++ b/tests/common/com/android/documentsui/bots/SearchBot.java
@@ -49,7 +49,7 @@
*/
public class SearchBot extends Bots.BaseBot {
- // Dumb search layout changes substantially between Ryu and Angler.
+ // Base search layout changes substantially between Ryu and Angler.
@SuppressWarnings("unchecked")
private static final Matcher<View> SEARCH_WIDGET = allOf(
withId(R.id.option_menu_search),
diff --git a/tests/common/com/android/documentsui/dirlist/TestFocusHandler.java b/tests/common/com/android/documentsui/dirlist/TestFocusHandler.java
index 5656655..969ddcf 100644
--- a/tests/common/com/android/documentsui/dirlist/TestFocusHandler.java
+++ b/tests/common/com/android/documentsui/dirlist/TestFocusHandler.java
@@ -22,7 +22,7 @@
import android.view.View;
/**
- * A purely dummy instance of FocusHandler.
+ * A purely placeholder instance of FocusHandler.
*/
public final class TestFocusHandler implements FocusHandler {
diff --git a/tests/common/com/android/documentsui/testing/TestEnv.java b/tests/common/com/android/documentsui/testing/TestEnv.java
index e5c7eb8..3249c8c 100644
--- a/tests/common/com/android/documentsui/testing/TestEnv.java
+++ b/tests/common/com/android/documentsui/testing/TestEnv.java
@@ -192,7 +192,7 @@
DocumentInfo rootDoc = model.getDocument(
ModelId.build(model.mUserId, TestProvidersAccess.HOME.authority, "1"));
- // These are test setup sanity checks, not test assertions.
+ // These are test setup quick checks, not test assertions.
assert rootDoc != null;
assert rootDoc.isDirectory();
assert FOLDER_0.equals(rootDoc);
diff --git a/tests/common/com/android/documentsui/testing/Views.java b/tests/common/com/android/documentsui/testing/Views.java
index 30f79a6..6f5b1a2 100644
--- a/tests/common/com/android/documentsui/testing/Views.java
+++ b/tests/common/com/android/documentsui/testing/Views.java
@@ -34,7 +34,7 @@
}
/*
- * Dummy View object with (x, y) coordinates
+ * Mock View object with (x, y) coordinates
*/
public static View createTestView(float x, float y) {
View view = createTestView();
diff --git a/tests/functional/com/android/documentsui/CancelFromNotificationUiTest.java b/tests/functional/com/android/documentsui/CancelFromNotificationUiTest.java
index 0697056..953e350 100644
--- a/tests/functional/com/android/documentsui/CancelFromNotificationUiTest.java
+++ b/tests/functional/com/android/documentsui/CancelFromNotificationUiTest.java
@@ -47,7 +47,7 @@
public class CancelFromNotificationUiTest extends ActivityTest<FilesActivity> {
private static final String TAG = "CancelFromNotificationUiTest";
- private static final String TARGET_FILE = "dummy.data";
+ private static final String TARGET_FILE = "stub.data";
private static final int BUFFER_SIZE = 10 * 1024 * 1024;
@@ -127,20 +127,20 @@
@Override
public void initTestFiles() throws RemoteException {
try {
- createDummyFile();
+ createStubFile();
} catch (Exception e) {
fail("Initialization failed. " + e.toString());
}
}
- private void createDummyFile() throws Exception {
+ private void createStubFile() throws Exception {
Uri uri = mDocsHelper.createDocument(rootDir0, "*/*", TARGET_FILE);
- byte[] dummyByte = new byte[BUFFER_SIZE];
- mDocsHelper.writeDocument(uri, dummyByte);
+ byte[] stubByte = new byte[BUFFER_SIZE];
+ mDocsHelper.writeDocument(uri, stubByte);
for (int i = 0; i < 49; i++) {
- dummyByte = null;
- dummyByte = new byte[BUFFER_SIZE];
- mDocsHelper.writeAppendDocument(uri, dummyByte, dummyByte.length);
+ stubByte = null;
+ stubByte = new byte[BUFFER_SIZE];
+ mDocsHelper.writeAppendDocument(uri, stubByte, stubByte.length);
}
}
diff --git a/tests/functional/com/android/documentsui/FileDeleteUiTest.java b/tests/functional/com/android/documentsui/FileDeleteUiTest.java
index d68dbd6..5a13962 100644
--- a/tests/functional/com/android/documentsui/FileDeleteUiTest.java
+++ b/tests/functional/com/android/documentsui/FileDeleteUiTest.java
@@ -49,7 +49,7 @@
public class FileDeleteUiTest extends ActivityTest<FilesActivity> {
private static final String TAG = "FileDeleteUiTest";
- private static final int DUMMY_FILE_COUNT = 1000;
+ private static final int STUB_FILE_COUNT = 1000;
private static final int WAIT_TIME_SECONDS = 60;
@@ -126,17 +126,17 @@
@Override
public void initTestFiles() throws RemoteException {
try {
- createDummyFiles();
+ createStubFiles();
} catch (Exception e) {
fail("Initialization failed");
}
}
- private void createDummyFiles() throws Exception {
+ private void createStubFiles() throws Exception {
final ThreadPoolExecutor exec = new ThreadPoolExecutor(
5, 5, 1000L, TimeUnit.MILLISECONDS,
new ArrayBlockingQueue<Runnable>(100, true));
- for (int i = 0; i < DUMMY_FILE_COUNT; i++) {
+ for (int i = 0; i < STUB_FILE_COUNT; i++) {
final String fileName = "file" + String.format("%04d", i) + ".log";
if (exec.getQueue().size() >= 80) {
Thread.sleep(50);
diff --git a/tests/functional/com/android/documentsui/archives/ArchiveHandleTest.java b/tests/functional/com/android/documentsui/archives/ArchiveHandleTest.java
index 50bc916..1e0e95e 100644
--- a/tests/functional/com/android/documentsui/archives/ArchiveHandleTest.java
+++ b/tests/functional/com/android/documentsui/archives/ArchiveHandleTest.java
@@ -555,7 +555,7 @@
"application/zip");
assertThat(transformToIterable(archiveHandle.getEntries()))
- .containsAllIn(sExpectEntries);
+ .containsAtLeastElementsIn(sExpectEntries);
}
@Test
@@ -565,7 +565,7 @@
"application/x-gtar");
assertThat(transformToIterable(archiveHandle.getEntries()))
- .containsAllIn(sExpectEntries);
+ .containsAtLeastElementsIn(sExpectEntries);
}
@Test
@@ -575,7 +575,7 @@
"application/x-compressed-tar");
assertThat(transformToIterable(archiveHandle.getEntries()))
- .containsAllIn(sExpectEntries);
+ .containsAtLeastElementsIn(sExpectEntries);
}
@Test
@@ -585,7 +585,7 @@
"application/x-bzip-compressed-tar");
assertThat(transformToIterable(archiveHandle.getEntries()))
- .containsAllIn(sExpectEntries);
+ .containsAtLeastElementsIn(sExpectEntries);
}
@Test
@@ -595,7 +595,7 @@
"application/x-brotli-compressed-tar");
assertThat(transformToIterable(archiveHandle.getEntries()))
- .containsAllIn(sExpectEntries);
+ .containsAtLeastElementsIn(sExpectEntries);
}
@Test
@@ -605,6 +605,6 @@
"application/x-xz-compressed-tar");
assertThat(transformToIterable(archiveHandle.getEntries()))
- .containsAllIn(sExpectEntries);
+ .containsAtLeastElementsIn(sExpectEntries);
}
}
diff --git a/tests/functional/com/android/documentsui/dirlist/DirectoryAddonsAdapterTest.java b/tests/functional/com/android/documentsui/dirlist/DirectoryAddonsAdapterTest.java
index 303c8e5..bcd1131 100644
--- a/tests/functional/com/android/documentsui/dirlist/DirectoryAddonsAdapterTest.java
+++ b/tests/functional/com/android/documentsui/dirlist/DirectoryAddonsAdapterTest.java
@@ -186,7 +186,7 @@
assertTrue(mAdapter.getItemViewType(index) == type);
}
- private static class DummyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
+ private static class StubAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
@Override
public int getItemCount() {
diff --git a/tests/functional/com/android/documentsui/services/AbstractCopyJobTest.java b/tests/functional/com/android/documentsui/services/AbstractCopyJobTest.java
index eaafb37..7b2cb82 100644
--- a/tests/functional/com/android/documentsui/services/AbstractCopyJobTest.java
+++ b/tests/functional/com/android/documentsui/services/AbstractCopyJobTest.java
@@ -179,7 +179,7 @@
// Init FileCountProgressTracker with 10 docs required to copy.
TestCopyJobProcessTracker<CopyJob.FileCountProgressTracker> tracker =
new TestCopyJobProcessTracker(CopyJob.FileCountProgressTracker.class, 10,
- createJob(newArrayList(mDocs.createFolder(mSrcRoot, "dummyDir"))),
+ createJob(newArrayList(mDocs.createFolder(mSrcRoot, "tempDir"))),
(completed) -> NumberFormat.getPercentInstance().format(completed),
(time) -> mContext.getString(R.string.copy_remaining,
DateUtils.formatDuration((Long) time)));
@@ -213,7 +213,7 @@
// Init ByteCountProgressTracker with 100 KBytes required to copy.
TestCopyJobProcessTracker<CopyJob.ByteCountProgressTracker> tracker =
new TestCopyJobProcessTracker(CopyJob.ByteCountProgressTracker.class, 100000,
- createJob(newArrayList(mDocs.createFolder(mSrcRoot, "dummyDir"))),
+ createJob(newArrayList(mDocs.createFolder(mSrcRoot, "tempDir"))),
(completed) -> NumberFormat.getPercentInstance().format(completed),
(time) -> mContext.getString(R.string.copy_remaining,
DateUtils.formatDuration((Long) time)));
diff --git a/tests/unit/com/android/documentsui/DocsSelectionHelperTest.java b/tests/unit/com/android/documentsui/DocsSelectionHelperTest.java
index e377f0a..3d25007 100644
--- a/tests/unit/com/android/documentsui/DocsSelectionHelperTest.java
+++ b/tests/unit/com/android/documentsui/DocsSelectionHelperTest.java
@@ -102,7 +102,7 @@
mSelectionMgr.reset(mgr);
}
- private static final class TestSelectionManager extends DummySelectionTracker<String> {
+ private static final class TestSelectionManager extends StubSelectionTracker<String> {
private boolean mCleared;
private Map<String, Boolean> mSelected = new HashMap<>();
diff --git a/tests/unit/com/android/documentsui/ModelTest.java b/tests/unit/com/android/documentsui/ModelTest.java
index f9835b1..8257790 100644
--- a/tests/unit/com/android/documentsui/ModelTest.java
+++ b/tests/unit/com/android/documentsui/ModelTest.java
@@ -95,7 +95,7 @@
DirectoryResult r = new DirectoryResult();
r.setCursor(cursor);
- // Instantiate the model with a dummy view adapter and listener that (for now) do nothing.
+ // Instantiate the model with a stub view adapter and listener that (for now) do nothing.
model = new Model(features);
// not sure why we add a listener here at all.
model.addUpdateListener(new TestEventListener<>());
diff --git a/tests/unit/com/android/documentsui/UserIdManagerTest.java b/tests/unit/com/android/documentsui/UserIdManagerTest.java
index 88ac3ed..31fe7d1 100644
--- a/tests/unit/com/android/documentsui/UserIdManagerTest.java
+++ b/tests/unit/com/android/documentsui/UserIdManagerTest.java
@@ -157,7 +157,7 @@
// Returns the both if there are system and managed users.
UserId currentUser = UserId.of(systemUser);
initializeUserIdManager(currentUser, Arrays.asList(systemUser, managedUser1));
- assertThat(mUserIdManager.getUserIds()).isSameAs(mUserIdManager.getUserIds());
+ assertThat(mUserIdManager.getUserIds()).isSameInstanceAs(mUserIdManager.getUserIds());
}
@Test
diff --git a/tests/unit/com/android/documentsui/base/RootInfoTest.java b/tests/unit/com/android/documentsui/base/RootInfoTest.java
index 4639b45..bea4c23 100644
--- a/tests/unit/com/android/documentsui/base/RootInfoTest.java
+++ b/tests/unit/com/android/documentsui/base/RootInfoTest.java
@@ -67,6 +67,6 @@
RootInfo copied = RootInfo.copyRootInfo(rootInfo);
assertThat(copied).isEqualTo(rootInfo);
- assertThat(copied).isNotSameAs(rootInfo);
+ assertThat(copied).isNotSameInstanceAs(rootInfo);
}
}
diff --git a/tests/unit/com/android/documentsui/base/UserIdTest.java b/tests/unit/com/android/documentsui/base/UserIdTest.java
index 2f9f7b2..b9f2d94 100644
--- a/tests/unit/com/android/documentsui/base/UserIdTest.java
+++ b/tests/unit/com/android/documentsui/base/UserIdTest.java
@@ -91,7 +91,7 @@
when(mockContext.createPackageContextAsUser("android", 0, differentUserHandle)).thenReturn(
expectedContext);
- assertThat(UserId.of(differentUserHandle).asContext(mockContext)).isSameAs(
+ assertThat(UserId.of(differentUserHandle).asContext(mockContext)).isSameInstanceAs(
expectedContext);
}
diff --git a/tests/unit/com/android/documentsui/files/ActionHandlerTest.java b/tests/unit/com/android/documentsui/files/ActionHandlerTest.java
index d7bdbd1..fad4062 100644
--- a/tests/unit/com/android/documentsui/files/ActionHandlerTest.java
+++ b/tests/unit/com/android/documentsui/files/ActionHandlerTest.java
@@ -511,15 +511,15 @@
@Test
public void testDragAndDrop_OnReadOnlyRoot() throws Exception {
RootInfo root = new RootInfo(); // root by default has no SUPPORT_CREATE flag
- DragEvent event = DragEvent.obtain(DragEvent.ACTION_DROP, 1, 1, null, null, null,
- null, true);
+ DragEvent event = DragEvent.obtain(DragEvent.ACTION_DROP, 1, 1, 0, 0, null, null, null,
+ null, null, true);
assertFalse(mHandler.dropOn(event, root));
}
@Test
public void testDragAndDrop_OnLibraryRoot() throws Exception {
- DragEvent event = DragEvent.obtain(DragEvent.ACTION_DROP, 1, 1, null, null, null,
- null, true);
+ DragEvent event = DragEvent.obtain(DragEvent.ACTION_DROP, 1, 1, 0, 0, null, null, null,
+ null, null, true);
assertFalse(mHandler.dropOn(event, TestProvidersAccess.RECENTS));
}
@@ -530,8 +530,8 @@
// our Clipper is getting the original CipData passed in.
Object localState = new Object();
ClipData clipData = ClipDatas.createTestClipData();
- DragEvent event = DragEvent.obtain(DragEvent.ACTION_DROP, 1, 1, localState, null, clipData,
- null, true);
+ DragEvent event = DragEvent.obtain(DragEvent.ACTION_DROP, 1, 1, 0, 0, localState, null,
+ clipData, null, null, true);
mHandler.dropOn(event, TestProvidersAccess.DOWNLOADS);
event.recycle();
diff --git a/tests/unit/com/android/documentsui/roots/ProvidersAccessTest.java b/tests/unit/com/android/documentsui/roots/ProvidersAccessTest.java
index e97eab7..944bafa 100644
--- a/tests/unit/com/android/documentsui/roots/ProvidersAccessTest.java
+++ b/tests/unit/com/android/documentsui/roots/ProvidersAccessTest.java
@@ -41,19 +41,11 @@
private static final UserId OTHER_USER = UserId.of(UserId.DEFAULT_USER.getIdentifier() + 1);
private static final Correspondence<RootInfo, RootInfo> USER_ID_MIME_TYPES_CORRESPONDENCE =
- new Correspondence<RootInfo, RootInfo>() {
- @Override
- public boolean compare(@Nullable RootInfo actual, @Nullable RootInfo expected) {
+ Correspondence.from((@Nullable RootInfo actual, @Nullable RootInfo expected) -> {
return actual != null && expected != null
&& Objects.equals(actual.userId, expected.userId)
&& Objects.equals(actual.derivedMimeTypes, expected.derivedMimeTypes);
- }
-
- @Override
- public String toString() {
- return "has same userId and mimeTypes as in";
- }
- };
+ }, "has same userId and mimeTypes as in");
private static RootInfo mNull = buildForMimeTypes((String[]) null);
private static RootInfo mEmpty = buildForMimeTypes();
diff --git a/tests/unit/com/android/documentsui/sidebar/RootItemListBuilderTest.java b/tests/unit/com/android/documentsui/sidebar/RootItemListBuilderTest.java
index 2574ecc..aadb736 100644
--- a/tests/unit/com/android/documentsui/sidebar/RootItemListBuilderTest.java
+++ b/tests/unit/com/android/documentsui/sidebar/RootItemListBuilderTest.java
@@ -173,10 +173,10 @@
List<RootItem> result = mBuilder.getList();
assertThat(result).containsExactlyElementsIn(Lists.newArrayList(
- RootItem.createDummyItem(
+ RootItem.createStubItem(
DOWNLOADS_DEFAULT_USER, TestProvidersAccess.OtherUser.USER_ID),
SDCARD_DEFAULT_USER,
- RootItem.createDummyItem(HOME_DEFAULT_USER, TestProvidersAccess.OtherUser.USER_ID),
+ RootItem.createStubItem(HOME_DEFAULT_USER, TestProvidersAccess.OtherUser.USER_ID),
IMAGE_OTHER_USER,
PICKLES_DEFAULT_USER));
}
diff --git a/tests/unit/com/android/documentsui/sidebar/UserItemsCombinerTest.java b/tests/unit/com/android/documentsui/sidebar/UserItemsCombinerTest.java
index f9549e0..6caf236 100644
--- a/tests/unit/com/android/documentsui/sidebar/UserItemsCombinerTest.java
+++ b/tests/unit/com/android/documentsui/sidebar/UserItemsCombinerTest.java
@@ -61,18 +61,10 @@
);
private static final Correspondence<Item, Item> ITEM_CORRESPONDENCE =
- new Correspondence<Item, Item>() {
- @Override
- public boolean compare(Item actual, Item expected) {
+ Correspondence.from((Item actual, Item expected) -> {
return Objects.equals(actual.title, expected.title)
&& Objects.equals(actual.userId, expected.userId);
- }
-
- @Override
- public String toString() {
- return "has same title and userId as in";
- }
- };
+ }, "has same title and userId as in");
private final State mState = new State();
private final Resources mResources =
diff --git a/tests/unit/com/android/documentsui/sorting/SortModelTest.java b/tests/unit/com/android/documentsui/sorting/SortModelTest.java
index da89030..25c026e 100644
--- a/tests/unit/com/android/documentsui/sorting/SortModelTest.java
+++ b/tests/unit/com/android/documentsui/sorting/SortModelTest.java
@@ -70,14 +70,14 @@
DIMENSION_3
};
- private static final DummyListener DUMMY_LISTENER = new DummyListener();
+ private static final StubListener STUB_LISTENER = new StubListener();
private SortModel mModel;
@Before
public void setUp() {
mModel = new SortModel(Arrays.asList(DIMENSIONS));
- mModel.addListener(DUMMY_LISTENER);
+ mModel.addListener(STUB_LISTENER);
}
@Test
@@ -106,7 +106,7 @@
mModel.setDimensionVisibility(DIMENSION_1.getId(), View.GONE);
assertEquals(View.GONE, DIMENSION_1.getVisibility());
- assertEquals(SortModel.UPDATE_TYPE_VISIBILITY, DUMMY_LISTENER.mLastUpdateType);
+ assertEquals(SortModel.UPDATE_TYPE_VISIBILITY, STUB_LISTENER.mLastUpdateType);
}
@Test
@@ -122,8 +122,8 @@
assertSame(DIMENSION_1, sortedDimension);
assertEquals(DIMENSION_1.getDefaultSortDirection(), sortedDimension.getSortDirection());
- assertSame(mModel, DUMMY_LISTENER.mLastSortModel);
- assertEquals(SortModel.UPDATE_TYPE_SORTING, DUMMY_LISTENER.mLastUpdateType);
+ assertSame(mModel, STUB_LISTENER.mLastSortModel);
+ assertEquals(SortModel.UPDATE_TYPE_SORTING, STUB_LISTENER.mLastUpdateType);
}
@Test
@@ -134,8 +134,8 @@
assertSame(DIMENSION_1, sortedDimension);
assertEquals(SortDimension.SORT_DIRECTION_DESCENDING, sortedDimension.getSortDirection());
- assertSame(mModel, DUMMY_LISTENER.mLastSortModel);
- assertEquals(SortModel.UPDATE_TYPE_SORTING, DUMMY_LISTENER.mLastUpdateType);
+ assertSame(mModel, STUB_LISTENER.mLastSortModel);
+ assertEquals(SortModel.UPDATE_TYPE_SORTING, STUB_LISTENER.mLastUpdateType);
}
@Test
@@ -147,8 +147,8 @@
assertSame(DIMENSION_1, sortedDimension);
assertEquals(SortDimension.SORT_DIRECTION_DESCENDING, sortedDimension.getSortDirection());
- assertSame(mModel, DUMMY_LISTENER.mLastSortModel);
- assertEquals(SortModel.UPDATE_TYPE_SORTING, DUMMY_LISTENER.mLastUpdateType);
+ assertSame(mModel, STUB_LISTENER.mLastSortModel);
+ assertEquals(SortModel.UPDATE_TYPE_SORTING, STUB_LISTENER.mLastUpdateType);
}
@Test
@@ -160,8 +160,8 @@
assertSame(DIMENSION_1, sortedDimension);
assertEquals(SortDimension.SORT_DIRECTION_DESCENDING, sortedDimension.getSortDirection());
- assertSame(mModel, DUMMY_LISTENER.mLastSortModel);
- assertEquals(SortModel.UPDATE_TYPE_SORTING, DUMMY_LISTENER.mLastUpdateType);
+ assertSame(mModel, STUB_LISTENER.mLastSortModel);
+ assertEquals(SortModel.UPDATE_TYPE_SORTING, STUB_LISTENER.mLastUpdateType);
}
@Test
@@ -225,7 +225,7 @@
return mModel.getDimensionById(sortedDimensionId);
}
- private static class DummyListener implements UpdateListener {
+ private static class StubListener implements UpdateListener {
private SortModel mLastSortModel;
private @UpdateType int mLastUpdateType;