summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/drawable/grid_nameplate_background.xml32
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/layout-w900dp/column_headers.xml192
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/layout/column_headers.xml39
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/layout/directory_app_bar.xml23
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/layout/drawer_layout.xml37
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/layout/item_doc_grid.xml289
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/layout/shared_cell_content.xml (renamed from res/flag(com.android.documentsui.flags.use_material3)/layout-w900dp/shared_cell_content.xml)0
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/values-w600dp/dimens.xml5
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/values-w900dp/dimens.xml5
-rw-r--r--res/flag(com.android.documentsui.flags.use_material3)/values/dimens.xml20
-rw-r--r--res/values-b+sr+Latn/strings.xml4
-rw-r--r--res/values-bg/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.xml3
-rw-r--r--res/values-fa/strings.xml3
-rw-r--r--res/values-fr-rCA/strings.xml3
-rw-r--r--res/values-hu/strings.xml3
-rw-r--r--res/values-hy/strings.xml3
-rw-r--r--res/values-is/strings.xml3
-rw-r--r--res/values-it/strings.xml3
-rw-r--r--res/values-ja/strings.xml3
-rw-r--r--res/values-ka/strings.xml3
-rw-r--r--res/values-kn/strings.xml3
-rw-r--r--res/values-ky/strings.xml5
-rw-r--r--res/values-lt/strings.xml3
-rw-r--r--res/values-ml/strings.xml3
-rw-r--r--res/values-pt-rPT/strings.xml3
-rw-r--r--res/values-sk/strings.xml3
-rw-r--r--res/values-sl/strings.xml3
-rw-r--r--res/values-sr/strings.xml4
-rw-r--r--res/values-sv/strings.xml3
-rw-r--r--res/values-te/strings.xml3
-rw-r--r--res/values-th/strings.xml3
-rw-r--r--res/values-tl/strings.xml3
-rw-r--r--res/values-ur/strings.xml3
-rw-r--r--src/com/android/documentsui/HorizontalBreadcrumb.java11
-rw-r--r--src/com/android/documentsui/MenuManager.java14
-rw-r--r--src/com/android/documentsui/NavigationViewManager.java24
-rw-r--r--src/com/android/documentsui/dirlist/DirectoryFragment.java7
-rw-r--r--src/com/android/documentsui/sorting/TableHeaderController.java25
-rw-r--r--src/com/android/documentsui/util/FlagUtils.kt2
-rw-r--r--tests/common/com/android/documentsui/testing/TestMenu.java7
-rw-r--r--tests/common/com/android/documentsui/testing/TestMenuItem.java14
-rw-r--r--tests/unit/com/android/documentsui/files/MenuManagerTest.java8
-rw-r--r--tests/unit/com/android/documentsui/picker/MenuManagerTest.java24
47 files changed, 501 insertions, 362 deletions
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 4a25b9a02..d88b70d71 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
@@ -16,10 +16,42 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- selected -->
+ <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: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">
+ <shape>
+ <corners android:radius="@dimen/grid_item_nameplate_radius" />
+ <stroke
+ android:width="@dimen/focus_ring_width"
+ android:color="?attr/colorSecondary" />
+ </shape>
+ </item>
</selector> \ No newline at end of file
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/layout-w900dp/column_headers.xml b/res/flag(com.android.documentsui.flags.use_material3)/layout-w900dp/column_headers.xml
index c692b4124..dcd3283b4 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/layout-w900dp/column_headers.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/layout-w900dp/column_headers.xml
@@ -27,111 +27,103 @@
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="@dimen/doc_header_height"
- android:paddingHorizontal="@dimen/list_container_padding"
+ android:baselineAligned="false"
+ android:gravity="center_vertical"
+ android:paddingStart="@dimen/table_header_padding_start"
+ android:paddingEnd="@dimen/table_header_padding_end"
android:visibility="gone">
-
+ <!-- Placeholder for MIME/thumbnail icon -->
+ <View
+ android:layout_width="@dimen/list_item_icon_size"
+ android:layout_height="@dimen/list_item_icon_size"
+ android:layout_gravity="center_vertical"
+ android:layout_marginEnd="@dimen/list_item_icon_margin_end"
+ android:layout_marginStart="0dp"/>
+
+ <!-- Column headers -->
<LinearLayout
- android:layout_width="match_parent"
+ android:layout_width="0dp"
android:layout_height="match_parent"
- android:baselineAligned="false"
- android:gravity="center_vertical"
- android:minHeight="@dimen/list_item_height"
- android:paddingStart="@dimen/list_item_padding_start"
- android:paddingEnd="@dimen/list_item_padding_end"
+ android:layout_weight="1"
android:orientation="horizontal">
- <!-- Placeholder for MIME/thumbnail icon -->
- <View
- android:layout_width="@dimen/list_item_icon_size"
- android:layout_height="@dimen/list_item_icon_size"
- android:layout_gravity="center_vertical"
- android:layout_marginEnd="@dimen/list_item_icon_margin_end"
- android:layout_marginStart="0dp"/>
-
- <!-- Column headers -->
- <LinearLayout
+
+ <com.android.documentsui.sorting.HeaderCell
+ android:id="@android:id/title"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="0.4"
+ android:layout_marginEnd="12dp"
+ android:clickable="true"
+ android:focusable="false"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:animateLayoutChanges="true">
+
+ <include layout="@layout/shared_cell_content" />
+ </com.android.documentsui.sorting.HeaderCell>
+
+ <com.android.documentsui.sorting.HeaderCell
+ android:id="@android:id/summary"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="0"
+ android:layout_marginEnd="0dp"
+ android:clickable="true"
+ android:focusable="false"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:animateLayoutChanges="true">
+
+ <include layout="@layout/shared_cell_content" />
+ </com.android.documentsui.sorting.HeaderCell>
+
+ <com.android.documentsui.sorting.HeaderCell
+ android:id="@+id/file_type"
android:layout_width="0dp"
android:layout_height="match_parent"
- android:layout_weight="1"
- android:orientation="horizontal">
-
- <com.android.documentsui.sorting.HeaderCell
- android:id="@android:id/title"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="0.4"
- android:layout_marginEnd="12dp"
- android:clickable="true"
- android:focusable="false"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:animateLayoutChanges="true">
-
- <include layout="@layout/shared_cell_content" />
- </com.android.documentsui.sorting.HeaderCell>
-
- <com.android.documentsui.sorting.HeaderCell
- android:id="@android:id/summary"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="0"
- android:layout_marginEnd="0dp"
- android:clickable="true"
- android:focusable="false"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:animateLayoutChanges="true">
-
- <include layout="@layout/shared_cell_content" />
- </com.android.documentsui.sorting.HeaderCell>
-
- <com.android.documentsui.sorting.HeaderCell
- android:id="@+id/file_type"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="0.2"
- android:clickable="true"
- android:focusable="false"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:animateLayoutChanges="true">
-
- <include layout="@layout/shared_cell_content" />
- </com.android.documentsui.sorting.HeaderCell>
-
- <com.android.documentsui.sorting.HeaderCell
- android:id="@+id/size"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="0.2"
- android:clickable="true"
- android:focusable="false"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:animateLayoutChanges="true">
-
- <include layout="@layout/shared_cell_content" />
- </com.android.documentsui.sorting.HeaderCell>
-
- <com.android.documentsui.sorting.HeaderCell
- android:id="@+id/date"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="0.2"
- android:clickable="true"
- android:focusable="false"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:animateLayoutChanges="true">
-
- <include layout="@layout/shared_cell_content" />
- </com.android.documentsui.sorting.HeaderCell>
- </LinearLayout>
-
- <!-- Placeholder for preview icon in picker mode -->
- <View
- android:id="@+id/preview_icon_placeholder"
- android:layout_width="@dimen/list_item_icon_size"
- android:layout_height="@dimen/list_item_icon_size"
- android:layout_marginEnd="@dimen/list_item_icon_margin_end" />
+ android:layout_weight="0.2"
+ android:clickable="true"
+ android:focusable="false"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:animateLayoutChanges="true">
+
+ <include layout="@layout/shared_cell_content" />
+ </com.android.documentsui.sorting.HeaderCell>
+
+ <com.android.documentsui.sorting.HeaderCell
+ android:id="@+id/size"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="0.2"
+ android:clickable="true"
+ android:focusable="false"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:animateLayoutChanges="true">
+
+ <include layout="@layout/shared_cell_content" />
+ </com.android.documentsui.sorting.HeaderCell>
+
+ <com.android.documentsui.sorting.HeaderCell
+ android:id="@+id/date"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="0.2"
+ android:clickable="true"
+ android:focusable="false"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:animateLayoutChanges="true">
+
+ <include layout="@layout/shared_cell_content" />
+ </com.android.documentsui.sorting.HeaderCell>
</LinearLayout>
+
+ <!-- Placeholder for preview icon in picker mode -->
+ <View
+ android:id="@+id/preview_icon_placeholder"
+ android:layout_width="@dimen/list_item_icon_size"
+ android:layout_height="@dimen/list_item_icon_size"
+ android:layout_marginEnd="@dimen/list_item_icon_margin_end" />
</LinearLayout> \ No newline at end of file
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/layout/column_headers.xml b/res/flag(com.android.documentsui.flags.use_material3)/layout/column_headers.xml
index fde349b88..18a8dc8f7 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/layout/column_headers.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/layout/column_headers.xml
@@ -15,6 +15,39 @@
limitations under the License.
-->
-<!-- A placeholder of table header on small screens. This won't inflate any view when it's included
- into other layouts. -->
-<merge />
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/table_header"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/doc_header_height"
+ android:baselineAligned="false"
+ android:gravity="center_vertical"
+ android:paddingStart="@dimen/table_header_padding_start"
+ android:paddingEnd="@dimen/table_header_padding_end"
+ android:background="?attr/colorSurfaceBright"
+ android:visibility="gone">
+
+ <!-- Placeholder for MIME/thumbnail icon -->
+ <View
+ android:layout_width="@dimen/list_item_icon_size"
+ android:layout_height="@dimen/list_item_icon_size"
+ android:layout_gravity="center_vertical"
+ android:layout_marginEnd="@dimen/list_item_icon_margin_end"
+ android:layout_marginStart="0dp"/>
+
+ <!-- Column headers: Name only for compact/medium size screen -->
+ <com.android.documentsui.sorting.HeaderCell
+ android:id="@android:id/title"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:clickable="true"
+ android:focusable="false"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:animateLayoutChanges="true">
+
+ <include layout="@layout/shared_cell_content" />
+ </com.android.documentsui.sorting.HeaderCell>
+</LinearLayout> \ No newline at end of file
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/layout/directory_app_bar.xml b/res/flag(com.android.documentsui.flags.use_material3)/layout/directory_app_bar.xml
index 54a6a7cb2..94e4b953d 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/layout/directory_app_bar.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/layout/directory_app_bar.xml
@@ -23,29 +23,40 @@
android:layout_height="wrap_content"
android:touchscreenBlocksFocus="false">
+ <!-- Technically we don't need this CollapsingToolbarLayout wrapper when use_material3 flag
+ is ON, because we don't want to hide anything in the app header area when scrolling, but
+ some files (e.g. NavigationViewManager and others) uses the existence of this element to
+ do some specific logic, hence leaving it here with "noScroll" behavior.
+ -->
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:titleEnabled="false"
- app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">
+ app:layout_scrollFlags="noScroll">
- <androidx.core.widget.NestedScrollView
+ <LinearLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:background="?attr/colorSurfaceBright">
<include layout="@layout/directory_header" />
- <!-- column headers are empty on small screens, in portrait or in grid mode. -->
+ <com.google.android.material.divider.MaterialDivider
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:dividerColor="?attr/colorSurfaceContainer"
+ app:dividerThickness="@dimen/main_container_section_gap" />
+
<include layout="@layout/column_headers"/>
- </androidx.core.widget.NestedScrollView>
+ </LinearLayout>
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
- app:layout_collapseMode="pin"
android:touchscreenBlocksFocus="false">
<TextView
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 de6b3d8a9..8e23aad19 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
@@ -40,7 +40,6 @@
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:paddingBottom="@dimen/file_area_padding_bottom"
app:layout_behavior="@string/scrolling_behavior">
<FrameLayout
@@ -66,21 +65,33 @@
</FrameLayout>
<!-- Footer of right hand side: Breadcrumbs and Picker footer. -->
- <com.android.documentsui.HorizontalBreadcrumb
- android:id="@+id/horizontal_breadcrumb"
+ <LinearLayout
+ android:id="@+id/bottom_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_gravity="bottom"
- android:background="?attr/colorSurfaceBright"
- />
+ android:orientation="vertical"
+ android:layout_gravity="bottom">
- <androidx.coordinatorlayout.widget.CoordinatorLayout
- android:id="@+id/container_save"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom|center_horizontal"
- android:background="?android:attr/colorBackgroundFloating"
- />
+ <com.google.android.material.divider.MaterialDivider
+ android:id="@+id/breadcrumb_top_divider"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:dividerColor="?attr/colorSurfaceContainer"
+ app:dividerThickness="@dimen/main_container_section_gap" />
+
+ <com.android.documentsui.HorizontalBreadcrumb
+ android:id="@+id/horizontal_breadcrumb"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="?attr/colorSurfaceBright" />
+
+ <androidx.coordinatorlayout.widget.CoordinatorLayout
+ android:id="@+id/container_save"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="?android:attr/colorBackgroundFloating" />
+
+ </LinearLayout>
<!-- Top section: toolbar, search chips, profile tab -->
<include layout="@layout/directory_app_bar"/>
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 574978c74..f854cf5f8 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
@@ -14,171 +14,162 @@
limitations under the License.
-->
-<com.google.android.material.card.MaterialCardView
- xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout 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:clickable="true"
+ android:defaultFocusHighlightEnabled="false"
android:focusable="true"
- app:cardBackgroundColor="@android:color/transparent"
- app:cardElevation="0dp"
- app:strokeWidth="0dp">
-
- <RelativeLayout
- android:id="@+id/grid_item_layout"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/grid_item_layout_marginStart"
- android:layout_marginEnd="@dimen/grid_item_layout_marginEnd"
- android:layout_marginTop="@dimen/grid_item_layout_marginTop">
-
- <!-- 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: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: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: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">
+ 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">
<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>
+ 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" />
- <!-- Item nameplate. Has some text fields (title, size, mod-time, etc). -->
+ </LinearLayout>
+ <!-- Bottom row. -->
<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:padding="@dimen/grid_item_nameplate_padding">
-
- <!-- Top row. -->
- <LinearLayout
- android:layout_width="match_parent"
+ 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: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_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: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>
+ android:ellipsize="end"
+ android:singleLine="true"
+ android:textAlignment="viewStart"
+ android:textAppearance="@style/ItemCaptionText" />
</LinearLayout>
- </RelativeLayout>
+ </LinearLayout>
-</com.google.android.material.card.MaterialCardView>
+</RelativeLayout> \ No newline at end of file
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/layout-w900dp/shared_cell_content.xml b/res/flag(com.android.documentsui.flags.use_material3)/layout/shared_cell_content.xml
index f269afdbe..f269afdbe 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/layout-w900dp/shared_cell_content.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/layout/shared_cell_content.xml
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/values-w600dp/dimens.xml b/res/flag(com.android.documentsui.flags.use_material3)/values-w600dp/dimens.xml
index 4707991f6..880d6c0b0 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/values-w600dp/dimens.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/values-w600dp/dimens.xml
@@ -26,5 +26,10 @@
<dimen name="toolbar_padding_start">@dimen/main_container_padding_start</dimen>
<dimen name="list_container_padding">@dimen/space_extra_small_6</dimen>
+
+ <!-- list_container_padding + list_item_padding_start -->
+ <dimen name="table_header_padding_start">28dp</dimen>
+ <!-- list_container_padding + list_item_padding_end -->
+ <dimen name="table_header_padding_end">20dp</dimen>
</resources>
diff --git a/res/flag(com.android.documentsui.flags.use_material3)/values-w900dp/dimens.xml b/res/flag(com.android.documentsui.flags.use_material3)/values-w900dp/dimens.xml
index d37f3af68..24ff2b17b 100644
--- a/res/flag(com.android.documentsui.flags.use_material3)/values-w900dp/dimens.xml
+++ b/res/flag(com.android.documentsui.flags.use_material3)/values-w900dp/dimens.xml
@@ -36,4 +36,9 @@
<dimen name="toolbar_padding_end">@dimen/space_small_3</dimen>
<dimen name="drawer_padding_top">@dimen/space_small_1</dimen>
+
+ <!-- list_container_padding + list_item_padding_start -->
+ <dimen name="table_header_padding_start">32dp</dimen>
+ <!-- list_container_padding + list_item_padding_end -->
+ <dimen name="table_header_padding_end">12dp</dimen>
</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 65740f15c..0e532d39a 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
@@ -14,7 +14,7 @@
limitations under the License.
-->
-<!-- Dimensions/sizes for size Compact (<=600dp). -->
+<!-- Dimensions/sizes for size Compact (<600dp). -->
<resources>
<!-- Material design rounded radius -->
<dimen name="material_round_radius">2dp</dimen>
@@ -23,10 +23,6 @@
<dimen name="profile_tab_padding">0dp</dimen>
<dimen name="grid_container_padding">20dp</dimen>
<dimen name="list_container_padding">@dimen/space_extra_small_4</dimen>
- <!-- For compact screen, file area occupies the whole screen height, when use_material3 flag is
- ON we show breadcrumb at the bottom, so we need to add padding (breadcrumb height) at the
- bottom to make sure breadcrumb won't over-shadow the file area. -->
- <dimen name="file_area_padding_bottom">48dp</dimen>
<dimen name="icon_size">40dp</dimen>
<dimen name="button_touch_size">48dp</dimen>
<dimen name="root_icon_size">24dp</dimen>
@@ -68,9 +64,9 @@
<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_layout_marginStart">@dimen/space_extra_small_2</dimen>
- <dimen name="grid_item_layout_marginEnd">@dimen/space_extra_small_2</dimen>
- <dimen name="grid_item_layout_marginTop">@dimen/space_extra_small_2</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>
<dimen name="grid_item_thumbnail_width">80dp</dimen>
<dimen name="grid_item_thumbnail_height">80dp</dimen>
<dimen name="grid_item_thumbnail_radius">12dp</dimen>
@@ -82,6 +78,7 @@
<dimen name="grid_item_nameplate_padding">4dp</dimen>
<dimen name="grid_item_nameplate_marginTop">@dimen/space_extra_small_2</dimen>
<dimen name="grid_item_nameplate_radius">8dp</dimen>
+ <dimen name="grid_item_nameplate_inner_radius">4dp</dimen>
<dimen name="grid_item_elevation">2dp</dimen>
<dimen name="grid_item_radius">12dp</dimen>
<dimen name="max_drawer_width">280dp</dimen>
@@ -90,6 +87,11 @@
<dimen name="briefcase_icon_size_photo">24dp</dimen>
<dimen name="button_corner_radius">2dp</dimen>
+ <!-- list_container_padding + list_item_padding_start -->
+ <dimen name="table_header_padding_start">24dp</dimen>
+ <!-- list_container_padding + list_item_padding_end -->
+ <dimen name="table_header_padding_end">16dp</dimen>
+
<dimen name="bottom_sheet_dialog_radius">28dp</dimen>
<dimen name="drawer_edge_width">12dp</dimen>
@@ -115,7 +117,7 @@
<dimen name="drag_shadow_padding">8dp</dimen>
<dimen name="doc_header_sort_icon_size">32dp</dimen>
- <dimen name="doc_header_height">60dp</dimen>
+ <dimen name="doc_header_height">48dp</dimen>
<dimen name="dropdown_sort_widget_margin">12dp</dimen>
<dimen name="dropdown_sort_widget_size">54dp</dimen>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 1984af705..c4c27d5a1 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -18,7 +18,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="missing_rename_error" msgid="9098952207447981103">"Morate da preimenujete ovo"</string>
<string name="add_folder_name_error" msgid="6014615052491406810">"Morate da dodate naziv foldera"</string>
- <string name="files_label" msgid="771781190045103748">"Datoteke"</string>
+ <string name="files_label" msgid="771781190045103748">"Fajlovi"</string>
<string name="downloads_label" msgid="5462789470049501103">"Preuzimanja"</string>
<!-- no translation found for app_label (8089292432455111409) -->
<skip />
@@ -272,7 +272,7 @@
<item quantity="other">Izabrano je <xliff:g id="COUNT_1">%1$d</xliff:g> stavki</item>
</plurals>
<string name="root_info_header_recent" msgid="5654901877295332262">"Nedavne datoteke"</string>
- <string name="root_info_header_global_search" msgid="4904078222280496152">"Datoteke"</string>
+ <string name="root_info_header_global_search" msgid="4904078222280496152">"Fajlovi"</string>
<string name="root_info_header_downloads" msgid="8848161246921154115">"Datoteke u Preuzimanjima"</string>
<string name="root_info_header_storage" msgid="2989014130584927442">"Datoteke na uređaju <xliff:g id="DEVICE">%1$s</xliff:g>"</string>
<string name="root_info_header_folder" msgid="5851172222368049864">"Datoteke u folderu <xliff:g id="FOLDER">%1$s</xliff:g>"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index d73d376fa..8d1511d9d 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"Не можете да местите файлове от друго приложение."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"Показва се в табличен изглед."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Показва се в списъчен изглед."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 477944a51..dee03702a 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"You can’t move files from another app."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"Showing in grid mode."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Showing in list mode."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 477944a51..dee03702a 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"You can’t move files from another app."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"Showing in grid mode."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Showing in list mode."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 477944a51..dee03702a 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"You can’t move files from another app."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"Showing in grid mode."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Showing in list mode."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 09b071f76..51c818867 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -312,6 +312,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"No puedes transferir archivos de otra app."</string>
<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>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 1f3c0e261..abbd986c4 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"نمی‌توانید فایل‌ها را از برنامه دیگری انتقال دهید."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"نمایش در حالت جدولی."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"نمایش در حالت فهرست."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 22031245e..abb2f65bf 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -312,6 +312,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"Vous ne pouvez pas déplacer de fichiers d\'une autre appli."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"Affichage en mode grille."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Affichage en mode liste."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index db82943b7..3a75d0d43 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"Nem lehet áthelyezni fájlokat más alkalmazásból."</string>
<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>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 9cf0e2a60..35614487e 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"Դուք չեք կարող տեղափոխել ֆայլեր այլ հավելվածից։"</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"Ցուցադրվում է ցանցի տեսքով։"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Ցուցադրվում է ցանկի տեսքով։"</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 4ec26ccb4..b2601a646 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"Ekki er hægt að færa skrár úr öðru forriti."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"Sýnir töfluyfirlit."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Sýnir listayfirlit."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 4ce7438fc..bdc34e292 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -312,6 +312,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"Impossibile spostare file da un\'altra app."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"Visualizzazione in modalità griglia."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Visualizzazione in modalità elenco."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index aeb7992f6..ea620497e 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"別のアプリからファイルを移動することはできません。"</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"グリッドモードで表示しています。"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"リストモードで表示しています。"</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 592103f84..b7c2b9cc4 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"ფაილების სხვა აპიდან გადმოტანა შეუძლებელია."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"ნაჩვენებია ბადის რეჟიმში."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"ნაჩვენებია სიის რეჟიმში."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 47bb3985d..1b888d68b 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"ನೀವು ಬೇರೊಂದು ಆ್ಯಪ್‌ನಿಂದ ಫೈಲ್‌ಗಳನ್ನು ಸರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"ಗ್ರಿಡ್ ಮೋಡ್‌ನಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತಿದೆ."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"ಪಟ್ಟಿ ಮೋಡ್‌ನಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತಿದೆ."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 3853ecbf7..e3d153495 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -110,7 +110,7 @@
<string name="cant_save_to_cross_profile_error_title" msgid="5158984057654779022">"<xliff:g id="PROFILE">%1$s</xliff:g> профилине сактоого болбойт"</string>
<string name="cant_save_to_cross_profile_error_message" msgid="5845240315510422749">"IT администратору <xliff:g id="PROFILE_0">%1$s</xliff:g> файлдарын <xliff:g id="PROFILE_1">%2$s</xliff:g> профилине сактоого тыюу салды"</string>
<string name="cross_profile_action_not_allowed_title" msgid="6611281348716476478">"Бул аракетке уруксат жок"</string>
- <string name="cross_profile_action_not_allowed_message" msgid="7331275433061690947">"Көбүрөөк маалымат үчүн, IT администраторуңузга кайрылыңыз"</string>
+ <string name="cross_profile_action_not_allowed_message" msgid="7331275433061690947">"Кененирээк маалымат алгыңыз келсе, IT администраторуңузга кайрылыңыз"</string>
<string name="root_recent" msgid="1080156975424341623">"Акыркы"</string>
<string name="root_available_bytes" msgid="8269870862691408864">"<xliff:g id="SIZE">%1$s</xliff:g> бош"</string>
<string name="root_type_service" msgid="6521366147466512289">"Сактагыч кызматтар"</string>
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"Башка колдонмодогу файлдарды жылдырууга болбойт."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"Торчо режиминде көрсөтүлүүдө."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Тизме режиминде көрсөтүлүүдө."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 415b5469e..96a36dc79 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -334,6 +334,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"Negalite perkelti failų iš kitos programos."</string>
<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>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 462184507..9bebc7054 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"മറ്റ് ആപ്പിൽ നിന്ന് ഫയലുകൾ നീക്കാൻ നിങ്ങൾക്ക് കഴിയില്ല."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"ഗ്രിഡ് മോഡിൽ കാണിക്കുന്നു."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"ലിസ്‌റ്റ് മോഡിൽ കാണിക്കുന്നു."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index f9a0238b3..2cfa00bc9 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -312,6 +312,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"Não pode mover ficheiros de outra app."</string>
<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>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index e73cc5f0f..d3fccc33a 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -334,6 +334,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"Nemôžete presúvať súbory z inej aplikácie."</string>
<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>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 40430030b..a854c66bd 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -334,6 +334,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"Datotek iz druge aplikacije ni mogoče premakniti."</string>
<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>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 035bdf97d..6d2a833b5 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -18,7 +18,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="missing_rename_error" msgid="9098952207447981103">"Морате да преименујете ово"</string>
<string name="add_folder_name_error" msgid="6014615052491406810">"Морате да додате назив фолдера"</string>
- <string name="files_label" msgid="771781190045103748">"Датотеке"</string>
+ <string name="files_label" msgid="771781190045103748">"Фајлови"</string>
<string name="downloads_label" msgid="5462789470049501103">"Преузимања"</string>
<!-- no translation found for app_label (8089292432455111409) -->
<skip />
@@ -272,7 +272,7 @@
<item quantity="other">Изабрано је <xliff:g id="COUNT_1">%1$d</xliff:g> ставки</item>
</plurals>
<string name="root_info_header_recent" msgid="5654901877295332262">"Недавне датотеке"</string>
- <string name="root_info_header_global_search" msgid="4904078222280496152">"Датотеке"</string>
+ <string name="root_info_header_global_search" msgid="4904078222280496152">"Фајлови"</string>
<string name="root_info_header_downloads" msgid="8848161246921154115">"Датотеке у Преузимањима"</string>
<string name="root_info_header_storage" msgid="2989014130584927442">"Датотеке на уређају <xliff:g id="DEVICE">%1$s</xliff:g>"</string>
<string name="root_info_header_folder" msgid="5851172222368049864">"Датотеке у фолдеру <xliff:g id="FOLDER">%1$s</xliff:g>"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 0040eaa36..d8335b387 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"Du kan inte flytta filer från en annan app."</string>
<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>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 178a14435..b3e0b150d 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"మీరు వేరే ఇతర యాప్ నుండి ఫైల్స్‌ను తరలించలేరు."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"గ్రిడ్ మోడ్‌లో చూపుతోంది."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"లిస్ట్ మోడ్‌లో చూపుతోంది."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 6fdee1ef1..57eb082a1 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"คุณย้ายไฟล์จากแอปอื่นไม่ได้"</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"กำลังแสดงในโหมดตารางกริด"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"กำลังแสดงในโหมดรายการ"</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index a834e85d6..e0720d6a4 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"Hindi ka makakapaglipat ng mga file mula sa ibang app."</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"Ipinapakita sa grid mode."</string>
<string name="list_mode_showing" msgid="1225413902295895166">"Ipinapakita sa list mode."</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 8e18775b3..ce88831f5 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -290,6 +290,5 @@
<string name="drag_from_another_app" msgid="8310249276199969905">"آپ کسی اور ایپ سے فائلیں منتقل نہیں کر سکتے ہیں۔"</string>
<string name="grid_mode_showing" msgid="2803166871485028508">"گرڈ وضع میں دکھائی جا رہی ہیں۔"</string>
<string name="list_mode_showing" msgid="1225413902295895166">"فہرست وضع میں دکھائی جا رہی ہیں۔"</string>
- <!-- no translation found for bullet (5606740650312122766) -->
- <skip />
+ <string name="bullet" msgid="5606740650312122766">"•"</string>
</resources>
diff --git a/src/com/android/documentsui/HorizontalBreadcrumb.java b/src/com/android/documentsui/HorizontalBreadcrumb.java
index 94f0e13f9..cb25479b3 100644
--- a/src/com/android/documentsui/HorizontalBreadcrumb.java
+++ b/src/com/android/documentsui/HorizontalBreadcrumb.java
@@ -25,6 +25,7 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
+import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -45,6 +46,9 @@ public final class HorizontalBreadcrumb extends RecyclerView implements Breadcru
private LinearLayoutManager mLayoutManager;
private BreadcrumbAdapter mAdapter;
private IntConsumer mClickListener;
+ // Represents the top divider (border) of the breadcrumb on the compact size screen.
+ // It will be null on other screen sizes, or when the use_material3 flag is OFF.
+ private @Nullable View mTopDividerView;
public HorizontalBreadcrumb(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
@@ -61,12 +65,14 @@ public final class HorizontalBreadcrumb extends RecyclerView implements Breadcru
@Override
public void setup(Environment env,
com.android.documentsui.base.State state,
- IntConsumer listener) {
+ IntConsumer listener,
+ @Nullable View topDivider) {
mClickListener = listener;
mLayoutManager = new HorizontalBreadcrumbLinearLayoutManager(
getContext(), LinearLayoutManager.HORIZONTAL, false);
mAdapter = new BreadcrumbAdapter(state, env, this::onKey);
+ mTopDividerView = topDivider;
// Since we are using GestureDetector to detect click events, a11y services don't know which
// views are clickable because we aren't using View.OnClickListener. Thus, we need to use a
// custom accessibility delegate to route click events correctly.
@@ -109,6 +115,9 @@ public final class HorizontalBreadcrumb extends RecyclerView implements Breadcru
setVisibility(GONE);
setAdapter(null);
}
+ if (mTopDividerView != null) {
+ mTopDividerView.setVisibility(visibility ? VISIBLE : GONE);
+ }
mAdapter.updateLastItemSize();
}
diff --git a/src/com/android/documentsui/MenuManager.java b/src/com/android/documentsui/MenuManager.java
index 5f17d7e02..eb4f98aab 100644
--- a/src/com/android/documentsui/MenuManager.java
+++ b/src/com/android/documentsui/MenuManager.java
@@ -25,6 +25,7 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
+import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
@@ -183,6 +184,11 @@ public abstract class MenuManager {
updateRename(rename, selectionDetails);
updateViewInOwner(viewInOwner, selectionDetails);
+ if (isZipNgFlagEnabled()) {
+ updateExtractHere(menu.findItem(R.id.dir_menu_extract_here), selectionDetails);
+ updateBrowse(menu.findItem(R.id.dir_menu_browse), selectionDetails);
+ }
+
updateContextMenu(menu, selectionDetails);
}
@@ -383,6 +389,14 @@ public abstract class MenuManager {
Menus.setEnabledAndVisible(extractTo, false);
}
+ protected void updateExtractHere(@NonNull MenuItem it, SelectionDetails selection) {
+ Menus.setEnabledAndVisible(it, false);
+ }
+
+ protected void updateBrowse(@NonNull MenuItem it, SelectionDetails selection) {
+ Menus.setEnabledAndVisible(it, false);
+ }
+
protected void updatePasteInto(MenuItem pasteInto, SelectionDetails selectionDetails) {
Menus.setEnabledAndVisible(pasteInto, false);
}
diff --git a/src/com/android/documentsui/NavigationViewManager.java b/src/com/android/documentsui/NavigationViewManager.java
index 86b5e517f..12afbd69b 100644
--- a/src/com/android/documentsui/NavigationViewManager.java
+++ b/src/com/android/documentsui/NavigationViewManager.java
@@ -27,10 +27,10 @@ import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
import android.view.ViewOutlineProvider;
import android.view.Window;
import android.view.WindowManager;
-import android.widget.FrameLayout;
import androidx.annotation.ColorRes;
import androidx.annotation.Nullable;
@@ -144,7 +144,13 @@ public class NavigationViewManager extends SelectionTracker.SelectionObserver<St
mState = state;
mEnv = env;
mBreadcrumb = breadcrumb;
- mBreadcrumb.setup(env, state, this::onNavigationItemSelected);
+ mBreadcrumb.setup(
+ env,
+ state,
+ this::onNavigationItemSelected,
+ isUseMaterial3FlagEnabled()
+ ? activity.findViewById(R.id.breadcrumb_top_divider)
+ : null);
mConfigStore = configStore;
mInjector = injector;
mProfileTabs =
@@ -297,7 +303,10 @@ public class NavigationViewManager extends SelectionTracker.SelectionObserver<St
}
public void update() {
- updateScrollFlag();
+ // If use_material3 flag is ON, we don't want any scroll behavior, thus skipping this logic.
+ if (!isUseMaterial3FlagEnabled()) {
+ updateScrollFlag();
+ }
updateToolbar();
mProfileTabs.updateView();
@@ -467,8 +476,11 @@ public class NavigationViewManager extends SelectionTracker.SelectionObserver<St
}
if (!mIsActionModeActivated) {
- FrameLayout.LayoutParams headerLayoutParams =
- (FrameLayout.LayoutParams) mHeader.getLayoutParams();
+ // This could be either FrameLayout.LayoutParams (when use_material3 flag is OFF) or
+ // LinearLayout.LayoutParams (when use_material3 flag is ON), so use the common parent
+ // class instead to make it work for both scenarios.
+ ViewGroup.MarginLayoutParams headerLayoutParams =
+ (ViewGroup.MarginLayoutParams) mHeader.getLayoutParams();
headerLayoutParams.setMargins(0, /* top= */ headerTopOffset, 0, 0);
mHeader.setLayoutParams(headerLayoutParams);
}
@@ -498,7 +510,7 @@ public class NavigationViewManager extends SelectionTracker.SelectionObserver<St
}
interface Breadcrumb {
- void setup(Environment env, State state, IntConsumer listener);
+ void setup(Environment env, State state, IntConsumer listener, @Nullable View topDivider);
void show(boolean visibility);
diff --git a/src/com/android/documentsui/dirlist/DirectoryFragment.java b/src/com/android/documentsui/dirlist/DirectoryFragment.java
index 855a8273d..6de42db59 100644
--- a/src/com/android/documentsui/dirlist/DirectoryFragment.java
+++ b/src/com/android/documentsui/dirlist/DirectoryFragment.java
@@ -827,6 +827,13 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
}
private int getSaveLayoutHeight() {
+ // When use_material3 flag is on, the bottom section not only includes the container_save,
+ // but also includes the breadcrumb and the divider, so we need to use the total height
+ // for their parent container.
+ if (isUseMaterial3FlagEnabled()) {
+ View bottomSection = getActivity().findViewById(R.id.bottom_container);
+ return bottomSection == null ? 0 : bottomSection.getHeight();
+ }
View containerSave = getActivity().findViewById(R.id.container_save);
return containerSave == null ? 0 : containerSave.getHeight();
}
diff --git a/src/com/android/documentsui/sorting/TableHeaderController.java b/src/com/android/documentsui/sorting/TableHeaderController.java
index cb72ac916..fda7b2713 100644
--- a/src/com/android/documentsui/sorting/TableHeaderController.java
+++ b/src/com/android/documentsui/sorting/TableHeaderController.java
@@ -28,10 +28,11 @@ import javax.annotation.Nullable;
/** View controller for table header that associates header cells in table header and columns. */
public final class TableHeaderController implements SortController.WidgetController {
private final HeaderCell mTitleCell;
- private final HeaderCell mSummaryCell;
- private final HeaderCell mSizeCell;
- private final HeaderCell mFileTypeCell;
- private final HeaderCell mDateCell;
+ // The 4 cells below will be null in compact/medium screen sizes when use_material3 flag is ON.
+ private final @Nullable HeaderCell mSummaryCell;
+ private final @Nullable HeaderCell mSizeCell;
+ private final @Nullable HeaderCell mFileTypeCell;
+ private final @Nullable HeaderCell mDateCell;
private final SortModel mModel;
// We assign this here porque each method reference creates a new object
// instance (which is wasteful).
@@ -66,10 +67,18 @@ public final class TableHeaderController implements SortController.WidgetControl
private void onModelUpdate(SortModel model, int updateTypeUnspecified) {
bindCell(mTitleCell, SortModel.SORT_DIMENSION_ID_TITLE);
- bindCell(mSummaryCell, SortModel.SORT_DIMENSION_ID_SUMMARY);
- bindCell(mSizeCell, SortModel.SORT_DIMENSION_ID_SIZE);
- bindCell(mFileTypeCell, SortModel.SORT_DIMENSION_ID_FILE_TYPE);
- bindCell(mDateCell, SortModel.SORT_DIMENSION_ID_DATE);
+ if (mSummaryCell != null) {
+ bindCell(mSummaryCell, SortModel.SORT_DIMENSION_ID_SUMMARY);
+ }
+ if (mSizeCell != null) {
+ bindCell(mSizeCell, SortModel.SORT_DIMENSION_ID_SIZE);
+ }
+ if (mFileTypeCell != null) {
+ bindCell(mFileTypeCell, SortModel.SORT_DIMENSION_ID_FILE_TYPE);
+ }
+ if (mDateCell != null) {
+ bindCell(mDateCell, SortModel.SORT_DIMENSION_ID_DATE);
+ }
}
@Override
diff --git a/src/com/android/documentsui/util/FlagUtils.kt b/src/com/android/documentsui/util/FlagUtils.kt
index eee51be89..22febc317 100644
--- a/src/com/android/documentsui/util/FlagUtils.kt
+++ b/src/com/android/documentsui/util/FlagUtils.kt
@@ -31,7 +31,7 @@ class FlagUtils {
@JvmStatic
fun isZipNgFlagEnabled(): Boolean {
- return Flags.zipNgRo()
+ return Flags.zipNgRo() && Flags.useMaterial3()
}
@JvmStatic
diff --git a/tests/common/com/android/documentsui/testing/TestMenu.java b/tests/common/com/android/documentsui/testing/TestMenu.java
index 9795fd373..a97e46e5d 100644
--- a/tests/common/com/android/documentsui/testing/TestMenu.java
+++ b/tests/common/com/android/documentsui/testing/TestMenu.java
@@ -26,7 +26,6 @@ import com.android.documentsui.R;
import org.mockito.Mockito;
/**
- *
* Test copy of {@link android.view.Menu}.
*
* We use abstract so we don't have to implement all the necessary methods from the interface,
@@ -55,6 +54,8 @@ public abstract class TestMenu implements Menu {
R.id.dir_menu_paste_into_folder,
R.id.dir_menu_inspect,
R.id.dir_menu_open_in_new_window,
+ R.id.dir_menu_extract_here,
+ R.id.dir_menu_browse,
R.id.root_menu_eject_root,
R.id.root_menu_open_in_new_window,
R.id.root_menu_paste_into_folder,
@@ -89,7 +90,6 @@ public abstract class TestMenu implements Menu {
}
-
public static TestMenu create(int... ids) {
final TestMenu menu = Mockito.mock(TestMenu.class,
Mockito.withSettings().defaultAnswer(Mockito.CALLS_REAL_METHODS));
@@ -103,7 +103,8 @@ public abstract class TestMenu implements Menu {
item.setActionView(Mockito.mock(SearchView.class));
}
- if (id == R.id.option_menu_extract_all) {
+ if (id == R.id.option_menu_extract_all || id == R.id.dir_menu_extract_here
+ || id == R.id.dir_menu_browse) {
item.setEnabled(false);
item.setVisible(false);
}
diff --git a/tests/common/com/android/documentsui/testing/TestMenuItem.java b/tests/common/com/android/documentsui/testing/TestMenuItem.java
index 97ac602db..5463237b2 100644
--- a/tests/common/com/android/documentsui/testing/TestMenuItem.java
+++ b/tests/common/com/android/documentsui/testing/TestMenuItem.java
@@ -27,14 +27,12 @@ import androidx.annotation.StringRes;
import org.mockito.Mockito;
/**
-*
-* Test copy of {@link android.view.MenuItem}.
-*
-* We use abstract so we don't have to implement all the necessary methods from the interface,
-* and we use Mockito to just mock out the methods we need.
-* To get an instance, use {@link #create(int)}.
-*/
-
+ * Test copy of {@link android.view.MenuItem}.
+ *
+ * We use abstract so we don't have to implement all the necessary methods from the interface,
+ * and we use Mockito to just mock out the methods we need.
+ * To get an instance, use {@link #create(int)}.
+ */
public abstract class TestMenuItem implements MenuItem {
boolean enabled;
diff --git a/tests/unit/com/android/documentsui/files/MenuManagerTest.java b/tests/unit/com/android/documentsui/files/MenuManagerTest.java
index ac7b1c4f7..2239dd4fb 100644
--- a/tests/unit/com/android/documentsui/files/MenuManagerTest.java
+++ b/tests/unit/com/android/documentsui/files/MenuManagerTest.java
@@ -79,6 +79,8 @@ public final class MenuManagerTest {
private TestMenuItem dirPasteIntoFolder;
private TestMenuItem dirInspect;
private TestMenuItem dirOpenInNewWindow;
+ private TestMenuItem mDirExtractHere;
+ private TestMenuItem mDirBrowse;
/* Root List Context Menu items */
private TestMenuItem rootEjectRoot;
@@ -156,6 +158,8 @@ public final class MenuManagerTest {
dirPasteIntoFolder = testMenu.findItem(R.id.dir_menu_paste_into_folder);
dirInspect = testMenu.findItem(R.id.dir_menu_inspect);
dirOpenInNewWindow = testMenu.findItem(R.id.dir_menu_open_in_new_window);
+ mDirExtractHere = testMenu.findItem(R.id.dir_menu_extract_here);
+ mDirBrowse = testMenu.findItem(R.id.dir_menu_browse);
rootEjectRoot = testMenu.findItem(R.id.root_menu_eject_root);
rootOpenInNewWindow = testMenu.findItem(R.id.root_menu_open_in_new_window);
@@ -545,6 +549,8 @@ public final class MenuManagerTest {
mDirDeselectAll.assertDisabledAndInvisible();
dirPasteFromClipboard.assertDisabledAndInvisible();
dirCreateDir.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -616,6 +622,8 @@ public final class MenuManagerTest {
dirRename.assertDisabledAndInvisible();
dirCreateDir.assertEnabledAndVisible();
dirDelete.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
diff --git a/tests/unit/com/android/documentsui/picker/MenuManagerTest.java b/tests/unit/com/android/documentsui/picker/MenuManagerTest.java
index 266489d61..485073128 100644
--- a/tests/unit/com/android/documentsui/picker/MenuManagerTest.java
+++ b/tests/unit/com/android/documentsui/picker/MenuManagerTest.java
@@ -70,6 +70,8 @@ public final class MenuManagerTest {
private TestMenuItem dirViewInOwner;
private TestMenuItem dirOpenInNewWindow;
private TestMenuItem dirPasteIntoFolder;
+ private TestMenuItem mDirExtractHere;
+ private TestMenuItem mDirBrowse;
/* Root List Context Menu items */
private TestMenuItem rootEjectRoot;
@@ -136,6 +138,8 @@ public final class MenuManagerTest {
dirViewInOwner = testMenu.findItem(R.id.dir_menu_view_in_owner);
dirOpenInNewWindow = testMenu.findItem(R.id.dir_menu_open_in_new_window);
dirPasteIntoFolder = testMenu.findItem(R.id.dir_menu_paste_into_folder);
+ mDirExtractHere = testMenu.findItem(R.id.dir_menu_extract_here);
+ mDirBrowse = testMenu.findItem(R.id.dir_menu_browse);
rootEjectRoot = testMenu.findItem(R.id.root_menu_eject_root);
rootOpenInNewWindow = testMenu.findItem(R.id.root_menu_open_in_new_window);
@@ -351,6 +355,8 @@ public final class MenuManagerTest {
mDirDeselectAll.assertDisabledAndInvisible();
dirPasteFromClipboard.assertDisabledAndInvisible();
dirCreateDir.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -363,6 +369,8 @@ public final class MenuManagerTest {
dirSelectAll.assertEnabledAndVisible();
dirPasteFromClipboard.assertDisabledAndInvisible();
dirCreateDir.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -375,6 +383,8 @@ public final class MenuManagerTest {
dirSelectAll.assertEnabledAndVisible();
dirPasteFromClipboard.assertDisabledAndInvisible();
dirCreateDir.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -387,6 +397,8 @@ public final class MenuManagerTest {
dirSelectAll.assertEnabledAndVisible();
dirPasteFromClipboard.assertEnabledAndVisible();
dirCreateDir.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -398,6 +410,8 @@ public final class MenuManagerTest {
dirSelectAll.assertEnabledAndVisible();
dirPasteFromClipboard.assertDisabledAndInvisible();
dirCreateDir.assertEnabledAndVisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -423,6 +437,8 @@ public final class MenuManagerTest {
mDirCompress.assertDisabledAndInvisible();
dirRename.assertDisabledAndInvisible();
dirDelete.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -438,6 +454,8 @@ public final class MenuManagerTest {
dirPasteIntoFolder.assertDisabledAndInvisible();
dirRename.assertDisabledAndInvisible();
dirDelete.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -451,6 +469,8 @@ public final class MenuManagerTest {
dirCopyToClipboard.assertEnabledAndVisible();
mDirCompress.assertDisabledAndInvisible();
dirDelete.assertEnabledAndVisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -465,6 +485,8 @@ public final class MenuManagerTest {
dirCopyToClipboard.assertDisabledAndInvisible();
mDirCompress.assertDisabledAndInvisible();
dirDelete.assertEnabledAndVisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test
@@ -478,6 +500,8 @@ public final class MenuManagerTest {
dirCopyToClipboard.assertEnabledAndVisible();
mDirCompress.assertDisabledAndInvisible();
dirDelete.assertDisabledAndInvisible();
+ mDirExtractHere.assertDisabledAndInvisible();
+ mDirBrowse.assertDisabledAndInvisible();
}
@Test