summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--proguard.flags1
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/color/breadcrumb_item_ripple_color.xml20
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/color/grid_item_ripple_color.xml28
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/color/horizontal_breadcrumb_color.xml6
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/drawable/breadcrumb_item_background.xml40
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/drawable/breadcrumb_item_mask.xml21
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/drawable/grid_item_mask.xml21
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/drawable/grid_nameplate_background.xml214
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_breadcrumb_arrow.xml14
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/layout/drawer_layout.xml8
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/layout/fixed_layout.xml7
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/layout/item_doc_grid.xml295
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/layout/job_progress_panel.xml43
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/layout/nav_rail_layout.xml8
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/layout/navigation_breadcrumb_item.xml31
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/layout/peek_layout.xml22
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/values/colors.xml5
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/values/dimens.xml16
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/values/styles.xml7
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/values/styles_text.xml7
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/values/themes.xml4
-rw-r--r--res/values-af/strings.xml3
-rw-r--r--res/values-am/strings.xml3
-rw-r--r--res/values-ar/strings.xml9
-rw-r--r--res/values-as/strings.xml3
-rw-r--r--res/values-az/strings.xml3
-rw-r--r--res/values-b+sr+Latn/strings.xml3
-rw-r--r--res/values-be/strings.xml3
-rw-r--r--res/values-bg/strings.xml3
-rw-r--r--res/values-bn/strings.xml9
-rw-r--r--res/values-bs/strings.xml3
-rw-r--r--res/values-ca/strings.xml3
-rw-r--r--res/values-cs/strings.xml3
-rw-r--r--res/values-da/strings.xml3
-rw-r--r--res/values-de/strings.xml3
-rw-r--r--res/values-el/strings.xml3
-rw-r--r--res/values-en-rAU/strings.xml3
-rw-r--r--res/values-en-rGB/strings.xml3
-rw-r--r--res/values-en-rIN/strings.xml3
-rw-r--r--res/values-es-rUS/strings.xml9
-rw-r--r--res/values-es/strings.xml9
-rw-r--r--res/values-et/strings.xml3
-rw-r--r--res/values-eu/strings.xml9
-rw-r--r--res/values-fa/strings.xml3
-rw-r--r--res/values-fi/strings.xml3
-rw-r--r--res/values-fr-rCA/strings.xml3
-rw-r--r--res/values-fr/strings.xml3
-rw-r--r--res/values-gl/strings.xml3
-rw-r--r--res/values-gu/strings.xml3
-rw-r--r--res/values-hi/strings.xml3
-rw-r--r--res/values-hr/strings.xml3
-rw-r--r--res/values-hu/strings.xml3
-rw-r--r--res/values-hy/strings.xml3
-rw-r--r--res/values-in/strings.xml3
-rw-r--r--res/values-is/strings.xml3
-rw-r--r--res/values-it/strings.xml3
-rw-r--r--res/values-iw/strings.xml6
-rw-r--r--res/values-ja/strings.xml3
-rw-r--r--res/values-ka/strings.xml3
-rw-r--r--res/values-kk/strings.xml3
-rw-r--r--res/values-km/strings.xml3
-rw-r--r--res/values-kn/strings.xml3
-rw-r--r--res/values-ko/strings.xml3
-rw-r--r--res/values-ky/strings.xml3
-rw-r--r--res/values-lo/strings.xml3
-rw-r--r--res/values-lt/strings.xml3
-rw-r--r--res/values-lv/strings.xml3
-rw-r--r--res/values-mk/strings.xml3
-rw-r--r--res/values-ml/strings.xml3
-rw-r--r--res/values-mn/strings.xml3
-rw-r--r--res/values-mr/strings.xml3
-rw-r--r--res/values-ms/strings.xml3
-rw-r--r--res/values-my/strings.xml3
-rw-r--r--res/values-nb/strings.xml3
-rw-r--r--res/values-ne/strings.xml3
-rw-r--r--res/values-nl/strings.xml3
-rw-r--r--res/values-or/strings.xml9
-rw-r--r--res/values-pa/strings.xml3
-rw-r--r--res/values-pl/strings.xml9
-rw-r--r--res/values-pt-rBR/strings.xml9
-rw-r--r--res/values-pt-rPT/strings.xml3
-rw-r--r--res/values-pt/strings.xml9
-rw-r--r--res/values-ro/strings.xml3
-rw-r--r--res/values-ru/strings.xml3
-rw-r--r--res/values-si/strings.xml9
-rw-r--r--res/values-sk/strings.xml3
-rw-r--r--res/values-sl/strings.xml3
-rw-r--r--res/values-sq/strings.xml3
-rw-r--r--res/values-sr/strings.xml3
-rw-r--r--res/values-sv/strings.xml3
-rw-r--r--res/values-sw/strings.xml3
-rw-r--r--res/values-ta/strings.xml3
-rw-r--r--res/values-te/strings.xml3
-rw-r--r--res/values-th/strings.xml9
-rw-r--r--res/values-tl/strings.xml3
-rw-r--r--res/values-tr/strings.xml3
-rw-r--r--res/values-uk/strings.xml9
-rw-r--r--res/values-ur/strings.xml3
-rw-r--r--res/values-uz/strings.xml3
-rw-r--r--res/values-vi/strings.xml3
-rw-r--r--res/values-zh-rCN/strings.xml9
-rw-r--r--res/values-zh-rHK/strings.xml3
-rw-r--r--res/values-zh-rTW/strings.xml3
-rw-r--r--res/values-zu/strings.xml3
-rw-r--r--res/values/strings.xml1
-rw-r--r--src/com/android/documentsui/BaseActivity.java8
-rw-r--r--src/com/android/documentsui/HorizontalBreadcrumb.java7
-rw-r--r--src/com/android/documentsui/IconUtils.java49
-rw-r--r--src/com/android/documentsui/JobPanelController.kt26
-rw-r--r--src/com/android/documentsui/dirlist/AnimationView.java43
-rw-r--r--src/com/android/documentsui/dirlist/DirectoryFragment.java24
-rw-r--r--src/com/android/documentsui/files/ActionHandler.java14
-rw-r--r--src/com/android/documentsui/files/FilesActivity.java14
-rw-r--r--src/com/android/documentsui/loaders/BaseFileLoader.kt12
-rw-r--r--src/com/android/documentsui/loaders/FolderLoader.kt2
-rw-r--r--src/com/android/documentsui/peek/PeekFragment.kt32
-rw-r--r--src/com/android/documentsui/peek/PeekViewManager.kt83
-rw-r--r--src/com/android/documentsui/picker/PickActivity.java4
-rw-r--r--src/com/android/documentsui/util/FlagUtils.kt2
-rw-r--r--tests/Android.bp3
-rw-r--r--tests/common/com/android/documentsui/bots/Bots.java4
-rw-r--r--tests/common/com/android/documentsui/bots/DirectoryListBot.java4
-rw-r--r--tests/common/com/android/documentsui/bots/PeekBot.kt50
-rw-r--r--tests/common/com/android/documentsui/testing/MutableJobProgress.kt32
-rw-r--r--tests/common/com/android/documentsui/testing/TestPeekViewManager.kt34
-rw-r--r--tests/functional/com/android/documentsui/JobPanelUiTest.kt93
-rw-r--r--tests/functional/com/android/documentsui/peek/PeekUiTest.kt68
-rw-r--r--tests/unit/com/android/documentsui/JobPanelControllerTest.kt14
-rw-r--r--tests/unit/com/android/documentsui/files/ActionHandlerTest.java7
129 files changed, 1220 insertions, 558 deletions
diff --git a/proguard.flags b/proguard.flags
index 76449d4e9..34071fa6d 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -106,6 +106,7 @@
int dir_menu_view_in_owner;
int drawer_layout;
int inspector_details_view;
+ int job_progress_panel_title;
int option_menu_create_dir;
int option_menu_debug;
int option_menu_extract_all;
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/color/breadcrumb_item_ripple_color.xml b/res/flag(com.android.documentsui.flags.use_material3)/color/breadcrumb_item_ripple_color.xml
new file mode 100644
index 000000000..1ca24551e
--- /dev/null
+++ b/res/flag(com.android.documentsui.flags.use_material3)/color/breadcrumb_item_ripple_color.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2025 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:alpha="@dimen/ripple_overlay_alpha" android:color="?attr/colorOnSurfaceVariant"/>
+</selector> \ No newline at end of file
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/color/grid_item_ripple_color.xml b/res/flag(com.android.documentsui.flags.use_material3)/color/grid_item_ripple_color.xml
new file mode 100644
index 000000000..85e5b46ce
--- /dev/null
+++ b/res/flag(com.android.documentsui.flags.use_material3)/color/grid_item_ripple_color.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2025 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_enabled="false" android:color="@android:color/transparent" />
+ <!-- By default <ripple> introduces a gray-ish layer for the focused state which we don't
+ want, hence explicitly setting focused ripple color to transparent to get rid of that.
+ -->
+ <item android:state_focused="true" android:color="@android:color/transparent" />
+ <item android:state_selected="true" android:alpha="@dimen/ripple_overlay_alpha"
+ android:color="?attr/colorOnPrimaryContainer" />
+ <item android:alpha="@dimen/ripple_overlay_alpha"
+ android:color="?attr/colorOnSurface" />
+</selector>
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/color/horizontal_breadcrumb_color.xml b/res/flag(com.android.documentsui.flags.use_material3)/color/horizontal_breadcrumb_color.xml
index ab511326d..f615b257c 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/color/horizontal_breadcrumb_color.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/color/horizontal_breadcrumb_color.xml
@@ -15,7 +15,7 @@
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_enabled="true"
- android:color="?android:colorAccent" />
- <item android:color="?android:attr/colorControlNormal" />
+ <item android:state_enabled="false"
+ android:color="?attr/colorOnSurface" />
+ <item android:color="?attr/colorOnSurfaceVariant" />
</selector>
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/drawable/breadcrumb_item_background.xml b/res/flag(com.android.documentsui.flags.use_material3)/drawable/breadcrumb_item_background.xml
index 8e6282199..3ca0191cd 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/drawable/breadcrumb_item_background.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/drawable/breadcrumb_item_background.xml
@@ -17,25 +17,37 @@
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
- android:color="?attr/colorControlHighlight">
+ android:color="@color/breadcrumb_item_ripple_color">
<item
android:id="@android:id/mask"
- android:drawable="@android:color/white"/>
+ android:drawable="@drawable/breadcrumb_item_mask"/>
<item>
<selector>
- <item
- app:state_highlighted="true"
- android:drawable="@color/item_breadcrumb_background_hovered"/>
- <item
- app:state_highlighted="false"
- android:drawable="@android:color/transparent">
- <corners
- android:topLeftRadius="2dp"
- android:topRightRadius="2dp"
- android:bottomLeftRadius="2dp"
- android:bottomRightRadius="2dp"
- />
+ <item android:state_pressed="true">
+ <shape android:tint="?attr/colorOnSurfaceVariant">
+ <corners android:radius="@dimen/breadcrumb_item_height" />
+ <solid android:color="@color/overlay_hover_color_percentage" />
+ </shape>
+ </item>
+ <item android:state_focused="true">
+ <shape>
+ <corners android:radius="@dimen/breadcrumb_item_height" />
+ <stroke
+ android:width="@dimen/focus_ring_width"
+ android:color="?attr/colorSecondary" />
+ </shape>
+ </item>
+ <item android:state_hovered="true">
+ <shape android:tint="?attr/colorOnSurfaceVariant">
+ <corners android:radius="@dimen/breadcrumb_item_height" />
+ <solid android:color="@color/overlay_hover_color_percentage" />
+ </shape>
+ </item>
+
+ <!-- Default: use the container background. -->
+ <item>
+ <color android:color="@android:color/transparent"/>
</item>
</selector>
</item>
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/drawable/breadcrumb_item_mask.xml b/res/flag(com.android.documentsui.flags.use_material3)/drawable/breadcrumb_item_mask.xml
new file mode 100644
index 000000000..c64be0765
--- /dev/null
+++ b/res/flag(com.android.documentsui.flags.use_material3)/drawable/breadcrumb_item_mask.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2025 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners android:radius="@dimen/breadcrumb_item_height" />
+ <!-- The color here doesn't matter, it's just being used as a mask. -->
+ <solid android:color="@android:color/white" />
+</shape> \ No newline at end of file
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/drawable/grid_item_mask.xml b/res/flag(com.android.documentsui.flags.use_material3)/drawable/grid_item_mask.xml
new file mode 100644
index 000000000..98473059c
--- /dev/null
+++ b/res/flag(com.android.documentsui.flags.use_material3)/drawable/grid_item_mask.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2025 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners android:radius="@dimen/grid_item_nameplate_radius" />
+ <!-- The color here doesn't matter, it's just being used as a mask. -->
+ <solid android:color="@android:color/white" />
+</shape> \ No newline at end of file
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/drawable/grid_nameplate_background.xml b/res/flag(com.android.documentsui.flags.use_material3)/drawable/grid_nameplate_background.xml
index 502efaede..087fc1c15 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/drawable/grid_nameplate_background.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/drawable/grid_nameplate_background.xml
@@ -14,56 +14,124 @@
limitations under the License.
-->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- selected -->
- <item
- android:state_focused="true"
- android:state_hovered="true"
- android:state_selected="true">
- <layer-list>
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="@color/grid_item_ripple_color">
+
+ <!-- The mask below only works for the ripple itself, doesn't work for other <item>s, we
+ need to explicitly apply the drawable if the other items also need this mask. -->
+ <item android:id="@android:id/mask" android:drawable="@drawable/grid_item_mask"/>
+
+ <item>
+ <selector>
+ <!-- selected -->
<item
- android:bottom="@dimen/focus_ring_gap"
- android:left="@dimen/focus_ring_gap"
- android:right="@dimen/focus_ring_gap"
- android:top="@dimen/focus_ring_gap">
- <shape>
- <corners android:radius="@dimen/grid_item_nameplate_inner_radius" />
- <solid android:color="?attr/colorPrimaryContainer" />
- </shape>
+ android:state_focused="true"
+ android:state_hovered="true"
+ android:state_selected="true">
+ <layer-list>
+ <item
+ android:bottom="@dimen/focus_ring_gap"
+ android:left="@dimen/focus_ring_gap"
+ android:right="@dimen/focus_ring_gap"
+ android:top="@dimen/focus_ring_gap">
+ <shape>
+ <corners android:radius="@dimen/grid_item_nameplate_inner_radius" />
+ <solid android:color="?attr/colorPrimaryContainer" />
+ </shape>
+ </item>
+ <item
+ android:bottom="@dimen/focus_ring_gap"
+ android:left="@dimen/focus_ring_gap"
+ android:right="@dimen/focus_ring_gap"
+ android:top="@dimen/focus_ring_gap">
+ <shape android:tint="?attr/colorOnPrimaryContainer">
+ <corners android:radius="@dimen/grid_item_nameplate_inner_radius" />
+ <solid android:color="@color/overlay_hover_color_percentage" />
+ </shape>
+ </item>
+ <item>
+ <shape>
+ <corners android:radius="@dimen/grid_item_nameplate_radius" />
+ <stroke
+ android:width="@dimen/focus_ring_width"
+ android:color="?attr/colorSecondary" />
+ </shape>
+ </item>
+ </layer-list>
+ </item>
+ <item android:state_selected="true" android:state_focused="true">
+ <layer-list>
+ <item
+ android:bottom="@dimen/focus_ring_gap"
+ android:left="@dimen/focus_ring_gap"
+ android:right="@dimen/focus_ring_gap"
+ android:top="@dimen/focus_ring_gap">
+ <shape>
+ <corners android:radius="@dimen/grid_item_nameplate_inner_radius" />
+ <solid android:color="?attr/colorPrimaryContainer" />
+ </shape>
+ </item>
+ <item>
+ <shape>
+ <corners android:radius="@dimen/grid_item_nameplate_radius" />
+ <stroke
+ android:width="@dimen/focus_ring_width"
+ android:color="?attr/colorSecondary" />
+ </shape>
+ </item>
+ </layer-list>
</item>
<item
- android:bottom="@dimen/focus_ring_gap"
- android:left="@dimen/focus_ring_gap"
- android:right="@dimen/focus_ring_gap"
- android:top="@dimen/focus_ring_gap">
- <shape android:tint="?attr/colorOnPrimaryContainer">
- <corners android:radius="@dimen/grid_item_nameplate_inner_radius" />
- <solid android:color="@color/overlay_hover_color_percentage" />
- </shape>
+ android:state_hovered="true"
+ android:state_selected="true">
+ <layer-list>
+ <item>
+ <shape>
+ <corners android:radius="@dimen/grid_item_nameplate_radius" />
+ <solid android:color="?attr/colorPrimaryContainer" />
+ </shape>
+ </item>
+ <item>
+ <shape android:tint="?attr/colorOnPrimaryContainer">
+ <corners android:radius="@dimen/grid_item_nameplate_radius" />
+ <solid android:color="@color/overlay_hover_color_percentage" />
+ </shape>
+ </item>
+ </layer-list>
</item>
- <item>
+ <item android:state_selected="true">
<shape>
<corners android:radius="@dimen/grid_item_nameplate_radius" />
- <stroke
- android:width="@dimen/focus_ring_width"
- android:color="?attr/colorSecondary" />
+ <solid android:color="?attr/colorPrimaryContainer" />
</shape>
</item>
- </layer-list>
- </item>
- <item android:state_selected="true" android:state_focused="true">
- <layer-list>
+
+ <!-- unselected -->
<item
- android:bottom="@dimen/focus_ring_gap"
- android:left="@dimen/focus_ring_gap"
- android:right="@dimen/focus_ring_gap"
- android:top="@dimen/focus_ring_gap">
- <shape>
- <corners android:radius="@dimen/grid_item_nameplate_inner_radius" />
- <solid android:color="?attr/colorPrimaryContainer" />
- </shape>
+ android:state_focused="true"
+ android:state_hovered="true">
+ <layer-list>
+ <item
+ android:bottom="@dimen/focus_ring_gap"
+ android:left="@dimen/focus_ring_gap"
+ android:right="@dimen/focus_ring_gap"
+ android:top="@dimen/focus_ring_gap">
+ <shape android:tint="?attr/colorOnSurface">
+ <corners android:radius="@dimen/grid_item_nameplate_inner_radius" />
+ <solid android:color="@color/overlay_hover_color_percentage" />
+ </shape>
+ </item>
+ <item>
+ <shape>
+ <corners android:radius="@dimen/grid_item_nameplate_radius" />
+ <stroke
+ android:width="@dimen/focus_ring_width"
+ android:color="?attr/colorSecondary" />
+ </shape>
+ </item>
+ </layer-list>
</item>
- <item>
+ <item android:state_focused="true">
<shape>
<corners android:radius="@dimen/grid_item_nameplate_radius" />
<stroke
@@ -71,70 +139,12 @@
android:color="?attr/colorSecondary" />
</shape>
</item>
- </layer-list>
- </item>
- <item
- android:state_hovered="true"
- android:state_selected="true">
- <layer-list>
- <item>
- <shape>
- <corners android:radius="@dimen/grid_item_nameplate_radius" />
- <solid android:color="?attr/colorPrimaryContainer" />
- </shape>
- </item>
- <item>
- <shape android:tint="?attr/colorOnPrimaryContainer">
- <corners android:radius="@dimen/grid_item_nameplate_radius" />
- <solid android:color="@color/overlay_hover_color_percentage" />
- </shape>
- </item>
- </layer-list>
- </item>
- <item android:state_selected="true">
- <shape>
- <corners android:radius="@dimen/grid_item_nameplate_radius" />
- <solid android:color="?attr/colorPrimaryContainer" />
- </shape>
- </item>
-
- <!-- unselected -->
- <item
- android:state_focused="true"
- android:state_hovered="true">
- <layer-list>
- <item
- android:bottom="@dimen/focus_ring_gap"
- android:left="@dimen/focus_ring_gap"
- android:right="@dimen/focus_ring_gap"
- android:top="@dimen/focus_ring_gap">
+ <item android:state_hovered="true">
<shape android:tint="?attr/colorOnSurface">
- <corners android:radius="@dimen/grid_item_nameplate_inner_radius" />
- <solid android:color="@color/overlay_hover_color_percentage" />
- </shape>
- </item>
- <item>
- <shape>
<corners android:radius="@dimen/grid_item_nameplate_radius" />
- <stroke
- android:width="@dimen/focus_ring_width"
- android:color="?attr/colorSecondary" />
+ <solid android:color="@color/overlay_hover_color_percentage" />
</shape>
</item>
- </layer-list>
- </item>
- <item android:state_focused="true">
- <shape>
- <corners android:radius="@dimen/grid_item_nameplate_radius" />
- <stroke
- android:width="@dimen/focus_ring_width"
- android:color="?attr/colorSecondary" />
- </shape>
- </item>
- <item android:state_hovered="true">
- <shape android:tint="?attr/colorOnSurface">
- <corners android:radius="@dimen/grid_item_nameplate_radius" />
- <solid android:color="@color/overlay_hover_color_percentage" />
- </shape>
+ </selector>
</item>
-</selector> \ No newline at end of file
+</ripple> \ No newline at end of file
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_breadcrumb_arrow.xml b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_breadcrumb_arrow.xml
index 5305b4ae3..8a4aea8ac 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_breadcrumb_arrow.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/drawable/ic_breadcrumb_arrow.xml
@@ -15,12 +15,12 @@
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="24dp"
- android:height="24dp"
- android:autoMirrored="true"
- android:viewportWidth="24"
- android:viewportHeight="24">
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="960"
+ android:viewportHeight="960"
+ android:autoMirrored="true">
<path
- android:fillColor="?android:attr/colorControlNormal"
- android:pathData="M10,6L8.59,7.41 13.17,12l-4.58,4.59L10,18l6,-6 -6,-6z"/>
+ android:fillColor="?attr/colorSecondary"
+ android:pathData="M504,480L320,296L376,240L616,480L376,720L320,664L504,480Z"/>
</vector>
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/layout/drawer_layout.xml b/res/flag(com.android.documentsui.flags.use_material3)/layout/drawer_layout.xml
index aeb85442f..0fe74fe64 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/layout/drawer_layout.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/layout/drawer_layout.xml
@@ -116,4 +116,12 @@
</LinearLayout>
</androidx.drawerlayout.widget.DrawerLayout>
+
+ <!-- Peek overlay -->
+ <FrameLayout
+ android:id="@+id/peek_overlay"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:visibility="gone" />
+
</androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/layout/fixed_layout.xml b/res/flag(com.android.documentsui.flags.use_material3)/layout/fixed_layout.xml
index c2a06122a..4445dd1a6 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/layout/fixed_layout.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/layout/fixed_layout.xml
@@ -131,4 +131,11 @@
</LinearLayout>
+ <!-- Peek overlay -->
+ <FrameLayout
+ android:id="@+id/peek_overlay"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:visibility="gone" />
+
</androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/layout/item_doc_grid.xml b/res/flag(com.android.documentsui.flags.use_material3)/layout/item_doc_grid.xml
index f854cf5f8..a8e3148b4 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/layout/item_doc_grid.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/layout/item_doc_grid.xml
@@ -13,163 +13,170 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/item_root"
- android:layout_width="@dimen/grid_item_width"
- android:layout_height="@dimen/grid_item_height"
- android:layout_margin="@dimen/grid_item_layout_margin"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
android:clickable="true"
android:defaultFocusHighlightEnabled="false"
- android:focusable="true"
- android:paddingEnd="@dimen/grid_item_padding_end"
- android:paddingStart="@dimen/grid_item_padding_start"
- android:paddingTop="@dimen/grid_item_padding_top">
-
-<!-- Main item thumbnail. Comprised of two overlapping images, the
- visibility of which is controlled by code in
- DirectoryFragment.java. -->
-
- <FrameLayout
- android:id="@+id/thumbnail"
- android:layout_width="@dimen/grid_item_thumbnail_width"
- android:layout_height="@dimen/grid_item_thumbnail_height"
- android:layout_centerHorizontal="true"
- android:background="@drawable/grid_thumbnail_background">
-
- <!-- stroke width will be controlled dynamically in the code. -->
- <com.google.android.material.card.MaterialCardView
- android:id="@+id/icon_wrapper"
- android:layout_width="@dimen/grid_item_icon_width"
- android:layout_height="@dimen/grid_item_icon_height"
- android:layout_gravity="center"
- app:cardBackgroundColor="?attr/colorSurfaceContainerLowest"
- app:cardElevation="0dp"
- app:strokeColor="?attr/colorSecondaryContainer"
- app:strokeWidth="0dp">
-
- <com.android.documentsui.GridItemThumbnail
- android:id="@+id/icon_thumb"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:contentDescription="@null"
- android:scaleType="centerCrop"
- android:tint="?attr/gridItemTint"
- android:tintMode="src_over" />
-
- <com.android.documentsui.GridItemThumbnail
- android:id="@+id/icon_mime_lg"
- android:layout_width="@dimen/icon_size"
- android:layout_height="@dimen/icon_size"
+ android:focusable="true">
+
+ <RelativeLayout
+ android:layout_width="@dimen/grid_width"
+ android:layout_height="@dimen/grid_height"
+ android:layout_margin="@dimen/grid_item_margin"
+ android:layout_gravity="center_horizontal"
+ android:paddingEnd="@dimen/grid_item_padding_end"
+ android:paddingStart="@dimen/grid_item_padding_start"
+ android:paddingTop="@dimen/grid_item_padding_top"
+ android:duplicateParentState="true">
+
+ <!-- Main item thumbnail. Comprised of two overlapping images, the
+ visibility of which is controlled by code in
+ DirectoryFragment.java. -->
+
+ <FrameLayout
+ android:id="@+id/thumbnail"
+ android:layout_width="@dimen/grid_item_thumbnail_width"
+ android:layout_height="@dimen/grid_item_thumbnail_height"
+ android:layout_centerHorizontal="true"
+ android:background="@drawable/grid_thumbnail_background">
+
+ <!-- stroke width will be controlled dynamically in the code. -->
+ <com.google.android.material.card.MaterialCardView
+ android:id="@+id/icon_wrapper"
+ android:layout_width="@dimen/grid_item_icon_width"
+ android:layout_height="@dimen/grid_item_icon_height"
android:layout_gravity="center"
- android:contentDescription="@null"
- android:scaleType="fitCenter" />
-
- </com.google.android.material.card.MaterialCardView>
-
- </FrameLayout>
-
- <FrameLayout
- android:id="@+id/preview_icon"
- android:layout_width="@dimen/button_touch_size"
- android:layout_height="@dimen/button_touch_size"
- android:layout_alignParentEnd="true"
- android:layout_alignParentTop="true"
- android:clickable="true"
- android:focusable="true"
- android:pointerIcon="hand">
-
- <ImageView
- android:layout_width="@dimen/zoom_icon_size"
- android:layout_height="@dimen/zoom_icon_size"
- android:layout_gravity="center"
- android:background="@drawable/circle_button_background"
- android:padding="2dp"
- android:scaleType="fitCenter"
- android:src="@drawable/ic_zoom_out" />
-
- </FrameLayout>
-
- <!-- Item nameplate. Has some text fields (title, size, mod-time, etc). -->
-
- <LinearLayout
- android:id="@+id/nameplate"
- android:layout_width="@dimen/grid_item_nameplate_width"
- android:layout_height="@dimen/grid_item_nameplate_height"
- android:layout_below="@id/thumbnail"
- android:layout_marginTop="@dimen/grid_item_nameplate_marginTop"
- android:background="@drawable/grid_nameplate_background"
- android:orientation="vertical"
- android:duplicateParentState="true"
- android:padding="@dimen/grid_item_nameplate_padding">
-
- <!-- Top row. -->
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:orientation="horizontal">
+ app:cardBackgroundColor="?attr/colorSurfaceContainerLowest"
+ app:cardElevation="0dp"
+ app:strokeColor="?attr/colorSecondaryContainer"
+ app:strokeWidth="0dp">
+
+ <com.android.documentsui.GridItemThumbnail
+ android:id="@+id/icon_thumb"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:contentDescription="@null"
+ android:scaleType="centerCrop"
+ android:tint="?attr/gridItemTint"
+ android:tintMode="src_over" />
+
+ <com.android.documentsui.GridItemThumbnail
+ android:id="@+id/icon_mime_lg"
+ android:layout_width="@dimen/icon_size"
+ android:layout_height="@dimen/icon_size"
+ android:layout_gravity="center"
+ android:contentDescription="@null"
+ android:scaleType="fitCenter" />
+
+ </com.google.android.material.card.MaterialCardView>
+
+ </FrameLayout>
+
+ <FrameLayout
+ android:id="@+id/preview_icon"
+ android:layout_width="@dimen/button_touch_size"
+ android:layout_height="@dimen/button_touch_size"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentTop="true"
+ android:clickable="true"
+ android:focusable="true"
+ android:pointerIcon="hand">
<ImageView
- android:id="@+id/icon_profile_badge"
- android:layout_width="@dimen/briefcase_icon_size"
- android:layout_height="@dimen/briefcase_icon_size"
- android:layout_marginEnd="@dimen/briefcase_icon_margin"
- android:contentDescription="@string/a11y_work"
- android:gravity="center_vertical"
- android:src="@drawable/ic_briefcase"
- android:tint="?android:attr/colorAccent" />
-
- <TextView
- android:id="@android:id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:ellipsize="end"
- android:singleLine="true"
- android:textAlignment="center"
- android:textAppearance="@style/FileItemLabelText" />
+ android:layout_width="@dimen/zoom_icon_size"
+ android:layout_height="@dimen/zoom_icon_size"
+ android:layout_gravity="center"
+ android:background="@drawable/circle_button_background"
+ android:padding="2dp"
+ android:scaleType="fitCenter"
+ android:src="@drawable/ic_zoom_out" />
- </LinearLayout>
+ </FrameLayout>
+
+ <!-- Item nameplate. Has some text fields (title, size, mod-time, etc). -->
- <!-- Bottom row. -->
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:orientation="horizontal">
-
- <TextView
- android:id="@+id/details"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginEnd="4dp"
- android:ellipsize="end"
- android:singleLine="true"
- android:textAlignment="viewStart"
- android:textAppearance="@style/ItemCaptionText" />
-
- <TextView
- android:id="@+id/bullet"
- android:layout_width="wrap_content"
+ android:id="@+id/nameplate"
+ android:layout_width="@dimen/grid_item_nameplate_width"
+ android:layout_height="@dimen/grid_item_nameplate_height"
+ android:layout_below="@id/thumbnail"
+ android:layout_marginTop="@dimen/grid_item_nameplate_marginTop"
+ android:background="@drawable/grid_nameplate_background"
+ android:orientation="vertical"
+ android:duplicateParentState="true"
+ android:padding="@dimen/grid_item_nameplate_padding">
+
+ <!-- Top row. -->
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginEnd="4dp"
- android:singleLine="true"
- android:text="@string/bullet"
- android:textAlignment="viewStart"
- android:textAppearance="@style/ItemCaptionText" />
-
- <TextView
- android:id="@+id/date"
- android:layout_width="wrap_content"
+ android:gravity="center"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/icon_profile_badge"
+ android:layout_width="@dimen/briefcase_icon_size"
+ android:layout_height="@dimen/briefcase_icon_size"
+ android:layout_marginEnd="@dimen/briefcase_icon_margin"
+ android:contentDescription="@string/a11y_work"
+ android:gravity="center_vertical"
+ android:src="@drawable/ic_briefcase"
+ android:tint="?android:attr/colorAccent" />
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
+ android:textAlignment="center"
+ android:textAppearance="@style/FileItemLabelText" />
+
+ </LinearLayout>
+
+ <!-- Bottom row. -->
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:ellipsize="end"
- android:singleLine="true"
- android:textAlignment="viewStart"
- android:textAppearance="@style/ItemCaptionText" />
+ android:gravity="center"
+ android:orientation="horizontal">
+
+ <TextView
+ android:id="@+id/details"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="4dp"
+ android:ellipsize="end"
+ android:singleLine="true"
+ android:textAlignment="viewStart"
+ android:textAppearance="@style/ItemCaptionText" />
+
+ <TextView
+ android:id="@+id/bullet"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="4dp"
+ android:singleLine="true"
+ android:text="@string/bullet"
+ android:textAlignment="viewStart"
+ android:textAppearance="@style/ItemCaptionText" />
+
+ <TextView
+ android:id="@+id/date"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:singleLine="true"
+ android:textAlignment="viewStart"
+ android:textAppearance="@style/ItemCaptionText" />
+
+ </LinearLayout>
</LinearLayout>
- </LinearLayout>
+ </RelativeLayout>
-</RelativeLayout> \ No newline at end of file
+</FrameLayout> \ No newline at end of file
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/layout/job_progress_panel.xml b/res/flag(com.android.documentsui.flags.use_material3)/layout/job_progress_panel.xml
new file mode 100644
index 000000000..17f6aa6fc
--- /dev/null
+++ b/res/flag(com.android.documentsui.flags.use_material3)/layout/job_progress_panel.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2025 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+ <com.google.android.material.card.MaterialCardView
+ style="@style/JobProgressPanelStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:id="@+id/job_progress_panel_title"
+ android:text="@string/job_progress_panel_title"
+ android:textAppearance="@style/JobProgressPanelHeaderText"
+ android:layout_margin="@dimen/job_progress_panel_header_margin" />
+ <androidx.recyclerview.widget.RecyclerView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:id="@+id/job_progress_list" />
+ </LinearLayout>
+ </com.google.android.material.card.MaterialCardView>
+</FrameLayout>
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/layout/nav_rail_layout.xml b/res/flag(com.android.documentsui.flags.use_material3)/layout/nav_rail_layout.xml
index bfbb83c17..091444155 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/layout/nav_rail_layout.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/layout/nav_rail_layout.xml
@@ -179,4 +179,12 @@
</LinearLayout>
</androidx.drawerlayout.widget.DrawerLayout>
+
+ <!-- Peek overlay -->
+ <FrameLayout
+ android:id="@+id/peek_overlay"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:visibility="gone" />
+
</androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/layout/navigation_breadcrumb_item.xml b/res/flag(com.android.documentsui.flags.use_material3)/layout/navigation_breadcrumb_item.xml
index 672343795..ba99ac35d 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/layout/navigation_breadcrumb_item.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/layout/navigation_breadcrumb_item.xml
@@ -15,29 +15,20 @@
limitations under the License.
-->
-
-<!--
- CoordinatorLayout is necessary for various components (e.g. Snackbars, and
- floating action buttons) to operate correctly.
--->
-<!--
- focusableInTouchMode is set in order to force key events to go to the activity's global key
- callback, which is necessary for proper event routing. See BaseActivity.onKeyDown.
--->
-
<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:minHeight="48dp"
- android:focusable="true"
- android:gravity="center_vertical"
- android:orientation="horizontal">
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:minHeight="@dimen/breadcrumb_height"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
<TextView
android:id="@+id/breadcrumb_text"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
+ android:layout_height="@dimen/breadcrumb_item_height"
+ android:focusable="true"
+ android:clickable="true"
android:maxWidth="275dp"
android:gravity="center_vertical"
android:maxLines="1"
@@ -47,8 +38,8 @@
<ImageView
android:id="@+id/breadcrumb_arrow"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_width="@dimen/breadcrumb_item_arrow_size"
+ android:layout_height="@dimen/breadcrumb_item_arrow_size"
android:src="@drawable/ic_breadcrumb_arrow"/>
</LinearLayout> \ No newline at end of file
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/layout/peek_layout.xml b/res/flag(com.android.documentsui.flags.use_material3)/layout/peek_layout.xml
new file mode 100644
index 000000000..50102d622
--- /dev/null
+++ b/res/flag(com.android.documentsui.flags.use_material3)/layout/peek_layout.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2025 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/peek_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/peek_overlay_background"
+ android:focusable="false" />
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/values/colors.xml b/res/flag(com.android.documentsui.flags.use_material3)/values/colors.xml
index 84a8f720a..5696288e6 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/values/colors.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/values/colors.xml
@@ -29,6 +29,7 @@
<!-- TODO(b/379776735): remove this after use_material3 flag is launched. -->
<color name="chip_background_disable_color">#fff1f3f4</color>
<color name="menu_search_background">@android:color/transparent</color>
+ <!-- TODO(b/379776735): remove this after use_material3 flag is launched. -->
<color name="item_breadcrumb_background_hovered">#1affffff</color>
<!-- All the colors used inside the drag drop badge don't support Material color attributes
@@ -90,4 +91,8 @@
</shape>
-->
<color name="overlay_hover_color_percentage">#14000000</color> <!-- 8% -->
+
+ <!-- Peek overlay static color. Makes the background dimmer with an 80% opacity. This color is not
+ intended to be dynamic, and is defined specifically for Peek. -->
+ <color name="peek_overlay_background">#CC000000</color> <!-- 80% -->
</resources>
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/values/dimens.xml b/res/flag(com.android.documentsui.flags.use_material3)/values/dimens.xml
index 16f75313c..fa9e436ab 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/values/dimens.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/values/dimens.xml
@@ -43,9 +43,10 @@
<dimen name="progress_bar_height">4dp</dimen>
<fraction name="grid_scale_min">85%</fraction>
<fraction name="grid_scale_max">200%</fraction>
- <dimen name="grid_width">152dp</dimen>
+ <dimen name="grid_width">150dp</dimen>
+ <dimen name="grid_height">132dp</dimen>
<dimen name="grid_section_separator_height">0dp</dimen>
- <dimen name="grid_item_margin">6dp</dimen>
+ <dimen name="grid_item_margin">@dimen/space_small_1</dimen>
<dimen name="grid_padding_horiz">4dp</dimen>
<dimen name="grid_padding_vert">4dp</dimen>
<dimen name="list_item_height">56dp</dimen>
@@ -66,11 +67,11 @@
<dimen name="breadcrumb_item_padding_horizontal">12dp</dimen>
<dimen name="breadcrumb_item_padding_vertical">6dp</dimen>
<dimen name="breadcrumb_item_arrow_padding">@dimen/space_extra_small_2</dimen>
- <dimen name="breadcrumb_item_height">36dp</dimen>
+ <dimen name="breadcrumb_item_height">32dp</dimen>
+ <dimen name="breadcrumb_height">48dp</dimen>
+ <dimen name="breadcrumb_item_arrow_size">16dp</dimen>
<dimen name="dir_elevation">8dp</dimen>
<dimen name="drag_shadow_size">120dp</dimen>
- <dimen name="grid_item_width">150dp</dimen>
- <dimen name="grid_item_height">132dp</dimen>
<dimen name="grid_item_padding_start">@dimen/space_extra_small_2</dimen>
<dimen name="grid_item_padding_end">@dimen/space_extra_small_2</dimen>
<dimen name="grid_item_padding_top">@dimen/space_extra_small_2</dimen>
@@ -79,7 +80,6 @@
<dimen name="grid_item_thumbnail_radius">12dp</dimen>
<dimen name="grid_item_icon_width">64dp</dimen>
<dimen name="grid_item_icon_height">64dp</dimen>
- <dimen name="grid_item_layout_margin">@dimen/space_small_1</dimen>
<dimen name="grid_item_nameplate_width">142dp</dimen>
<dimen name="grid_item_nameplate_height">44dp</dimen>
<dimen name="grid_item_nameplate_padding">4dp</dimen>
@@ -248,4 +248,8 @@
<dimen name="focus_ring_gap">5dp</dimen>
<dimen name="hover_overlay_alpha">0.08</dimen>
<dimen name="ripple_overlay_alpha">0.10</dimen>
+
+ <dimen name="job_progress_panel_width">360dp</dimen>
+ <dimen name="job_progress_panel_margin">@dimen/space_small_1</dimen>
+ <dimen name="job_progress_panel_header_margin">@dimen/space_small_1</dimen>
</resources>
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/values/styles.xml b/res/flag(com.android.documentsui.flags.use_material3)/values/styles.xml
index 6819c12a3..481cd0be8 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/values/styles.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/values/styles.xml
@@ -190,4 +190,11 @@
<item name="android:textColor">@color/nav_rail_item_text_color</item>
<item name="android:textAppearance">@style/NavRailItemTextAppearance</item>
</style>
+
+ <style name="JobProgressPanelStyle" parent="@style/Widget.Material3.CardView.Elevated">
+ <item name="android:layout_marginStart">@dimen/job_progress_panel_margin</item>
+ <item name="android:layout_marginBottom">@dimen/job_progress_panel_margin</item>
+ <item name="cardElevation">1dp</item>
+ <item name="cardBackgroundColor">?attr/colorSurfaceDim</item>
+ </style>
</resources>
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/values/styles_text.xml b/res/flag(com.android.documentsui.flags.use_material3)/values/styles_text.xml
index 37dd8a135..57dbb1212 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/values/styles_text.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/values/styles_text.xml
@@ -96,9 +96,8 @@
<item name="fontFamily">@string/config_fontFamilyMedium</item>
</style>
- <style name="BreadcrumbText" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle">
+ <style name="BreadcrumbText" parent="@style/TextAppearance.Material3.TitleSmall">
<item name="android:textColor">@color/horizontal_breadcrumb_color</item>
- <item name="android:textSize">14sp</item>
<item name="fontFamily">@string/config_fontFamilyMedium</item>
</style>
@@ -160,4 +159,8 @@
<item name="fontFamily">@string/config_fontFamily</item>
</style>
+ <style name="JobProgressPanelHeaderText" parent="@style/TextAppearance.Material3.TitleMedium">
+ <item name="fontFamily">@string/config_fontFamilyMedium</item>
+ </style>
+
</resources>
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/values/themes.xml b/res/flag(com.android.documentsui.flags.use_material3)/values/themes.xml
index 314022eea..114d14c88 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/values/themes.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/values/themes.xml
@@ -79,5 +79,9 @@
<!-- Menu text appearance -->
<item name="android:itemTextAppearance">@style/MenuItemTextAppearance</item>
+
+ <!-- System bar colors. -->
+ <item name="android:statusBarColor">?attr/colorSurfaceContainer</item>
+ <item name="android:navigationBarColor">?attr/colorSurfaceContainer</item>
</style>
</resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 8997f38aa..f3dc33788 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Wys tans in roostermodus."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Wys tans in lysmodus."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Lêernaam"</string>
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 1ecd90486..4267bd1de 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"በፍርግርግ ሁነታ ላይ በማሳየት ላይ።"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"በዝርዝር ሁነታ ላይ በማሳየት ላይ።"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"የፋይል ስም"</string>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 4ca9b882e..6b193c223 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"ضغط"</string>
<string name="menu_extract" msgid="8171946945982532262">"الاستخراج إلى…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"استخراج الكل…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"الاستخراج هنا"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"تصفُّح"</string>
<string name="menu_rename" msgid="1883113442688817554">"إعادة تسمية"</string>
<string name="menu_inspect" msgid="7279855349299446224">"الحصول على المعلومات"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"إظهار الملفات المخفية"</string>
@@ -383,6 +381,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"يتم العرض في وضع الشبكة."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"يتم العرض في وضع القائمة."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"اسم الملف"</string>
</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 17ad4cc6b..1d830ebad 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"গ্ৰিড ম’ডত দেখুৱাই থকা হৈছে।"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"সূচীযুক্ত ম’ডত দেখুৱাই থকা হৈছে।"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ফাইলৰ নাম"</string>
</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index def80e979..789d477c1 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Tor rejimində göstərilir."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Siyahı rejimində göstərilir."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Fayl adı"</string>
</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 817a50bc5..af9c3d506 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -315,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Prikazuje se u režimu mreže."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Prikazuje se u režimu liste."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Naziv fajla"</string>
</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 9c30734e6..b20f4ec6b 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -337,6 +337,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Паказ у рэжыме табліцы."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Паказ у рэжыме спіса."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Назва файла"</string>
</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index f2ed3ba57..eb6c137dc 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Показва се в табличен изглед."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Показва се в списъчен изглед."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Име на файла"</string>
</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index ed431aee7..5815a476c 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"সঙ্কুচিত করুন"</string>
<string name="menu_extract" msgid="8171946945982532262">"এখানে রাখুন…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"সব এক্সট্র্যাক্ট করুন…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"এখানে এক্সট্র্যাক্ট করুন"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"ব্রাউজ করুন"</string>
<string name="menu_rename" msgid="1883113442688817554">"পুনঃনামকরণ"</string>
<string name="menu_inspect" msgid="7279855349299446224">"তথ্য পান"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"লুকানো ফাইল দেখুন"</string>
@@ -295,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"গ্রিড মোডে দেখানো হচ্ছে।"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"তালিকা মোডে দেখানো হচ্ছে।"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ফাইলের নাম"</string>
</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 0d5a137c3..73a4b502a 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -315,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Prikazivanje u vidu mreže."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Prikazivanje u vidu liste."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Naziv fajla"</string>
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index dd7991aef..f78ec3811 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -315,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Es mostra en mode de quadrícula."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Es mostra en mode de llista."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Nom del fitxer"</string>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index faf9e6177..28b167244 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -337,6 +337,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Zobrazuje se mřížka s položkami."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Zobrazuje se seznam položek."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Název souboru"</string>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 9f5d1167b..bfc2386f2 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Vises i gittervisning."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Vises i listevisning."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Filnavn"</string>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 58f653792..ee5604973 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Wird im Rastermodus angezeigt."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Wird im Listenmodus angezeigt."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Dateiname"</string>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 9ae0b4910..7b403cbe4 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Εμφάνιση σε λειτουργία πλέγματος."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Εμφάνιση σε λειτουργία λίστας."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Όνομα αρχείου"</string>
</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index b4d44a911..f35f46c0c 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Showing in grid mode."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Showing in list mode."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"File name"</string>
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index b4d44a911..f35f46c0c 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Showing in grid mode."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Showing in list mode."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"File name"</string>
</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index b4d44a911..f35f46c0c 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Showing in grid mode."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Showing in list mode."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"File name"</string>
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 0fbb19ee2..68a382f45 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"Comprimir"</string>
<string name="menu_extract" msgid="8171946945982532262">"Extraer en…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"Extraer todo…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"Extraer aquí"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"Explorar"</string>
<string name="menu_rename" msgid="1883113442688817554">"Cambiar nombre"</string>
<string name="menu_inspect" msgid="7279855349299446224">"Obtener información"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"Mostrar archivos ocultos"</string>
@@ -317,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Se muestra en modo de cuadrícula."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Se muestra en modo de lista."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Nombre del archivo"</string>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index a361d294d..737500313 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"Comprimir"</string>
<string name="menu_extract" msgid="8171946945982532262">"Extraer a…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"Extraer todo…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"Extraer aquí"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"Explorar"</string>
<string name="menu_rename" msgid="1883113442688817554">"Cambiar nombre"</string>
<string name="menu_inspect" msgid="7279855349299446224">"Obtener información"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"Mostrar archivos ocultos"</string>
@@ -317,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Mostrando modo de cuadrícula."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Mostrando modo de lista."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Nombre del archivo"</string>
</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 2330938ab..15b81449a 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Kuvatud ruudustikuvaates."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Kuvatud loendivaates."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Faili nimi"</string>
</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 6128ef72d..94305a6d7 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"Konprimatu"</string>
<string name="menu_extract" msgid="8171946945982532262">"Atera hona…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"Atera guztia…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"Erauzi hona"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"Arakatu"</string>
<string name="menu_rename" msgid="1883113442688817554">"Aldatu izena"</string>
<string name="menu_inspect" msgid="7279855349299446224">"Lortu informazioa"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"Erakutsi fitxategi ezkutuak"</string>
@@ -295,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Sareta moduan ikusgai."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Zerrenda moduan ikusgai."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Fitxategiaren izena"</string>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 9fe6eba70..c108d9f07 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"نمایش در حالت جدولی."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"نمایش در حالت فهرست."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"نام فایل"</string>
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 03769bc23..7b888bfd4 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Näytetään ruudukkotilassa."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Näytetään luettelotilassa."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Tiedostonimi"</string>
</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index ac96f55f4..62d18393d 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -315,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Affichage en mode grille."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Affichage en mode liste."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Nom de fichier"</string>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 68ec67fc5..3c1475290 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -315,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Affichage en mode grille."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Affichage en mode liste."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Nom du fichier"</string>
</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 0df799e20..d45dbc211 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Mostrando modo de grade."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Mostrando modo de lista."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Nome do ficheiro"</string>
</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 5dfe833bd..7f5ffa3e0 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"ગ્રિડ મોડમાં બતાવી રહ્યાં છીએ."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"સૂચિ મોડમાં બતાવી રહ્યાં છીએ."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ફાઇલનું નામ"</string>
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 4b42a05f9..7fc004024 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"ग्रिड मोड में दिखाया जा रहा है."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"सूची मोड में दिखाया जा रहा है."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"फ़ाइल का नाम"</string>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 5942b78aa..e12bc50f0 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -315,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Prikazivanje u načinu rešetke."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Prikazivanje u načinu popisa."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Naziv datoteke"</string>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 38abcc0c8..7119be420 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Megjelenítés rácsnézetben."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Megjelenítés listanézetben."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Fájlnév"</string>
</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index cfd9e24fc..bf75c96c1 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Ցուցադրվում է ցանցի տեսքով։"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Ցուցադրվում է ցանկի տեսքով։"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Ֆայլի անվանումը"</string>
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 75f14dd13..5ac5aa336 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Menampilkan dalam mode petak."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Menampilkan dalam mode daftar."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Nama file"</string>
</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index c71925b4b..f78a5fc63 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Sýnir töfluyfirlit."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Sýnir listayfirlit."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Skráarheiti"</string>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index ed543fc35..a289cd8b2 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -315,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Visualizzazione in modalità griglia."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Visualizzazione in modalità elenco."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Nome file"</string>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index e7f088444..c3c3aff29 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"דחיסה"</string>
<string name="menu_extract" msgid="8171946945982532262">"חילוץ לתיקייה…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"חילוץ הכול…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"חילוץ לכאן"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"עיון"</string>
<string name="menu_rename" msgid="1883113442688817554">"שינוי שם"</string>
<string name="menu_inspect" msgid="7279855349299446224">"מידע על המסמך"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"הצגת קבצים מוסתרים"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 67523b952..2f3c14114 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"グリッドモードで表示しています。"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"リストモードで表示しています。"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ファイル名"</string>
</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 98ea5bd79..ddf8bfcd4 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"ნაჩვენებია ბადის რეჟიმში."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"ნაჩვენებია სიის რეჟიმში."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ფაილის სახელი"</string>
</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 435c496fe..2d6645340 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Тор режимінде көрсетіледі."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Тізім режимінде көрсетіледі."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Файл атауы"</string>
</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index de0fa6d94..dbe6f87e1 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"បង្ហាញក្នុងមុខងារ​ក្រឡា។"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"បង្ហាញក្នុង​មុខងារបញ្ជី។"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ឈ្មោះឯកសារ"</string>
</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index dd9db19ee..ab92d4130 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"ಗ್ರಿಡ್ ಮೋಡ್‌ನಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತಿದೆ."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"ಪಟ್ಟಿ ಮೋಡ್‌ನಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತಿದೆ."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ಫೈಲ್ ಹೆಸರು"</string>
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 5e8b0a659..a852f9df8 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"그리드 모드로 표시 중입니다."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"목록 모드로 표시 중입니다."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"파일 이름"</string>
</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 26d59f1c0..1e9a3dcf3 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Торчо режиминде көрсөтүлүүдө."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Тизме режиминде көрсөтүлүүдө."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Файлдын аты"</string>
</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 6f2912b63..46370f5c0 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"ກຳລັງສະແດງໃນໂໝດຕາຕະລາງ."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"ກຳລັງສະແດງໃນໂໝດລາຍຊື່."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ຊື່ໄຟລ໌"</string>
</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 39790603e..1398ebe85 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -337,6 +337,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Rodoma tinklelio režimu."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Rodoma sąrašo režimu."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Failo pavadinimas"</string>
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 22db437a5..8879c27de 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -315,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Tiek attēlots režģa režīms."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Tiek attēlots saraksta režīms."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Faila nosaukums"</string>
</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 9fd70991e..d61524719 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Се прикажува во режим на решетка."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Се прикажува во режим на список."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Име на датотека"</string>
</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index f5f2679d6..116ae0291 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"ഗ്രിഡ് മോഡിൽ കാണിക്കുന്നു."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"ലിസ്‌റ്റ് മോഡിൽ കാണിക്കുന്നു."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ഫയലിന്റെ പേര്"</string>
</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index e68478e23..28c3f1670 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Хүснэгтийн горимд харуулж байна."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Жагсаалтын горимд харуулж байна."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Файлын нэр"</string>
</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index fa48f589e..60b72c986 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"ग्रिड मोडमध्ये दाखवत आहे."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"सूची मोडमध्ये दाखवत आहे."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"फाइलचे नाव"</string>
</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 4aee678c5..fe02922e9 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Ditunjukkan dalam mod grid."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Ditunjukkan dalam mod senarai."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Nama fail"</string>
</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index d53ef0d79..573d0bf48 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"ဇယားကွက်မုဒ်ဖြင့် ပြသရန်။"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"စာရင်းမုဒ်ဖြင့် ပြသရန်။"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ဖိုင်အမည်"</string>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index ab5f4b3f5..d1a9661ee 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Viser i rutenettmodus."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Viser i listemodus."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Filnavn"</string>
</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 8b06e5352..cb267f0ca 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"ग्रिड मोडमा देखाइँदै।"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"सूची मोडमा देखाइँदै।"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"फाइलको नाम"</string>
</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 0b39fab85..4f7add78d 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Tonen in rastermodus."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Tonen in lijstmodus."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Bestandsnaam"</string>
</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 304d427a7..ef985fcbc 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"କମ୍ପ୍ରେସ୍ କରନ୍ତୁ"</string>
<string name="menu_extract" msgid="8171946945982532262">"ଏଠାକୁ ଏକ୍ସଟ୍ରାକ୍ଟ କରନ୍ତୁ…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"ସବୁ ଏକ୍ସଟ୍ରାକ୍ଟ କରନ୍ତୁ…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"ଏଠାରେ ଏକ୍ସଟ୍ରାକ୍ଟ କରନ୍ତୁ"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"ବ୍ରାଉଜ କରନ୍ତୁ"</string>
<string name="menu_rename" msgid="1883113442688817554">"ରିନେମ କରନ୍ତୁ"</string>
<string name="menu_inspect" msgid="7279855349299446224">"ସୂଚନା ପାଆନ୍ତୁ"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"ଲୁକ୍କାୟିତ ଫାଇଲ ଦେଖାନ୍ତୁ"</string>
@@ -295,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"ଗ୍ରିଡ୍ ମୋଡରେ ଦେଖାଉଛି।"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"ତାଲିକା ମୋଡରେ ଦେଖାଉଛି।"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ଫାଇଲ ନାମ"</string>
</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index a00596080..ac450d395 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"ਗ੍ਰਿਡ ਮੋਡ ਵਿੱਚ ਦਿਖਾਈਆਂ ਜਾ ਰਹੀਆਂ ਹਨ"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"ਸੂਚੀ ਮੋਡ ਵਿੱਚ ਦਿਖਾਈਆਂ ਜਾ ਰਹੀਆਂ ਹਨ।"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ਫ਼ਾਈਲ ਦਾ ਨਾਮ"</string>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 51c021ab0..3e592bc4a 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"Skompresuj"</string>
<string name="menu_extract" msgid="8171946945982532262">"Rozpakuj do…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"Wyodrębnij wszystko…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"Rozpakuj tutaj"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"Przeglądaj"</string>
<string name="menu_rename" msgid="1883113442688817554">"Zmień nazwę"</string>
<string name="menu_inspect" msgid="7279855349299446224">"Zobacz informacje"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"Pokaż ukryte pliki"</string>
@@ -339,6 +337,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Wyświetlanie w trybie siatki."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Wyświetlanie w trybie listy."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Nazwa pliku"</string>
</resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 5fd429d44..72b72aa1c 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"Compactar"</string>
<string name="menu_extract" msgid="8171946945982532262">"Extrair para…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"Extrair tudo…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"Extrair aqui"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"Procurar"</string>
<string name="menu_rename" msgid="1883113442688817554">"Renomear"</string>
<string name="menu_inspect" msgid="7279855349299446224">"Ver informações"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"Mostrar arquivos ocultos"</string>
@@ -317,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Exibindo modo de grade."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Exibindo modo de lista."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Nome do arquivo"</string>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index af9f6417e..88466b258 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -315,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"A mostrar no modo de grelha…"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"A mostrar no modo de lista…"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Nome do ficheiro"</string>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 5fd429d44..72b72aa1c 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"Compactar"</string>
<string name="menu_extract" msgid="8171946945982532262">"Extrair para…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"Extrair tudo…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"Extrair aqui"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"Procurar"</string>
<string name="menu_rename" msgid="1883113442688817554">"Renomear"</string>
<string name="menu_inspect" msgid="7279855349299446224">"Ver informações"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"Mostrar arquivos ocultos"</string>
@@ -317,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Exibindo modo de grade."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Exibindo modo de lista."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Nome do arquivo"</string>
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 5e4da7e89..82f43949e 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -315,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Se afișează în modul grilă."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Se afișează în modul listă."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Numele fișierului"</string>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index bba9f3110..931934b27 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -337,6 +337,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Показано в виде таблицы."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Показано в виде списка."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Имя файла"</string>
</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 5b1f5ae52..9dbe949c9 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"සම්පීඩනය කරන්න"</string>
<string name="menu_extract" msgid="8171946945982532262">"උපුටා ගන්න…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"සියල්ල උපුටා ගන්න…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"මෙතනට උපුටා ගන්න"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"බ්‍රවුස් කරන්න"</string>
<string name="menu_rename" msgid="1883113442688817554">"යළි නම් කරන්න"</string>
<string name="menu_inspect" msgid="7279855349299446224">"තොරතුරු ලබා ගන්න"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"සැඟවුණු ගොනු පෙන්වන්න"</string>
@@ -295,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"ජාලක ප්‍රකාරය තුළ පෙන්වමින්."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"ලැයිස්තු ප්‍රකාරය තුළ පෙන්වමින්."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ගොනුවේ නම"</string>
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 81900e553..353cfa113 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -337,6 +337,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Zobrazované v režime mriežky."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Zobrazované v režime zoznamu."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Názov súboru"</string>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index f5670410f..f6d15591f 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -337,6 +337,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Prikazano v načinu mreže"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Prikazano v načinu seznama"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Ime datoteke"</string>
</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index f25123c5d..c8cd908ae 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Po shfaq në modalitetin \"rrjetë\"."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Po shfaq në modalitetin \"listë\"."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Emri i skedarit"</string>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 198a80a1e..627e35356 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -315,6 +315,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Приказује се у режиму мреже."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Приказује се у режиму листе."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Назив фајла"</string>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index f4836240f..dab4bfbe2 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Visas i rutnätsläge."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Visas i listläge."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Filnamn"</string>
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index c9f648b1b..7ec3309cf 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Kuonyesha katika hali ya gridi."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Kuonyesha katika hali ya orodha."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Jina la faili"</string>
</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 6c944fdac..35a856f23 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"கட்டக் காட்சியில் காட்டுகிறது."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"பட்டியல் காட்சியில் காட்டுகிறது."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ஃபைல் பெயர்"</string>
</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 9e8f4bdf4..ba463359d 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"గ్రిడ్ మోడ్‌లో చూపుతోంది."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"లిస్ట్ మోడ్‌లో చూపుతోంది."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ఫైల్ పేరు"</string>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index c0fa307b6..10181068d 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"บีบอัด"</string>
<string name="menu_extract" msgid="8171946945982532262">"แตกข้อมูลไปยัง…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"แตกเอกสารทั้งหมด…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"แตกไฟล์ที่นี่"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"เรียกดู"</string>
<string name="menu_rename" msgid="1883113442688817554">"เปลี่ยนชื่อ"</string>
<string name="menu_inspect" msgid="7279855349299446224">"รับข้อมูล"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"แสดงไฟล์ที่ซ่อนไว้"</string>
@@ -295,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"กำลังแสดงในโหมดตารางกริด"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"กำลังแสดงในโหมดรายการ"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"ชื่อไฟล์"</string>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 4efd565f9..3befbf583 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Ipinapakita sa grid mode."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Ipinapakita sa list mode."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Pangalan ng file"</string>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 39531634b..490f9ca29 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Tablo modunda gösteriliyor."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Liste modunda gösteriliyor."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Dosya adı"</string>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 5da9ae208..52f36ec44 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"Стиснути"</string>
<string name="menu_extract" msgid="8171946945982532262">"Розпакувати…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"Розархівувати все…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"Розпакувати тут"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"Переглянути"</string>
<string name="menu_rename" msgid="1883113442688817554">"Перейменувати"</string>
<string name="menu_inspect" msgid="7279855349299446224">"Переглянути інформацію"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"Показувати приховані файли"</string>
@@ -339,6 +337,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Перегляд у режимі таблиці."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Перегляд у режимі списку."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Назва файлу"</string>
</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index e485e68f7..9f20a9957 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"گرڈ وضع میں دکھائی جا رہی ہیں۔"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"فہرست وضع میں دکھائی جا رہی ہیں۔"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"فائل کا نام"</string>
</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 1095f91cb..8e7c154f9 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Jadval shaklida chiqarilmoqda."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Roʻyxat shaklida chiqarilmoqda."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Fayl nomi"</string>
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index b41634964..9d3fe1683 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Đang hiển thị ở chế độ lưới."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Đang hiển thị ở chế độ danh sách."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Tên tệp"</string>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index f9a55d300..939830937 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -46,10 +46,8 @@
<string name="menu_compress" msgid="37539111904724188">"压缩"</string>
<string name="menu_extract" msgid="8171946945982532262">"解压到…"</string>
<string name="menu_extract_all" msgid="7335680068521252718">"提取全部…"</string>
- <!-- no translation found for menu_extract_here (8725302045721604762) -->
- <skip />
- <!-- no translation found for menu_browse (6007716414766674967) -->
- <skip />
+ <string name="menu_extract_here" msgid="8725302045721604762">"解压缩到此处"</string>
+ <string name="menu_browse" msgid="6007716414766674967">"浏览"</string>
<string name="menu_rename" msgid="1883113442688817554">"重命名"</string>
<string name="menu_inspect" msgid="7279855349299446224">"获取信息"</string>
<string name="menu_show_hidden_files" msgid="5140676344684492769">"显示隐藏的文件"</string>
@@ -295,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"目前以网格模式显示。"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"目前以列表模式显示。"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"文件名"</string>
</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 419c087bf..aa923d75b 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"用格狀模式顯示緊。"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"用清單模式顯示緊。"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"檔案名稱"</string>
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index b0bf1ead4..9c99307b2 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"目前以格線模式顯示。"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"目前以清單模式顯示。"</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"檔案名稱"</string>
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 7b448e8a1..80c39b98f 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -293,6 +293,5 @@
<string name="grid_mode_showing" msgid="2803166871485028508">"Ibonisa kumodi yegridi."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Ibonisa kumodi yohlu."</string>
<string name="bullet" msgid="5606740650312122766">"•"</string>
- <!-- no translation found for file_name_hint (7843637320487415838) -->
- <skip />
+ <string name="file_name_hint" msgid="7843637320487415838">"Igama lefayela"</string>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f8ade4c47..c3f11bab4 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -429,6 +429,7 @@
=1 {Zipping <xliff:g id="filename" example="foobar.txt">{filename}</xliff:g>}
other {Zipping # files}
}</string>
+ <string name="job_progress_panel_title" translatable="false">File Progress</string>
<!-- Text in an alert dialog asking user to grant app access to a given directory in an external storage volume -->
<string name="open_external_dialog_request">Grant <xliff:g id="appName" example="System Settings"><b>^1</b></xliff:g>
diff --git a/src/com/android/documentsui/BaseActivity.java b/src/com/android/documentsui/BaseActivity.java
index 790feeac4..8a5779a69 100644
--- a/src/com/android/documentsui/BaseActivity.java
+++ b/src/com/android/documentsui/BaseActivity.java
@@ -20,6 +20,7 @@ import static com.android.documentsui.base.Shared.EXTRA_BENCHMARK;
import static com.android.documentsui.base.SharedMinimal.DEBUG;
import static com.android.documentsui.base.State.MODE_GRID;
import static com.android.documentsui.util.FlagUtils.isUseMaterial3FlagEnabled;
+import static com.android.documentsui.util.FlagUtils.isUsePeekPreviewFlagEnabled;
import android.content.Context;
import android.content.Intent;
@@ -65,6 +66,7 @@ import com.android.documentsui.base.UserId;
import com.android.documentsui.dirlist.AnimationView;
import com.android.documentsui.dirlist.AppsRowManager;
import com.android.documentsui.dirlist.DirectoryFragment;
+import com.android.documentsui.peek.PeekViewManager;
import com.android.documentsui.prefs.LocalPreferences;
import com.android.documentsui.prefs.PreferencesMonitor;
import com.android.documentsui.queries.CommandInterceptor;
@@ -96,6 +98,7 @@ public abstract class BaseActivity
protected SearchViewManager mSearchManager;
protected AppsRowManager mAppsRowManager;
+ protected @Nullable PeekViewManager mPeekViewManager;
protected UserIdManager mUserIdManager;
protected UserManagerState mUserManagerState;
protected State mState;
@@ -414,6 +417,11 @@ public abstract class BaseActivity
// Base classes must update result in their onCreate.
setResult(AppCompatActivity.RESULT_CANCELED);
updateRecentsSetting();
+
+ if (isUsePeekPreviewFlagEnabled()) {
+ mPeekViewManager = new PeekViewManager(this);
+ mPeekViewManager.initFragment(getSupportFragmentManager());
+ }
}
private NavigationViewManager getNavigationViewManager(Breadcrumb breadcrumb,
diff --git a/src/com/android/documentsui/HorizontalBreadcrumb.java b/src/com/android/documentsui/HorizontalBreadcrumb.java
index f47f464c0..9d2fc723e 100644
--- a/src/com/android/documentsui/HorizontalBreadcrumb.java
+++ b/src/com/android/documentsui/HorizontalBreadcrumb.java
@@ -192,7 +192,12 @@ public final class HorizontalBreadcrumb extends RecyclerView implements Breadcru
holder.mTitle.setText(
isFirst ? mEnv.getCurrentRoot().title : mState.stack.get(position).displayName);
- holder.mTitle.setEnabled(isLast);
+ if (isUseMaterial3FlagEnabled()) {
+ // The last path part in the breadcrumb is not clickable.
+ holder.mTitle.setEnabled(!isLast);
+ } else {
+ holder.mTitle.setEnabled(isLast);
+ }
if (isUseMaterial3FlagEnabled()) {
final int paddingHorizontal =
(int)
diff --git a/src/com/android/documentsui/IconUtils.java b/src/com/android/documentsui/IconUtils.java
index ece38bb64..477209150 100644
--- a/src/com/android/documentsui/IconUtils.java
+++ b/src/com/android/documentsui/IconUtils.java
@@ -16,19 +16,56 @@
package com.android.documentsui;
+import static com.android.documentsui.util.FlagUtils.isUseMaterial3FlagEnabled;
+
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.ProviderInfo;
+import android.content.res.Resources;
import android.graphics.Outline;
import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewOutlineProvider;
import android.widget.ImageView;
import com.android.documentsui.base.UserId;
+import com.android.documentsui.util.ColorUtils;
+
+import java.util.HashMap;
+import java.util.Map;
public class IconUtils {
+ // key: drawable resource id, value: color attribute id
+ private static final Map<Integer, Integer> sCustomIconColorMap = new HashMap<>();
+
+ static {
+ if (isUseMaterial3FlagEnabled()) {
+ // Use Resources.getSystem().getIdentifier() here instead of R.drawable.ic_doc_folder
+ // because com.android.internal.R is not public.
+ sCustomIconColorMap.put(
+ Resources.getSystem().getIdentifier("ic_doc_folder", "drawable", "android"),
+ com.google.android.material.R.attr.colorPrimaryFixedDim);
+ sCustomIconColorMap.put(
+ Resources.getSystem().getIdentifier("ic_doc_generic", "drawable", "android"),
+ com.google.android.material.R.attr.colorOutline);
+ sCustomIconColorMap.put(
+ Resources.getSystem()
+ .getIdentifier("ic_doc_certificate", "drawable", "android"),
+ com.google.android.material.R.attr.colorOutline);
+ sCustomIconColorMap.put(
+ Resources.getSystem().getIdentifier("ic_doc_codes", "drawable", "android"),
+ com.google.android.material.R.attr.colorOutline);
+ sCustomIconColorMap.put(
+ Resources.getSystem().getIdentifier("ic_doc_contact", "drawable", "android"),
+ com.google.android.material.R.attr.colorOutline);
+ sCustomIconColorMap.put(
+ Resources.getSystem().getIdentifier("ic_doc_font", "drawable", "android"),
+ com.google.android.material.R.attr.colorOutline);
+ }
+ }
+
public static Drawable loadPackageIcon(Context context, UserId userId, String authority,
int icon, boolean maybeShowBadge) {
if (icon != 0) {
@@ -65,7 +102,17 @@ public class IconUtils {
*/
public static Drawable loadMimeIcon(Context context, String mimeType) {
if (mimeType == null) return null;
- return context.getContentResolver().getTypeInfo(mimeType).getIcon().loadDrawable(context);
+ Icon icon = context.getContentResolver().getTypeInfo(mimeType).getIcon();
+ Drawable drawable = icon.loadDrawable(context);
+ // TODO(b/400263417): Remove this once RRO mime icons support dynamic colors.
+ if (isUseMaterial3FlagEnabled()
+ && drawable != null
+ && sCustomIconColorMap.containsKey(icon.getResId())) {
+ drawable.setTint(
+ ColorUtils.resolveMaterialColorAttribute(
+ context, sCustomIconColorMap.get(icon.getResId())));
+ }
+ return drawable;
}
public static Drawable applyTintColor(Context context, int drawableId, int tintColorId) {
diff --git a/src/com/android/documentsui/JobPanelController.kt b/src/com/android/documentsui/JobPanelController.kt
index b3b5f1cfd..a8ab8b0a4 100644
--- a/src/com/android/documentsui/JobPanelController.kt
+++ b/src/com/android/documentsui/JobPanelController.kt
@@ -20,7 +20,10 @@ import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.util.Log
+import android.view.LayoutInflater
import android.view.MenuItem
+import android.view.ViewGroup
+import android.widget.PopupWindow
import android.widget.ProgressBar
import com.android.documentsui.base.Menus
import com.android.documentsui.services.FileOperationService
@@ -77,8 +80,29 @@ class JobPanelController(private val mContext: Context) : BroadcastReceiver() {
/**
* Sets the menu item controlled by this class. The item's actionView must be a [ProgressBar].
*/
+ @Suppress("ktlint:standard:comment-wrapping")
fun setMenuItem(menuItem: MenuItem) {
- (menuItem.actionView as ProgressBar).max = MAX_PROGRESS
+ val progressIcon = menuItem.actionView as ProgressBar
+ progressIcon.max = MAX_PROGRESS
+ progressIcon.setOnClickListener { view ->
+ val panel = LayoutInflater.from(mContext).inflate(
+ R.layout.job_progress_panel,
+ /* root= */ null
+ )
+ val popupWidth = mContext.resources.getDimension(R.dimen.job_progress_panel_width) +
+ mContext.resources.getDimension(R.dimen.job_progress_panel_margin)
+ val popup = PopupWindow(
+ /* contentView= */ panel,
+ /* width= */ popupWidth.toInt(),
+ /* height= */ ViewGroup.LayoutParams.WRAP_CONTENT,
+ /* focusable= */ true
+ )
+ popup.showAsDropDown(
+ /* anchor= */ view,
+ /* xoff= */ view.width - popupWidth.toInt(),
+ /* yoff= */ 0
+ )
+ }
mMenuItem = menuItem
updateMenuItem(animate = false)
}
diff --git a/src/com/android/documentsui/dirlist/AnimationView.java b/src/com/android/documentsui/dirlist/AnimationView.java
index d17bddf98..5813085b3 100644
--- a/src/com/android/documentsui/dirlist/AnimationView.java
+++ b/src/com/android/documentsui/dirlist/AnimationView.java
@@ -16,19 +16,22 @@
package com.android.documentsui.dirlist;
-import androidx.annotation.IntDef;
-import androidx.fragment.app.FragmentTransaction;
+import static com.android.documentsui.util.FlagUtils.isUseMaterial3FlagEnabled;
import android.content.Context;
import android.os.Bundle;
import android.util.AttributeSet;
import android.widget.LinearLayout;
+import androidx.annotation.IntDef;
+import androidx.fragment.app.FragmentTransaction;
+
import com.android.documentsui.R;
import com.android.documentsui.base.Shared;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
/**
* This class exists solely to support animated transition of our directory fragment.
@@ -51,6 +54,8 @@ public class AnimationView extends LinearLayout {
public static final int ANIM_LEAVE = 3;
public static final int ANIM_ENTER = 4;
+ private final ArrayList<OnSizeChangedListener> mOnSizeChangedListeners = new ArrayList<>();
+
private float mPosition = 0f;
// The distance the animation will cover...currently matches the height of the
@@ -65,11 +70,45 @@ public class AnimationView extends LinearLayout {
super(context, attrs);
}
+ /**
+ * A listener of the onSizeChanged method.
+ */
+ public interface OnSizeChangedListener {
+ /**
+ * Called on the View's onSizeChanged.
+ */
+ void onSizeChanged();
+ }
+
+ /**
+ * Adds a listener of the onSizeChanged method.
+ */
+ public void addOnSizeChangedListener(OnSizeChangedListener listener) {
+ if (isUseMaterial3FlagEnabled()) {
+ mOnSizeChangedListeners.add(listener);
+ }
+ }
+
+ /**
+ * Removes a listener of the onSizeChanged method.
+ */
+ public void removeOnSizeChangedListener(OnSizeChangedListener listener) {
+ if (isUseMaterial3FlagEnabled()) {
+ mOnSizeChangedListeners.remove(listener);
+ }
+ }
+
+
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
mSpan = h;
setPosition(mPosition);
+ if (isUseMaterial3FlagEnabled()) {
+ for (int i = mOnSizeChangedListeners.size() - 1; i >= 0; --i) {
+ mOnSizeChangedListeners.get(i).onSizeChanged();
+ }
+ }
}
public float getPosition() {
diff --git a/src/com/android/documentsui/dirlist/DirectoryFragment.java b/src/com/android/documentsui/dirlist/DirectoryFragment.java
index 2ea906a60..2911d04e9 100644
--- a/src/com/android/documentsui/dirlist/DirectoryFragment.java
+++ b/src/com/android/documentsui/dirlist/DirectoryFragment.java
@@ -108,6 +108,7 @@ import com.android.documentsui.clipping.ClipStore;
import com.android.documentsui.clipping.DocumentClipper;
import com.android.documentsui.clipping.UrisSupplier;
import com.android.documentsui.dirlist.AnimationView.AnimationType;
+import com.android.documentsui.dirlist.AnimationView.OnSizeChangedListener;
import com.android.documentsui.picker.PickActivity;
import com.android.documentsui.services.FileOperation;
import com.android.documentsui.services.FileOperationService;
@@ -188,7 +189,7 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
private SelectionMetadata mSelectionMetadata;
private KeyInputHandler mKeyListener;
private @Nullable DragHoverListener mDragHoverListener;
- private View mRootView;
+ private AnimationView mRootView;
private IconHelper mIconHelper;
private SwipeRefreshLayout mRefreshLayout;
private RecyclerView mRecView;
@@ -416,13 +417,27 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
|| Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE.equals(action);
}
+ private OnSizeChangedListener mOnSizeChangedListener =
+ new AnimationView.OnSizeChangedListener() {
+ @Override
+ public void onSizeChanged() {
+ if (isUseMaterial3FlagEnabled() && mState.derivedMode != MODE_LIST) {
+ // Update the grid layout when the window size changes.
+ updateLayout(mState.derivedMode);
+ }
+ }
+ };
+
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mHandler = new Handler(Looper.getMainLooper());
mActivity = (BaseActivity) getActivity();
- mRootView = inflater.inflate(R.layout.fragment_directory, container, false);
+ mRootView = (AnimationView) inflater.inflate(R.layout.fragment_directory, container, false);
+ if (isUseMaterial3FlagEnabled()) {
+ mRootView.addOnSizeChangedListener(mOnSizeChangedListener);
+ }
mProgressBar = mRootView.findViewById(R.id.progressbar);
assert mProgressBar != null;
@@ -497,6 +512,10 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
mModel.removeUpdateListener(mAdapter.getModelUpdateListener());
setPreDrawListenerEnabled(false);
+ if (isUseMaterial3FlagEnabled()) {
+ mRootView.removeOnSizeChangedListener(mOnSizeChangedListener);
+ }
+
super.onDestroyView();
}
@@ -809,7 +828,6 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
if (mLayout != null) {
mLayout.setSpanCount(mColumnCount);
}
-
int pad = getDirectoryPadding(mode);
mAppBarHeight = getAppBarLayoutHeight();
mSaveLayoutHeight = getSaveLayoutHeight();
diff --git a/src/com/android/documentsui/files/ActionHandler.java b/src/com/android/documentsui/files/ActionHandler.java
index 86f7a1a14..cbe02dc25 100644
--- a/src/com/android/documentsui/files/ActionHandler.java
+++ b/src/com/android/documentsui/files/ActionHandler.java
@@ -71,6 +71,7 @@ import com.android.documentsui.clipping.DocumentClipper;
import com.android.documentsui.clipping.UrisSupplier;
import com.android.documentsui.dirlist.AnimationView;
import com.android.documentsui.inspector.InspectorActivity;
+import com.android.documentsui.peek.PeekViewManager;
import com.android.documentsui.queries.SearchViewManager;
import com.android.documentsui.roots.ProvidersAccess;
import com.android.documentsui.services.FileOperation;
@@ -101,6 +102,7 @@ public class ActionHandler<T extends FragmentActivity & AbstractActionHandler.Co
private final ClipStore mClipStore;
private final DragAndDropManager mDragAndDropManager;
private final Runnable mCloseSelectionBar;
+ private final @Nullable PeekViewManager mPeekViewManager;
ActionHandler(
T activity,
@@ -114,6 +116,7 @@ public class ActionHandler<T extends FragmentActivity & AbstractActionHandler.Co
DocumentClipper clipper,
ClipStore clipStore,
DragAndDropManager dragAndDropManager,
+ @Nullable PeekViewManager peekViewManager,
Injector injector) {
super(activity, state, providers, docs, searchMgr, executors, injector);
@@ -125,6 +128,7 @@ public class ActionHandler<T extends FragmentActivity & AbstractActionHandler.Co
mClipper = clipper;
mClipStore = clipStore;
mDragAndDropManager = dragAndDropManager;
+ mPeekViewManager = peekViewManager;
}
@Override
@@ -609,14 +613,16 @@ public class ActionHandler<T extends FragmentActivity & AbstractActionHandler.Co
mActivity.startActivity(intent);
}
- private void showPeek() {
- Log.d(TAG, "Peek not implemented");
+ private void showPeek(DocumentInfo doc) {
+ if (mPeekViewManager != null) {
+ mPeekViewManager.peekDocument(doc);
+ }
}
@Override
public void showPreview(DocumentInfo doc) {
- if (isUseMaterial3FlagEnabled() && isUsePeekPreviewFlagEnabled()) {
- showPeek();
+ if (isUsePeekPreviewFlagEnabled()) {
+ showPeek(doc);
} else {
showInspector(doc);
}
diff --git a/src/com/android/documentsui/files/FilesActivity.java b/src/com/android/documentsui/files/FilesActivity.java
index 50e266d38..b254ce525 100644
--- a/src/com/android/documentsui/files/FilesActivity.java
+++ b/src/com/android/documentsui/files/FilesActivity.java
@@ -19,6 +19,7 @@ package com.android.documentsui.files;
import static com.android.documentsui.OperationDialogFragment.DIALOG_TYPE_UNKNOWN;
import static com.android.documentsui.base.SharedMinimal.DEBUG;
import static com.android.documentsui.util.FlagUtils.isUseMaterial3FlagEnabled;
+import static com.android.documentsui.util.FlagUtils.isVisualSignalsFlagEnabled;
import static com.android.documentsui.util.FlagUtils.isZipNgFlagEnabled;
import android.app.ActivityManager.TaskDescription;
@@ -134,7 +135,7 @@ public class FilesActivity extends BaseActivity implements AbstractActionHandler
return clipper.hasItemsToPaste();
}
},
- getApplicationContext(),
+ isVisualSignalsFlagEnabled() ? this : getApplicationContext(),
mInjector.selectionMgr,
mProviders::getApplicationName,
mInjector.getModel()::getItemUri,
@@ -163,6 +164,7 @@ public class FilesActivity extends BaseActivity implements AbstractActionHandler
clipper,
DocumentsApplication.getClipStore(this),
DocumentsApplication.getDragAndDropManager(this),
+ mPeekViewManager,
mInjector);
mInjector.searchManager = mSearchManager;
@@ -210,9 +212,13 @@ public class FilesActivity extends BaseActivity implements AbstractActionHandler
updateTaskDescription(intent);
}
- // Set save container background to transparent for edge to edge nav bar.
- View saveContainer = findViewById(R.id.container_save);
- saveContainer.setBackgroundColor(Color.TRANSPARENT);
+ // When the use_material3 flag is on, the file path bar is at the bottom of the layout and
+ // hence the edge to edge nav bar is no longer required.
+ if (!isUseMaterial3FlagEnabled()) {
+ // Set save container background to transparent for edge to edge nav bar.
+ View saveContainer = findViewById(R.id.container_save);
+ saveContainer.setBackgroundColor(Color.TRANSPARENT);
+ }
presentFileErrors(icicle, intent);
}
diff --git a/src/com/android/documentsui/loaders/BaseFileLoader.kt b/src/com/android/documentsui/loaders/BaseFileLoader.kt
index dd76217ac..fcb1d4cb0 100644
--- a/src/com/android/documentsui/loaders/BaseFileLoader.kt
+++ b/src/com/android/documentsui/loaders/BaseFileLoader.kt
@@ -77,7 +77,7 @@ abstract class BaseFileLoader(
private var mResult: DirectoryResult? = null
override fun cancelLoadInBackground() {
- Log.d(TAG, "BasedFileLoader.cancelLoadInBackground")
+ Log.d(TAG, "${this::class.simpleName}.cancelLoadInBackground")
super.cancelLoadInBackground()
synchronized(this) {
@@ -86,7 +86,7 @@ abstract class BaseFileLoader(
}
override fun deliverResult(result: DirectoryResult?) {
- Log.d(TAG, "BasedFileLoader.deliverResult")
+ Log.d(TAG, "${this::class.simpleName}.deliverResult")
if (isReset) {
closeResult(result)
return
@@ -104,7 +104,7 @@ abstract class BaseFileLoader(
}
override fun onStartLoading() {
- Log.d(TAG, "BasedFileLoader.onStartLoading")
+ Log.d(TAG, "${this::class.simpleName}.onStartLoading")
val isCursorStale: Boolean = checkIfCursorStale(mResult)
if (mResult != null && !isCursorStale) {
deliverResult(mResult)
@@ -115,17 +115,17 @@ abstract class BaseFileLoader(
}
override fun onStopLoading() {
- Log.d(TAG, "BasedFileLoader.onStopLoading")
+ Log.d(TAG, "${this::class.simpleName}.onStopLoading")
cancelLoad()
}
override fun onCanceled(result: DirectoryResult?) {
- Log.d(TAG, "BasedFileLoader.onCanceled")
+ Log.d(TAG, "${this::class.simpleName}.onCanceled")
closeResult(result)
}
override fun onReset() {
- Log.d(TAG, "BasedFileLoader.onReset")
+ Log.d(TAG, "${this::class.simpleName}.onReset")
super.onReset()
// Ensure the loader is stopped
diff --git a/src/com/android/documentsui/loaders/FolderLoader.kt b/src/com/android/documentsui/loaders/FolderLoader.kt
index a166ca752..40c15dfe1 100644
--- a/src/com/android/documentsui/loaders/FolderLoader.kt
+++ b/src/com/android/documentsui/loaders/FolderLoader.kt
@@ -60,7 +60,7 @@ class FolderLoader(
mListedDir.authority,
mListedDir.documentId
)
- var cursor =
+ val cursor =
queryLocation(mRoot.rootId, folderChildrenUri, mOptions.otherQueryArgs, ALL_RESULTS)
?: emptyCursor()
cursor.registerContentObserver(mObserver)
diff --git a/src/com/android/documentsui/peek/PeekFragment.kt b/src/com/android/documentsui/peek/PeekFragment.kt
new file mode 100644
index 000000000..50ee64efc
--- /dev/null
+++ b/src/com/android/documentsui/peek/PeekFragment.kt
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.documentsui.peek
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+
+import com.android.documentsui.R
+
+class PeekFragment : Fragment() {
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
+ ): View? {
+ return inflater.inflate(R.layout.peek_layout, container, /* attachToRoot= */ false)
+ }
+}
diff --git a/src/com/android/documentsui/peek/PeekViewManager.kt b/src/com/android/documentsui/peek/PeekViewManager.kt
new file mode 100644
index 000000000..9bbeba3bf
--- /dev/null
+++ b/src/com/android/documentsui/peek/PeekViewManager.kt
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.documentsui.peek
+
+import android.app.Activity
+import android.os.Bundle
+import android.util.Log
+import android.view.View
+import android.widget.FrameLayout
+import androidx.annotation.IdRes
+import androidx.fragment.app.FragmentManager
+import com.android.documentsui.R
+import androidx.fragment.app.FragmentTransaction
+import com.android.documentsui.base.DocumentInfo
+import com.android.documentsui.util.FlagUtils.Companion.isUsePeekPreviewFlagEnabled
+
+/**
+ * Manager that controls the Peek UI.
+ */
+open class PeekViewManager(
+ private val mActivity: Activity
+) {
+ companion object {
+ const val TAG = "PeekViewManager"
+ }
+
+ private var mPeekFragment: PeekFragment? = null
+
+ open fun initFragment(
+ fm: FragmentManager
+ ) {
+ if (!isUsePeekPreviewFlagEnabled()) {
+ Log.e(TAG, "Attempting to create PeekViewManager while Peek disabled")
+ return
+ }
+
+ if (getOverlayContainer() == null) {
+ Log.e(TAG, "Unable to find Peek container")
+ return
+ }
+
+ // Load the Peek fragment into its container.
+ val peekFragment = PeekFragment()
+ mPeekFragment = peekFragment
+ val ft: FragmentTransaction = fm.beginTransaction()
+ ft.replace(getOverlayId(), peekFragment)
+ ft.commitAllowingStateLoss()
+ }
+
+ open fun peekDocument(doc: DocumentInfo) {
+ if (mPeekFragment == null) {
+ Log.e(TAG, "Peek fragment not initialized")
+ return
+ }
+ show()
+ }
+
+ @IdRes
+ private fun getOverlayId(): Int {
+ return R.id.peek_overlay
+ }
+
+ private fun getOverlayContainer(): FrameLayout? {
+ return mActivity.findViewById(getOverlayId())
+ }
+
+ private fun show() {
+ getOverlayContainer()?.visibility = View.VISIBLE
+ }
+} \ No newline at end of file
diff --git a/src/com/android/documentsui/picker/PickActivity.java b/src/com/android/documentsui/picker/PickActivity.java
index 68a797397..4f875072e 100644
--- a/src/com/android/documentsui/picker/PickActivity.java
+++ b/src/com/android/documentsui/picker/PickActivity.java
@@ -224,9 +224,11 @@ public class PickActivity extends BaseActivity implements ActionHandler.Addons {
} else if (mState.action == ACTION_OPEN_TREE ||
mState.action == ACTION_PICK_COPY_DESTINATION) {
PickFragment.show(getSupportFragmentManager());
- } else {
+ } else if (!isUseMaterial3FlagEnabled()) {
// If PickFragment or SaveFragment does not show,
// Set save container background to transparent for edge to edge nav bar.
+ // However when the use_material3 flag is on, the file path bar is at the bottom of the
+ // layout and hence the edge to edge nav bar is no longer required.
View saveContainer = findViewById(R.id.container_save);
saveContainer.setBackgroundColor(Color.TRANSPARENT);
}
diff --git a/src/com/android/documentsui/util/FlagUtils.kt b/src/com/android/documentsui/util/FlagUtils.kt
index a041dde44..cf81d5966 100644
--- a/src/com/android/documentsui/util/FlagUtils.kt
+++ b/src/com/android/documentsui/util/FlagUtils.kt
@@ -56,7 +56,7 @@ class FlagUtils {
@JvmStatic
fun isUsePeekPreviewFlagEnabled(): Boolean {
- return Flags.usePeekPreviewRo()
+ return Flags.usePeekPreviewRo() && isUseMaterial3FlagEnabled()
}
}
}
diff --git a/tests/Android.bp b/tests/Android.bp
index 41ccc1ab1..65e3f259f 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -42,6 +42,7 @@ android_library {
name: "DocumentsUIPerfTests-lib",
srcs: [
"common/com/android/documentsui/**/*.java",
+ "common/com/android/documentsui/**/*.kt",
"functional/com/android/documentsui/ActivityTest.java",
],
resource_dirs: [],
@@ -70,6 +71,7 @@ android_library {
srcs: [
"common/**/*.java",
+ "common/**/*.kt",
"unit/**/*.java",
"unit/**/*.kt",
],
@@ -94,6 +96,7 @@ android_library {
srcs: [
"common/**/*.java",
+ "common/**/*.kt",
"functional/**/*.java",
"functional/**/*.kt",
"unit/**/*.java",
diff --git a/tests/common/com/android/documentsui/bots/Bots.java b/tests/common/com/android/documentsui/bots/Bots.java
index 8cc00ac7a..f0f69b9cf 100644
--- a/tests/common/com/android/documentsui/bots/Bots.java
+++ b/tests/common/com/android/documentsui/bots/Bots.java
@@ -48,6 +48,7 @@ public final class Bots {
public final UiBot main;
public final InspectorBot inspector;
public final NotificationsBot notifications;
+ public final PeekBot peek;
public Bots(UiDevice device, UiAutomation automation, Context context, int timeout) {
main = new UiBot(device, context, TIMEOUT);
@@ -61,13 +62,14 @@ public final class Bots {
menu = new MenuBot(device, context, TIMEOUT);
inspector = new InspectorBot(device, context, TIMEOUT);
notifications = new NotificationsBot(device, context, TIMEOUT);
+ peek = new PeekBot(device, context, TIMEOUT);
}
/**
* A test helper class that provides support for controlling directory list
* and making assertions against the state of it.
*/
- static abstract class BaseBot {
+ public static abstract class BaseBot {
public final UiDevice mDevice;
final Context mContext;
final int mTimeout;
diff --git a/tests/common/com/android/documentsui/bots/DirectoryListBot.java b/tests/common/com/android/documentsui/bots/DirectoryListBot.java
index 314013e53..8884bf0f2 100644
--- a/tests/common/com/android/documentsui/bots/DirectoryListBot.java
+++ b/tests/common/com/android/documentsui/bots/DirectoryListBot.java
@@ -16,6 +16,8 @@
package com.android.documentsui.bots;
+import static com.android.documentsui.util.FlagUtils.isUseMaterial3FlagEnabled;
+
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertNotNull;
@@ -71,7 +73,7 @@ public class DirectoryListBot extends Bots.BaseBot {
mDirListId = mTargetPackage + ":id/dir_list";
mItemRootId = mTargetPackage + ":id/item_root";
mPreviewId = mTargetPackage + ":id/preview_icon";
- mIconId = mTargetPackage + ":id/icon";
+ mIconId = mTargetPackage + (isUseMaterial3FlagEnabled() ? ":id/icon_wrapper" : ":id/icon");
}
public void assertDocumentsCount(int count) throws UiObjectNotFoundException {
diff --git a/tests/common/com/android/documentsui/bots/PeekBot.kt b/tests/common/com/android/documentsui/bots/PeekBot.kt
new file mode 100644
index 000000000..6906d5a1a
--- /dev/null
+++ b/tests/common/com/android/documentsui/bots/PeekBot.kt
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.documentsui.bots
+
+import android.content.Context
+import androidx.test.uiautomator.UiDevice
+import androidx.test.uiautomator.UiObject
+import junit.framework.Assert.assertFalse
+import junit.framework.Assert.assertTrue
+
+/**
+ * A test helper class that provides support for controlling the peek overlay
+ * and making assertions against the state of it.
+ */
+class PeekBot(
+ device: UiDevice,
+ context: Context,
+ timeout: Int
+) : Bots.BaseBot(device, context, timeout) {
+
+ private val mOverlayId: String = "$mTargetPackage:id/peek_overlay"
+ private val mContainerId: String = "$mTargetPackage:id/peek_container"
+
+ fun assertPeekActive() {
+ val peekContainer = findPeekContainer()
+ assertTrue(peekContainer.exists())
+ }
+
+ fun assertPeekHidden() {
+ val peekContainer = findPeekContainer()
+ assertFalse(peekContainer.exists())
+ }
+
+ fun findPeekContainer(): UiObject {
+ return findObject(mOverlayId, mContainerId)
+ }
+}
diff --git a/tests/common/com/android/documentsui/testing/MutableJobProgress.kt b/tests/common/com/android/documentsui/testing/MutableJobProgress.kt
new file mode 100644
index 000000000..b2dd595f9
--- /dev/null
+++ b/tests/common/com/android/documentsui/testing/MutableJobProgress.kt
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.documentsui.testing
+
+import com.android.documentsui.services.Job
+import com.android.documentsui.services.JobProgress
+
+data class MutableJobProgress(
+ var id: String,
+ @Job.State var state: Int,
+ var msg: String?,
+ var hasFailures: Boolean,
+ var currentBytes: Long = -1,
+ var requiredBytes: Long = -1,
+ var msRemaining: Long = -1,
+) {
+ fun toJobProgress() =
+ JobProgress(id, state, msg, hasFailures, currentBytes, requiredBytes, msRemaining)
+}
diff --git a/tests/common/com/android/documentsui/testing/TestPeekViewManager.kt b/tests/common/com/android/documentsui/testing/TestPeekViewManager.kt
new file mode 100644
index 000000000..e3ad6033c
--- /dev/null
+++ b/tests/common/com/android/documentsui/testing/TestPeekViewManager.kt
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.documentsui.testing
+
+import android.app.Activity
+import androidx.fragment.app.FragmentManager
+import com.android.documentsui.base.DocumentInfo
+import com.android.documentsui.peek.PeekViewManager
+
+class TestPeekViewManager(mActivity: Activity) : PeekViewManager(mActivity) {
+
+ val peekDocument = TestEventListener<DocumentInfo>()
+
+ override fun initFragment(fm: FragmentManager) {
+ throw UnsupportedOperationException()
+ }
+
+ override fun peekDocument(doc: DocumentInfo) {
+ peekDocument.accept(doc)
+ }
+} \ No newline at end of file
diff --git a/tests/functional/com/android/documentsui/JobPanelUiTest.kt b/tests/functional/com/android/documentsui/JobPanelUiTest.kt
new file mode 100644
index 000000000..5b28b1f5d
--- /dev/null
+++ b/tests/functional/com/android/documentsui/JobPanelUiTest.kt
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.documentsui
+
+import android.content.Intent
+import android.platform.test.annotations.RequiresFlagsEnabled
+import android.platform.test.flag.junit.CheckFlagsRule
+import android.platform.test.flag.junit.DeviceFlagsValueProvider
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.assertion.ViewAssertions.doesNotExist
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import com.android.documentsui.files.FilesActivity
+import com.android.documentsui.flags.Flags.FLAG_USE_MATERIAL3
+import com.android.documentsui.flags.Flags.FLAG_VISUAL_SIGNALS_RO
+import com.android.documentsui.services.FileOperationService.ACTION_PROGRESS
+import com.android.documentsui.services.FileOperationService.EXTRA_PROGRESS
+import com.android.documentsui.services.Job
+import com.android.documentsui.services.JobProgress
+import com.android.documentsui.testing.MutableJobProgress
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RequiresFlagsEnabled(FLAG_USE_MATERIAL3, FLAG_VISUAL_SIGNALS_RO)
+@RunWith(AndroidJUnit4::class)
+class JobPanelUiTest : ActivityTestJunit4<FilesActivity>() {
+ @get:Rule
+ val mCheckFlagsRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
+
+ private var mLastId = 0L
+
+ private fun sendProgress(progresses: ArrayList<JobProgress>, id: Long = mLastId++) {
+ val context = InstrumentationRegistry.getInstrumentation().targetContext
+ var intent = Intent(ACTION_PROGRESS).apply {
+ `package` = context.packageName
+ putExtra("id", id)
+ putParcelableArrayListExtra(EXTRA_PROGRESS, progresses)
+ }
+ context.sendBroadcast(intent)
+ }
+
+ @Before
+ override fun setUp() {
+ super.setUp()
+ }
+
+ @After
+ override fun tearDown() {
+ super.tearDown()
+ }
+
+ @Test
+ fun testJobPanelAppearsOnClick() {
+ onView(withId(R.id.option_menu_job_progress)).check(doesNotExist())
+ onView(withId(R.id.job_progress_panel_title)).check(doesNotExist())
+
+ val progress = MutableJobProgress(
+ id = "jobId1",
+ state = Job.STATE_SET_UP,
+ msg = "Job started",
+ hasFailures = false,
+ currentBytes = 4,
+ requiredBytes = 10,
+ msRemaining = -1
+ )
+ sendProgress(arrayListOf(progress.toJobProgress()))
+
+ onView(withId(R.id.option_menu_job_progress))
+ .check(matches(isDisplayed()))
+ .perform(click())
+ onView(withId(R.id.job_progress_panel_title)).check(matches(isDisplayed()))
+ }
+}
diff --git a/tests/functional/com/android/documentsui/peek/PeekUiTest.kt b/tests/functional/com/android/documentsui/peek/PeekUiTest.kt
new file mode 100644
index 000000000..a7624df2f
--- /dev/null
+++ b/tests/functional/com/android/documentsui/peek/PeekUiTest.kt
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2025 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.documentsui.peek
+
+import android.os.RemoteException
+import android.platform.test.annotations.RequiresFlagsEnabled
+import android.platform.test.flag.junit.CheckFlagsRule
+import android.platform.test.flag.junit.DeviceFlagsValueProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.LargeTest
+import com.android.documentsui.ActivityTestJunit4
+import com.android.documentsui.files.FilesActivity
+import com.android.documentsui.flags.Flags
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@LargeTest
+@RunWith(AndroidJUnit4::class)
+@RequiresFlagsEnabled(Flags.FLAG_USE_MATERIAL3, Flags.FLAG_USE_PEEK_PREVIEW_RO)
+class PeekUiTest : ActivityTestJunit4<FilesActivity?>() {
+ @get:Rule
+ val mCheckFlagsRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
+
+ @Before
+ @Throws(Exception::class)
+ override fun setUp() {
+ super.setUp()
+ initTestFiles()
+ }
+
+ @After
+ @Throws(Exception::class)
+ override fun tearDown() {
+ super.tearDown()
+ }
+
+ @Throws(RemoteException::class)
+ override fun initTestFiles() {
+ mDocsHelper!!.createDocument(rootDir0, "image/png", "image.png")
+ }
+
+ @Test
+ @Throws(
+ Exception::class
+ )
+ fun testShowPeek() {
+ bots!!.peek.assertPeekHidden()
+ bots!!.directory.selectDocument("image.png")
+ bots!!.main.clickActionItem("Get info")
+ bots!!.peek.assertPeekActive()
+ }
+}
diff --git a/tests/unit/com/android/documentsui/JobPanelControllerTest.kt b/tests/unit/com/android/documentsui/JobPanelControllerTest.kt
index be0c9adbd..3e510edd9 100644
--- a/tests/unit/com/android/documentsui/JobPanelControllerTest.kt
+++ b/tests/unit/com/android/documentsui/JobPanelControllerTest.kt
@@ -30,6 +30,7 @@ import com.android.documentsui.services.FileOperationService.ACTION_PROGRESS
import com.android.documentsui.services.FileOperationService.EXTRA_PROGRESS
import com.android.documentsui.services.Job
import com.android.documentsui.services.JobProgress
+import com.android.documentsui.testing.MutableJobProgress
import junit.framework.Assert.assertEquals
import junit.framework.Assert.assertFalse
import junit.framework.Assert.assertTrue
@@ -38,19 +39,6 @@ import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
-private data class MutableJobProgress(
- var id: String,
- @Job.State var state: Int,
- var msg: String?,
- var hasFailures: Boolean,
- var currentBytes: Long = -1,
- var requiredBytes: Long = -1,
- var msRemaining: Long = -1,
-) {
- fun toJobProgress() =
- JobProgress(id, state, msg, hasFailures, currentBytes, requiredBytes, msRemaining)
-}
-
@SmallTest
@RequiresFlagsEnabled(FLAG_USE_MATERIAL3, FLAG_VISUAL_SIGNALS_RO)
@RunWith(AndroidJUnit4::class)
diff --git a/tests/unit/com/android/documentsui/files/ActionHandlerTest.java b/tests/unit/com/android/documentsui/files/ActionHandlerTest.java
index 1d6ef1fd6..5b19fcdc2 100644
--- a/tests/unit/com/android/documentsui/files/ActionHandlerTest.java
+++ b/tests/unit/com/android/documentsui/files/ActionHandlerTest.java
@@ -76,6 +76,7 @@ import com.android.documentsui.testing.TestDocumentClipper;
import com.android.documentsui.testing.TestDragAndDropManager;
import com.android.documentsui.testing.TestEnv;
import com.android.documentsui.testing.TestFeatures;
+import com.android.documentsui.testing.TestPeekViewManager;
import com.android.documentsui.testing.TestProvidersAccess;
import com.android.documentsui.testing.UserManagers;
import com.android.documentsui.ui.TestDialogController;
@@ -110,6 +111,7 @@ public class ActionHandlerTest {
private ActionHandler<TestActivity> mHandler;
private TestDocumentClipper mClipper;
private TestDragAndDropManager mDragAndDropManager;
+ private TestPeekViewManager mPeekViewManager;
private TestFeatures mFeatures;
private TestConfigStore mTestConfigStore;
private boolean refreshAnswer = false;
@@ -141,6 +143,7 @@ public class ActionHandlerTest {
mDialogs = new TestDialogController();
mClipper = new TestDocumentClipper();
mDragAndDropManager = new TestDragAndDropManager();
+ mPeekViewManager = new TestPeekViewManager(mActivity);
mTestConfigStore = new TestConfigStore();
mEnv.state.configStore = mTestConfigStore;
@@ -744,6 +747,8 @@ public class ActionHandlerTest {
mHandler.showPreview(TestEnv.FILE_GIF);
// The inspector activity is not called.
mActivity.startActivity.assertNotCalled();
+ mPeekViewManager.getPeekDocument().assertCalled();
+ mPeekViewManager.getPeekDocument().assertLastArgument(TestEnv.FILE_GIF);
}
@Test
@@ -751,6 +756,7 @@ public class ActionHandlerTest {
public void testShowInspector() throws Exception {
mHandler.showPreview(TestEnv.FILE_GIF);
+ mPeekViewManager.getPeekDocument().assertNotCalled();
mActivity.startActivity.assertCalled();
Intent intent = mActivity.startActivity.getLastValue();
assertTargetsComponent(intent, InspectorActivity.class);
@@ -864,6 +870,7 @@ public class ActionHandlerTest {
mClipper,
null, // clip storage, not utilized unless we venture into *jumbo* clip territory.
mDragAndDropManager,
+ mPeekViewManager,
mEnv.injector);
}
}