Loading res/flag(com.android.documentsui.flags.use_material3)/layout/item_doc_grid.xml +1 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ android:textAppearance="@style/ItemCaptionText" /> <TextView android:id="@+id/bullet" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="4dp" Loading src/com/android/documentsui/dirlist/GridDirectoryHolder.java +1 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import com.android.modules.utils.build.SdkLevel; import java.util.Map; // TODO(b/379776735): remove this file after use_material3 flag is launched. final class GridDirectoryHolder extends DocumentHolder { final TextView mTitle; Loading src/com/android/documentsui/dirlist/GridDocumentHolder.java +19 −2 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import com.android.documentsui.DocumentsApplication; import com.android.documentsui.R; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.Shared; import com.android.documentsui.base.State; import com.android.documentsui.base.UserId; import com.android.documentsui.roots.RootCursorWrapper; import com.android.documentsui.ui.Views; Loading @@ -59,6 +60,8 @@ final class GridDocumentHolder extends DocumentHolder { final TextView mTitle; final TextView mDate; final TextView mDetails; // Non-null only when useMaterial3 flag is ON. final @Nullable TextView mBullet; final ImageView mIconMimeLg; // Null when useMaterial3 flag is ON. final @Nullable ImageView mIconMimeSm; Loading @@ -82,11 +85,13 @@ final class GridDocumentHolder extends DocumentHolder { super(context, parent, R.layout.item_doc_grid, configStore); if (isUseMaterial3FlagEnabled()) { mBullet = itemView.findViewById(R.id.bullet); mIconWrapper = itemView.findViewById(R.id.icon_wrapper); mIconLayout = null; mIconMimeSm = null; mIconCheck = null; } else { mBullet = null; mIconWrapper = null; mIconLayout = itemView.findViewById(R.id.icon); mIconMimeSm = (ImageView) itemView.findViewById(R.id.icon_mime_sm); Loading Loading @@ -172,13 +177,18 @@ final class GridDocumentHolder extends DocumentHolder { @Override public void bindPreviewIcon(boolean show, Function<View, Boolean> clickCallback) { if (isUseMaterial3FlagEnabled() && mDoc.isDirectory()) { mPreviewIcon.setVisibility(View.GONE); return; } mPreviewIcon.setVisibility(show ? View.VISIBLE : View.GONE); if (show) { mPreviewIcon.setContentDescription( getPreviewIconContentDescription( mIconHelper.shouldShowBadge(mDoc.userId.getIdentifier()), mDoc.displayName, mDoc.userId)); mPreviewIcon.setAccessibilityDelegate(new PreviewAccessibilityDelegate(clickCallback)); mPreviewIcon.setAccessibilityDelegate( new PreviewAccessibilityDelegate(clickCallback)); } } Loading Loading @@ -207,7 +217,8 @@ final class GridDocumentHolder extends DocumentHolder { @Override public boolean inSelectRegion(MotionEvent event) { if (isUseMaterial3FlagEnabled()) { return Views.isEventOver(event, itemView.getParent(), mIconWrapper); return (mDoc.isDirectory() && !(mAction == State.ACTION_BROWSE)) ? false : Views.isEventOver(event, itemView.getParent(), mIconWrapper); } return Views.isEventOver(event, itemView.getParent(), mIconLayout); } Loading Loading @@ -281,5 +292,11 @@ final class GridDocumentHolder extends DocumentHolder { mDetails.setText(Formatter.formatFileSize(mContext, docSize)); } } if (mBullet != null && (mDetails.getVisibility() == View.GONE || mDate.getText().isEmpty())) { // There is no need for the bullet separating the details and date. mBullet.setVisibility(View.GONE); } } } src/com/android/documentsui/dirlist/ModelBackedDocumentsAdapter.java +7 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static com.android.documentsui.base.DocumentInfo.getCursorInt; import static com.android.documentsui.base.DocumentInfo.getCursorString; import static com.android.documentsui.base.State.MODE_GRID; import static com.android.documentsui.base.State.MODE_LIST; import static com.android.documentsui.util.FlagUtils.isUseMaterial3FlagEnabled; import android.database.Cursor; import android.provider.DocumentsContract.Document; Loading Loading @@ -95,8 +96,12 @@ final class ModelBackedDocumentsAdapter extends DocumentsAdapter { case MODE_GRID: switch (viewType) { case ITEM_TYPE_DIRECTORY: holder = new GridDirectoryHolder( // Under the Material3 flag, the GridDocumentHolder is the holder for all // grid items. holder = isUseMaterial3FlagEnabled() ? new GridDocumentHolder( mEnv.getContext(), parent, mIconHelper, mConfigStore) : new GridDirectoryHolder( mEnv.getContext(), parent, mIconHelper, mConfigStore); break; case ITEM_TYPE_DOCUMENT: Loading Loading
res/flag(com.android.documentsui.flags.use_material3)/layout/item_doc_grid.xml +1 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ android:textAppearance="@style/ItemCaptionText" /> <TextView android:id="@+id/bullet" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="4dp" Loading
src/com/android/documentsui/dirlist/GridDirectoryHolder.java +1 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import com.android.modules.utils.build.SdkLevel; import java.util.Map; // TODO(b/379776735): remove this file after use_material3 flag is launched. final class GridDirectoryHolder extends DocumentHolder { final TextView mTitle; Loading
src/com/android/documentsui/dirlist/GridDocumentHolder.java +19 −2 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import com.android.documentsui.DocumentsApplication; import com.android.documentsui.R; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.Shared; import com.android.documentsui.base.State; import com.android.documentsui.base.UserId; import com.android.documentsui.roots.RootCursorWrapper; import com.android.documentsui.ui.Views; Loading @@ -59,6 +60,8 @@ final class GridDocumentHolder extends DocumentHolder { final TextView mTitle; final TextView mDate; final TextView mDetails; // Non-null only when useMaterial3 flag is ON. final @Nullable TextView mBullet; final ImageView mIconMimeLg; // Null when useMaterial3 flag is ON. final @Nullable ImageView mIconMimeSm; Loading @@ -82,11 +85,13 @@ final class GridDocumentHolder extends DocumentHolder { super(context, parent, R.layout.item_doc_grid, configStore); if (isUseMaterial3FlagEnabled()) { mBullet = itemView.findViewById(R.id.bullet); mIconWrapper = itemView.findViewById(R.id.icon_wrapper); mIconLayout = null; mIconMimeSm = null; mIconCheck = null; } else { mBullet = null; mIconWrapper = null; mIconLayout = itemView.findViewById(R.id.icon); mIconMimeSm = (ImageView) itemView.findViewById(R.id.icon_mime_sm); Loading Loading @@ -172,13 +177,18 @@ final class GridDocumentHolder extends DocumentHolder { @Override public void bindPreviewIcon(boolean show, Function<View, Boolean> clickCallback) { if (isUseMaterial3FlagEnabled() && mDoc.isDirectory()) { mPreviewIcon.setVisibility(View.GONE); return; } mPreviewIcon.setVisibility(show ? View.VISIBLE : View.GONE); if (show) { mPreviewIcon.setContentDescription( getPreviewIconContentDescription( mIconHelper.shouldShowBadge(mDoc.userId.getIdentifier()), mDoc.displayName, mDoc.userId)); mPreviewIcon.setAccessibilityDelegate(new PreviewAccessibilityDelegate(clickCallback)); mPreviewIcon.setAccessibilityDelegate( new PreviewAccessibilityDelegate(clickCallback)); } } Loading Loading @@ -207,7 +217,8 @@ final class GridDocumentHolder extends DocumentHolder { @Override public boolean inSelectRegion(MotionEvent event) { if (isUseMaterial3FlagEnabled()) { return Views.isEventOver(event, itemView.getParent(), mIconWrapper); return (mDoc.isDirectory() && !(mAction == State.ACTION_BROWSE)) ? false : Views.isEventOver(event, itemView.getParent(), mIconWrapper); } return Views.isEventOver(event, itemView.getParent(), mIconLayout); } Loading Loading @@ -281,5 +292,11 @@ final class GridDocumentHolder extends DocumentHolder { mDetails.setText(Formatter.formatFileSize(mContext, docSize)); } } if (mBullet != null && (mDetails.getVisibility() == View.GONE || mDate.getText().isEmpty())) { // There is no need for the bullet separating the details and date. mBullet.setVisibility(View.GONE); } } }
src/com/android/documentsui/dirlist/ModelBackedDocumentsAdapter.java +7 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static com.android.documentsui.base.DocumentInfo.getCursorInt; import static com.android.documentsui.base.DocumentInfo.getCursorString; import static com.android.documentsui.base.State.MODE_GRID; import static com.android.documentsui.base.State.MODE_LIST; import static com.android.documentsui.util.FlagUtils.isUseMaterial3FlagEnabled; import android.database.Cursor; import android.provider.DocumentsContract.Document; Loading Loading @@ -95,8 +96,12 @@ final class ModelBackedDocumentsAdapter extends DocumentsAdapter { case MODE_GRID: switch (viewType) { case ITEM_TYPE_DIRECTORY: holder = new GridDirectoryHolder( // Under the Material3 flag, the GridDocumentHolder is the holder for all // grid items. holder = isUseMaterial3FlagEnabled() ? new GridDocumentHolder( mEnv.getContext(), parent, mIconHelper, mConfigStore) : new GridDirectoryHolder( mEnv.getContext(), parent, mIconHelper, mConfigStore); break; case ITEM_TYPE_DOCUMENT: Loading