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
This commit is contained in:
Hall Liu
2017-10-10 19:08:24 -07:00
parent e0e1c8ae4c
commit fad72cb55b

View File

@@ -288,7 +288,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;
}
@@ -310,7 +310,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.");
@@ -493,9 +493,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;
}