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

Commit cbe99367 authored by Tomasz Mikolajewski's avatar Tomasz Mikolajewski Committed by Android (Google) Code Review
Browse files

Merge "Files in archives should be only openable by the quick viewer."

parents 0ec78fb5 5ba2fd50
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -217,6 +217,7 @@ public class DocumentInfo implements Durable, Parcelable {
                + ", isContainer=" + isContainer()
                + ", isDirectory=" + isDirectory()
                + ", isArchive=" + isArchive()
                + ", isInArchive=" + isInArchive()
                + ", isPartial=" + isPartial()
                + ", isVirtual=" + isVirtual()
                + ", isDeleteSupported=" + isDeleteSupported()
@@ -254,6 +255,10 @@ public class DocumentInfo implements Durable, Parcelable {
        return ArchivesProvider.isSupportedArchiveType(mimeType);
    }

    public boolean isInArchive() {
        return ArchivesProvider.AUTHORITY.equals(authority);
    }

    public boolean isPartial() {
        return (flags & Document.FLAG_PARTIAL) != 0;
    }
+7 −3
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.documentsui.dirlist;

import static com.android.documentsui.base.DocumentInfo.getCursorInt;
import static com.android.documentsui.base.DocumentInfo.getCursorString;
import static com.android.documentsui.base.Shared.DEBUG;
import static com.android.documentsui.base.Shared.VERBOSE;
@@ -32,6 +33,7 @@ import android.support.annotation.VisibleForTesting;
import android.util.Log;

import com.android.documentsui.DirectoryResult;
import com.android.documentsui.archives.ArchivesProvider;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.EventListener;
import com.android.documentsui.roots.RootCursorWrapper;
@@ -52,12 +54,14 @@ import java.util.function.Predicate;
public class Model {

    /**
     * Filter that passes (returns true) all non-virtual, non-partial files.
     * Filter that passes (returns true) all non-virtual, non-partial files, not archived files.
     */
    public static final Predicate<Cursor> CONCRETE_FILE_FILTER = (Cursor c) -> {
        int flags = DocumentInfo.getCursorInt(c, Document.COLUMN_FLAGS);
        int flags = getCursorInt(c, Document.COLUMN_FLAGS);
        String authority = getCursorString(c, RootCursorWrapper.COLUMN_AUTHORITY);
        return (flags & Document.FLAG_VIRTUAL_DOCUMENT) == 0
                && (flags & Document.FLAG_PARTIAL) == 0;
                && (flags & Document.FLAG_PARTIAL) == 0
                && !ArchivesProvider.AUTHORITY.equals(authority);
    };

    private static final Predicate<Cursor> ANY_FILE_FILTER = (Cursor c) -> true;
+5 −0
Original line number Diff line number Diff line
@@ -434,6 +434,11 @@ public class ActionHandler<T extends Activity & Addons> extends AbstractActionHa
            return false;
        }

        if (doc.isInArchive()) {
            Log.w(TAG, "Can't view archived files.");
            return false;
        }

        if (doc.isContainer()) {
            openContainerDocument(doc);
            return true;