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

Commit 28769211 authored by Raj Yengisetty's avatar Raj Yengisetty Committed by Gerrit Code Review
Browse files

CMFileManager: Fix force close when sharing more than one file at a time

Change-Id: I64eb78ad4a2bbbe5626c0c93c4a80e0b8b97777b
parent 58395bbe
Loading
Loading
Loading
Loading
+17 −2
Original line number Original line Diff line number Diff line
@@ -509,10 +509,25 @@ public final class IntentsActionPolicy extends ActionsPolicy {
        String authority = null;
        String authority = null;
        if (uri != null) {
        if (uri != null) {
            authority = uri.getAuthority();
            authority = uri.getAuthority();
            grantSecureAccess(intent, authority, ri, uri);
        } else if (intent.getExtras() != null) {
        } else if (intent.getExtras() != null) {
            Object obj = intent.getExtras().get(Intent.EXTRA_STREAM);
            if (obj instanceof Uri) {
                uri = (Uri) intent.getExtras().get(Intent.EXTRA_STREAM);
                uri = (Uri) intent.getExtras().get(Intent.EXTRA_STREAM);
                authority = uri.getAuthority();
                authority = uri.getAuthority();
                grantSecureAccess(intent, authority, ri, uri);
            } else if (obj instanceof ArrayList) {
                ArrayList<Uri> uris = (ArrayList<Uri>) intent.getExtras().get(Intent.EXTRA_STREAM);
                for (Uri u : uris) {
                    authority = u.getAuthority();
                    grantSecureAccess(intent, authority, ri, u);
                }
                }
            }
        }
    }

    private static final void grantSecureAccess(Intent intent, String authority, ResolveInfo ri,
            Uri uri) {
        if (authority != null && authority.equals(SecureResourceProvider.AUTHORITY)) {
        if (authority != null && authority.equals(SecureResourceProvider.AUTHORITY)) {
            boolean isInternalEditor = isInternalEditor(ri);
            boolean isInternalEditor = isInternalEditor(ri);
            if (isInternalEditor) {
            if (isInternalEditor) {