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

Commit a0945109 authored by Hall Liu's avatar Hall Liu
Browse files

Fix URI unparceling and clarify an error condition

Use the proper unparceling method for lists, add a more verbose
exception for when the app fails to declare a critical piece of
metadata.

Change-Id: I29d5291d7b88476496334d268be94f7f8c08255c
Fixes: 67640653
Test: manual, with testapp
parent 7d178986
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -287,7 +287,7 @@ public class MbmsDownloadReceiver extends BroadcastReceiver {
            return;
        }

        List<Uri> tempFiles = intent.getParcelableExtra(VendorUtils.EXTRA_TEMP_LIST);
        List<Uri> tempFiles = intent.getParcelableArrayListExtra(VendorUtils.EXTRA_TEMP_LIST);
        if (tempFiles == null) {
            return;
        }
@@ -309,7 +309,7 @@ public class MbmsDownloadReceiver extends BroadcastReceiver {
            return;
        }
        int fdCount = intent.getIntExtra(VendorUtils.EXTRA_FD_COUNT, 0);
        List<Uri> pausedList = intent.getParcelableExtra(VendorUtils.EXTRA_PAUSED_LIST);
        List<Uri> pausedList = intent.getParcelableArrayListExtra(VendorUtils.EXTRA_PAUSED_LIST);

        if (fdCount == 0 && (pausedList == null || pausedList.size() == 0)) {
            Log.i(LOG_TAG, "No temp files actually requested. Ending.");
@@ -492,9 +492,14 @@ public class MbmsDownloadReceiver extends BroadcastReceiver {
        } catch (PackageManager.NameNotFoundException e) {
            throw new RuntimeException("Package manager couldn't find " + context.getPackageName());
        }
        if (appInfo.metaData == null) {
            throw new RuntimeException("App must declare the file provider authority as metadata " +
                    "in the manifest.");
        }
        String authority = appInfo.metaData.getString(MBMS_FILE_PROVIDER_META_DATA_KEY);
        if (authority == null) {
            throw new RuntimeException("Must declare the file provider authority as meta data");
            throw new RuntimeException("App must declare the file provider authority as metadata " +
                    "in the manifest.");
        }
        return authority;
    }