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

Commit b16d931e authored by Nishith  Khanna's avatar Nishith Khanna
Browse files

Merge remote-tracking branch 'origin/lineage-20.0' into v1-t

parents 054874fb f6835ef5
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -70,9 +70,11 @@ import com.android.documentsui.queries.SearchViewManager;
import com.android.documentsui.roots.ProvidersAccess;
import com.android.documentsui.services.FileOperationService;
import com.android.documentsui.util.FileUtils;
import com.android.documentsui.util.VersionUtils;

import java.io.IOException;
import java.util.Arrays;
import java.util.Locale;
import java.util.concurrent.Executor;
import java.util.regex.Pattern;

@@ -101,6 +103,8 @@ class ActionHandler<T extends FragmentActivity & Addons> extends AbstractActionH
    private final ActivityConfig mConfig;
    private final LastAccessedStorage mLastAccessed;
    private final UserIdManager mUserIdManager;
    private final static Pattern PATTERN_BLOCK_PATH = Pattern.compile(
        ".*:android\\/(?:data|obb|sandbox)$");

    private UpdatePickResultTask mUpdatePickResultTask;

@@ -183,6 +187,15 @@ class ActionHandler<T extends FragmentActivity & Addons> extends AbstractActionH
            return false;
        }

        // In android S and above if path contains Android/data, Android/obb
        // or Android/sandbox redirect to the root for which
        // FLAG_DIR_BLOCKS_OPEN_DOCUMENT_TREE is already set
        if(Shared.shouldRestrictStorageAccessFramework(mActivity)
            && (PATTERN_BLOCK_PATH.matcher(initialUri.getPath().toLowerCase(Locale.ROOT)).matches())){
            loadDeviceRoot();
            return true;
        }

        final boolean isRoot = isRootUri(mActivity, initialUri);
        final boolean isDocument = !isRoot && isDocumentUri(mActivity, initialUri);