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

Commit a0d6f3db authored by Ivan Chiang's avatar Ivan Chiang
Browse files

Support backward-compatible for Q

We use new Apis for new features in R. Add sdk level check to guard
it.

Test: manual
Test: atest DocumentsUIGoogleTests
Fix: 150806044
Change-Id: I9054e54f0d7fa8fd4d1b21b1cc2d840d54d9d49a
parent 4d5551ae
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.documentsui.DocumentsApplication;
import com.android.documentsui.archives.ArchivesProvider;
import com.android.documentsui.roots.RootCursorWrapper;
import com.android.documentsui.util.VersionUtils;

import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -309,7 +310,11 @@ public class DocumentInfo implements Durable, Parcelable {
    }

    public boolean isBlockedFromTree() {
        if (VersionUtils.isAtLeastR()) {
            return (flags & Document.FLAG_DIR_BLOCKS_OPEN_DOCUMENT_TREE) != 0;
        } else {
            return false;
        }
    }

    // Containers are documents which can be opened in DocumentsUI as folders.
+5 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import androidx.appcompat.app.AlertDialog;

import com.android.documentsui.R;
import com.android.documentsui.ui.MessageBuilder;
import com.android.documentsui.util.VersionUtils;

import java.text.Collator;
import java.time.Instant;
@@ -170,6 +171,10 @@ public final class Shared {
     * Whether the calling app should be restricted in Storage Access Framework or not.
     */
    public static boolean shouldRestrictStorageAccessFramework(Activity activity) {
        if (!VersionUtils.isAtLeastR()) {
            return false;
        }

        final String packageName = getCallingPackageName(activity);
        final boolean ret = CompatChanges.isChangeEnabled(RESTRICT_STORAGE_ACCESS_FRAMEWORK,
                packageName, Process.myUserHandle());
+10 −1
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import com.android.documentsui.base.State;
import com.android.documentsui.testing.TestActionHandler;
import com.android.documentsui.testing.TestEnv;
import com.android.documentsui.testing.TestFileTypeLookup;
import com.android.documentsui.util.VersionUtils;

@MediumTest
public class DirectoryAddonsAdapterTest extends AndroidTestCase {
@@ -142,6 +143,10 @@ public class DirectoryAddonsAdapterTest extends AndroidTestCase {
    }

    public void testOpenTreeMessage_shouldBlockChild() {
        if (!VersionUtils.isAtLeastR()) {
            return;
        }

        mEnv.state.action = State.ACTION_OPEN_TREE;
        mEnv.state.restrictScopeStorage = true;
        DocumentInfo info = new DocumentInfo();
@@ -164,7 +169,11 @@ public class DirectoryAddonsAdapterTest extends AndroidTestCase {
        assertHolderType(0, DocumentsAdapter.ITEM_TYPE_INFLATED_MESSAGE);
    }

    public void testOpenTreeMessage_restrictStorageAcceesFalse_blockTreeChild() {
    public void testOpenTreeMessage_restrictStorageAccessFalse_blockTreeChild() {
        if (!VersionUtils.isAtLeastR()) {
            return;
        }

        mEnv.state.action = State.ACTION_OPEN_TREE;
        DocumentInfo info = new DocumentInfo();
        info.flags += DocumentsContract.Document.FLAG_DIR_BLOCKS_OPEN_DOCUMENT_TREE;