diff options
42 files changed, 469 insertions, 366 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 f14f449a9..3e09f1b3e 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 f14f449a9..3e09f1b3e 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 f14f449a9..3e09f1b3e 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/BaseActivity.java b/src/com/android/documentsui/BaseActivity.java index 0b5d96da9..790feeac4 100644 --- a/src/com/android/documentsui/BaseActivity.java +++ b/src/com/android/documentsui/BaseActivity.java @@ -569,23 +569,32 @@ public abstract class BaseActivity View root = findViewById(R.id.coordinator_layout); root.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); - root.setOnApplyWindowInsetsListener((v, insets) -> { - root.setPadding(insets.getSystemWindowInsetLeft(), - insets.getSystemWindowInsetTop(), insets.getSystemWindowInsetRight(), 0); - - // When use_material3 flag is ON, no additional bottom gap in full screen mode. - if (!isUseMaterial3FlagEnabled()) { - View saveContainer = findViewById(R.id.container_save); - saveContainer.setPadding( - 0, 0, 0, insets.getSystemWindowInsetBottom()); - - View rootsContainer = findViewById(R.id.container_roots); - rootsContainer.setPadding( - 0, 0, 0, insets.getSystemWindowInsetBottom()); - } + root.setOnApplyWindowInsetsListener( + (v, insets) -> { + root.setPadding( + insets.getSystemWindowInsetLeft(), + insets.getSystemWindowInsetTop(), + insets.getSystemWindowInsetRight(), + 0); + + // When use_material3 flag is ON and FEATURE_FREEFORM_WINDOW_MANAGEMENT is + // enabled, then there should not be any additional bottom gap in full screen + // mode. Otherwise need to take into account the system window insets such as + // the bottom swipe up navigation gesture. + if (!isUseMaterial3FlagEnabled() + || !getApplicationContext() + .getPackageManager() + .hasSystemFeature( + PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT)) { + View saveContainer = findViewById(R.id.container_save); + saveContainer.setPadding(0, 0, 0, insets.getSystemWindowInsetBottom()); + + View rootsContainer = findViewById(R.id.container_roots); + rootsContainer.setPadding(0, 0, 0, insets.getSystemWindowInsetBottom()); + } - return insets.consumeSystemWindowInsets(); - }); + return insets.consumeSystemWindowInsets(); + }); getWindow().setNavigationBarDividerColor(Color.TRANSPARENT); if (Build.VERSION.SDK_INT >= 29) { 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/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 |