Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 72e54720 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[DocsUI M3] Uplift folders in grid" into main

parents 0672209b 93685017
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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"
+1 −0
Original line number Diff line number Diff line
@@ -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;

+19 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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);
@@ -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));
        }
    }

@@ -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);
    }
@@ -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);
        }
    }
}
+7 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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: