Loading flags.aconfig +3 −2 Original line number Diff line number Diff line Loading @@ -10,10 +10,11 @@ flag { } flag { name: "use_search_v2_rw" name: "use_search_v2_read_only" namespace: "documentsui" description: "Read/write flag that enables the next generation search functionality." description: "Enables the next generation search functionality." bug: "383412640" is_fixed_read_only: true } flag { Loading res/flag(com.android.documentsui.flags.use_material3)/drawable/grid_nameplate_background.xml +83 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,41 @@ <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- selected --> <item android:state_focused="true" android:state_hovered="true" android:state_selected="true"> <layer-list> <item android:bottom="@dimen/focus_ring_gap" android:left="@dimen/focus_ring_gap" android:right="@dimen/focus_ring_gap" android:top="@dimen/focus_ring_gap"> <shape> <corners android:radius="@dimen/grid_item_nameplate_inner_radius" /> <solid android:color="?attr/colorPrimaryContainer" /> </shape> </item> <item android:bottom="@dimen/focus_ring_gap" android:left="@dimen/focus_ring_gap" android:right="@dimen/focus_ring_gap" android:top="@dimen/focus_ring_gap"> <shape android:tint="?attr/colorOnPrimaryContainer"> <corners android:radius="@dimen/grid_item_nameplate_inner_radius" /> <solid android:color="@color/overlay_hover_color_percentage" /> </shape> </item> <item> <shape> <corners android:radius="@dimen/grid_item_nameplate_radius" /> <stroke android:width="@dimen/focus_ring_width" android:color="?attr/colorSecondary" /> </shape> </item> </layer-list> </item> <item android:state_selected="true" android:state_focused="true"> <layer-list> <item Loading @@ -38,6 +73,24 @@ </item> </layer-list> </item> <item android:state_hovered="true" android:state_selected="true"> <layer-list> <item> <shape> <corners android:radius="@dimen/grid_item_nameplate_radius" /> <solid android:color="?attr/colorPrimaryContainer" /> </shape> </item> <item> <shape android:tint="?attr/colorOnPrimaryContainer"> <corners android:radius="@dimen/grid_item_nameplate_radius" /> <solid android:color="@color/overlay_hover_color_percentage" /> </shape> </item> </layer-list> </item> <item android:state_selected="true"> <shape> <corners android:radius="@dimen/grid_item_nameplate_radius" /> Loading @@ -46,6 +99,30 @@ </item> <!-- unselected --> <item android:state_focused="true" android:state_hovered="true"> <layer-list> <item android:bottom="@dimen/focus_ring_gap" android:left="@dimen/focus_ring_gap" android:right="@dimen/focus_ring_gap" android:top="@dimen/focus_ring_gap"> <shape android:tint="?attr/colorOnSurface"> <corners android:radius="@dimen/grid_item_nameplate_inner_radius" /> <solid android:color="@color/overlay_hover_color_percentage" /> </shape> </item> <item> <shape> <corners android:radius="@dimen/grid_item_nameplate_radius" /> <stroke android:width="@dimen/focus_ring_width" android:color="?attr/colorSecondary" /> </shape> </item> </layer-list> </item> <item android:state_focused="true"> <shape> <corners android:radius="@dimen/grid_item_nameplate_radius" /> Loading @@ -54,4 +131,10 @@ android:color="?attr/colorSecondary" /> </shape> </item> <item android:state_hovered="true"> <shape android:tint="?attr/colorOnSurface"> <corners android:radius="@dimen/grid_item_nameplate_radius" /> <solid android:color="@color/overlay_hover_color_percentage" /> </shape> </item> </selector> No newline at end of file src/com/android/documentsui/AbstractActionHandler.java +2 −2 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ import static com.android.documentsui.base.DocumentInfo.getCursorInt; import static com.android.documentsui.base.DocumentInfo.getCursorString; import static com.android.documentsui.base.SharedMinimal.DEBUG; import static com.android.documentsui.util.FlagUtils.isDesktopFileHandlingFlagEnabled; import static com.android.documentsui.util.FlagUtils.isUseSearchV2RwFlagEnabled; import static com.android.documentsui.util.FlagUtils.isUseSearchV2FlagEnabled; import android.app.PendingIntent; import android.content.ActivityNotFoundException; Loading Loading @@ -916,7 +916,7 @@ public abstract class AbstractActionHandler<T extends FragmentActivity & CommonA mState.stack.changeRoot(mActivity.getCurrentRoot()); } if (isUseSearchV2RwFlagEnabled()) { if (isUseSearchV2FlagEnabled()) { return onCreateLoaderV2(id, args); } return onCreateLoaderV1(id, args); Loading src/com/android/documentsui/MenuManager.java +23 −10 Original line number Diff line number Diff line Loading @@ -159,11 +159,11 @@ public abstract class MenuManager { } /** * @see DirectoryFragment#onCreateContextMenu * * Called when user tries to generate a context menu anchored to a file when the selection * doesn't contain any folder. * * @see DirectoryFragment#onCreateContextMenu * * @param selectionDetails * containsFiles may return false because this may be called when user right clicks on an * unselectable item in pickers Loading Loading @@ -193,11 +193,11 @@ public abstract class MenuManager { } /** * @see DirectoryFragment#onCreateContextMenu * * Called when user tries to generate a context menu anchored to a folder when the selection * doesn't contain any file. * * @see DirectoryFragment#onCreateContextMenu * * @param selectionDetails * containDirectories may return false because this may be called when user right clicks on * an unselectable item in pickers Loading Loading @@ -418,25 +418,42 @@ public abstract class MenuManager { } protected abstract void updateSelectAll(MenuItem selectAll); protected abstract void updateSelectAll(MenuItem selectAll, SelectionDetails selectionDetails); protected abstract void updateDeselectAll( MenuItem deselectAll, SelectionDetails selectionDetails); protected abstract void updateCreateDir(MenuItem createDir); /** * Access to meta data about the selection. */ public interface SelectionDetails { /** Gets the total number of items (files and directories) in the selection. */ int size(); /** Returns whether the selection contains at least a directory. */ boolean containsDirectories(); /** Returns whether the selection contains at least a file. */ boolean containsFiles(); int size(); /** * Returns whether the selection contains at least a file that has not been fully downloaded * yet. */ boolean containsPartialFiles(); /** Returns whether the selection contains at least a file located in a mounted archive. */ boolean containsFilesInArchive(); /** * Returns whether the selection contains exactly one file which is also a supported archive * type. */ boolean isArchive(); // TODO: Update these to express characteristics instead of answering concrete questions, // since the answer to those questions is (or can be) activity specific. boolean canDelete(); Loading @@ -450,10 +467,6 @@ public abstract class MenuManager { boolean canOpen(); boolean canViewInOwner(); default boolean isArchive() { return false; } } public static class DirectoryDetails { Loading src/com/android/documentsui/archives/ArchiveRegistry.java +3 −8 Original line number Diff line number Diff line Loading @@ -24,13 +24,12 @@ import static org.apache.commons.compress.compressors.CompressorStreamFactory.XZ import androidx.annotation.Nullable; import java.util.HashMap; import java.util.Map; import java.util.Set; import org.apache.commons.compress.compressors.brotli.BrotliUtils; import org.apache.commons.compress.compressors.xz.XZUtils; import java.util.HashMap; import java.util.Map; /** * To query how to generate ArchiveHandle, how to create CompressInputStream and how to create * ArchiveInputStream by using MIME type in ArchiveRegistry. Loading Loading @@ -136,8 +135,4 @@ final class ArchiveRegistry { static Integer getArchiveType(String mimeType) { return sHandleArchiveMap.get(mimeType); } static Set<String> getSupportList() { return sHandleArchiveMap.keySet(); } } Loading
flags.aconfig +3 −2 Original line number Diff line number Diff line Loading @@ -10,10 +10,11 @@ flag { } flag { name: "use_search_v2_rw" name: "use_search_v2_read_only" namespace: "documentsui" description: "Read/write flag that enables the next generation search functionality." description: "Enables the next generation search functionality." bug: "383412640" is_fixed_read_only: true } flag { Loading
res/flag(com.android.documentsui.flags.use_material3)/drawable/grid_nameplate_background.xml +83 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,41 @@ <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- selected --> <item android:state_focused="true" android:state_hovered="true" android:state_selected="true"> <layer-list> <item android:bottom="@dimen/focus_ring_gap" android:left="@dimen/focus_ring_gap" android:right="@dimen/focus_ring_gap" android:top="@dimen/focus_ring_gap"> <shape> <corners android:radius="@dimen/grid_item_nameplate_inner_radius" /> <solid android:color="?attr/colorPrimaryContainer" /> </shape> </item> <item android:bottom="@dimen/focus_ring_gap" android:left="@dimen/focus_ring_gap" android:right="@dimen/focus_ring_gap" android:top="@dimen/focus_ring_gap"> <shape android:tint="?attr/colorOnPrimaryContainer"> <corners android:radius="@dimen/grid_item_nameplate_inner_radius" /> <solid android:color="@color/overlay_hover_color_percentage" /> </shape> </item> <item> <shape> <corners android:radius="@dimen/grid_item_nameplate_radius" /> <stroke android:width="@dimen/focus_ring_width" android:color="?attr/colorSecondary" /> </shape> </item> </layer-list> </item> <item android:state_selected="true" android:state_focused="true"> <layer-list> <item Loading @@ -38,6 +73,24 @@ </item> </layer-list> </item> <item android:state_hovered="true" android:state_selected="true"> <layer-list> <item> <shape> <corners android:radius="@dimen/grid_item_nameplate_radius" /> <solid android:color="?attr/colorPrimaryContainer" /> </shape> </item> <item> <shape android:tint="?attr/colorOnPrimaryContainer"> <corners android:radius="@dimen/grid_item_nameplate_radius" /> <solid android:color="@color/overlay_hover_color_percentage" /> </shape> </item> </layer-list> </item> <item android:state_selected="true"> <shape> <corners android:radius="@dimen/grid_item_nameplate_radius" /> Loading @@ -46,6 +99,30 @@ </item> <!-- unselected --> <item android:state_focused="true" android:state_hovered="true"> <layer-list> <item android:bottom="@dimen/focus_ring_gap" android:left="@dimen/focus_ring_gap" android:right="@dimen/focus_ring_gap" android:top="@dimen/focus_ring_gap"> <shape android:tint="?attr/colorOnSurface"> <corners android:radius="@dimen/grid_item_nameplate_inner_radius" /> <solid android:color="@color/overlay_hover_color_percentage" /> </shape> </item> <item> <shape> <corners android:radius="@dimen/grid_item_nameplate_radius" /> <stroke android:width="@dimen/focus_ring_width" android:color="?attr/colorSecondary" /> </shape> </item> </layer-list> </item> <item android:state_focused="true"> <shape> <corners android:radius="@dimen/grid_item_nameplate_radius" /> Loading @@ -54,4 +131,10 @@ android:color="?attr/colorSecondary" /> </shape> </item> <item android:state_hovered="true"> <shape android:tint="?attr/colorOnSurface"> <corners android:radius="@dimen/grid_item_nameplate_radius" /> <solid android:color="@color/overlay_hover_color_percentage" /> </shape> </item> </selector> No newline at end of file
src/com/android/documentsui/AbstractActionHandler.java +2 −2 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ import static com.android.documentsui.base.DocumentInfo.getCursorInt; import static com.android.documentsui.base.DocumentInfo.getCursorString; import static com.android.documentsui.base.SharedMinimal.DEBUG; import static com.android.documentsui.util.FlagUtils.isDesktopFileHandlingFlagEnabled; import static com.android.documentsui.util.FlagUtils.isUseSearchV2RwFlagEnabled; import static com.android.documentsui.util.FlagUtils.isUseSearchV2FlagEnabled; import android.app.PendingIntent; import android.content.ActivityNotFoundException; Loading Loading @@ -916,7 +916,7 @@ public abstract class AbstractActionHandler<T extends FragmentActivity & CommonA mState.stack.changeRoot(mActivity.getCurrentRoot()); } if (isUseSearchV2RwFlagEnabled()) { if (isUseSearchV2FlagEnabled()) { return onCreateLoaderV2(id, args); } return onCreateLoaderV1(id, args); Loading
src/com/android/documentsui/MenuManager.java +23 −10 Original line number Diff line number Diff line Loading @@ -159,11 +159,11 @@ public abstract class MenuManager { } /** * @see DirectoryFragment#onCreateContextMenu * * Called when user tries to generate a context menu anchored to a file when the selection * doesn't contain any folder. * * @see DirectoryFragment#onCreateContextMenu * * @param selectionDetails * containsFiles may return false because this may be called when user right clicks on an * unselectable item in pickers Loading Loading @@ -193,11 +193,11 @@ public abstract class MenuManager { } /** * @see DirectoryFragment#onCreateContextMenu * * Called when user tries to generate a context menu anchored to a folder when the selection * doesn't contain any file. * * @see DirectoryFragment#onCreateContextMenu * * @param selectionDetails * containDirectories may return false because this may be called when user right clicks on * an unselectable item in pickers Loading Loading @@ -418,25 +418,42 @@ public abstract class MenuManager { } protected abstract void updateSelectAll(MenuItem selectAll); protected abstract void updateSelectAll(MenuItem selectAll, SelectionDetails selectionDetails); protected abstract void updateDeselectAll( MenuItem deselectAll, SelectionDetails selectionDetails); protected abstract void updateCreateDir(MenuItem createDir); /** * Access to meta data about the selection. */ public interface SelectionDetails { /** Gets the total number of items (files and directories) in the selection. */ int size(); /** Returns whether the selection contains at least a directory. */ boolean containsDirectories(); /** Returns whether the selection contains at least a file. */ boolean containsFiles(); int size(); /** * Returns whether the selection contains at least a file that has not been fully downloaded * yet. */ boolean containsPartialFiles(); /** Returns whether the selection contains at least a file located in a mounted archive. */ boolean containsFilesInArchive(); /** * Returns whether the selection contains exactly one file which is also a supported archive * type. */ boolean isArchive(); // TODO: Update these to express characteristics instead of answering concrete questions, // since the answer to those questions is (or can be) activity specific. boolean canDelete(); Loading @@ -450,10 +467,6 @@ public abstract class MenuManager { boolean canOpen(); boolean canViewInOwner(); default boolean isArchive() { return false; } } public static class DirectoryDetails { Loading
src/com/android/documentsui/archives/ArchiveRegistry.java +3 −8 Original line number Diff line number Diff line Loading @@ -24,13 +24,12 @@ import static org.apache.commons.compress.compressors.CompressorStreamFactory.XZ import androidx.annotation.Nullable; import java.util.HashMap; import java.util.Map; import java.util.Set; import org.apache.commons.compress.compressors.brotli.BrotliUtils; import org.apache.commons.compress.compressors.xz.XZUtils; import java.util.HashMap; import java.util.Map; /** * To query how to generate ArchiveHandle, how to create CompressInputStream and how to create * ArchiveInputStream by using MIME type in ArchiveRegistry. Loading Loading @@ -136,8 +135,4 @@ final class ArchiveRegistry { static Integer getArchiveType(String mimeType) { return sHandleArchiveMap.get(mimeType); } static Set<String> getSupportList() { return sHandleArchiveMap.keySet(); } }