Merge "Require DownloadRequest#Builder to have mandatory Source URI"
This commit is contained in:
@@ -40500,11 +40500,10 @@ package android.telephony.mbms {
|
||||
}
|
||||
|
||||
public static class DownloadRequest.Builder {
|
||||
ctor public DownloadRequest.Builder();
|
||||
ctor public DownloadRequest.Builder(android.net.Uri);
|
||||
method public android.telephony.mbms.DownloadRequest build();
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setAppIntent(android.content.Intent);
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setServiceInfo(android.telephony.mbms.FileServiceInfo);
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setSource(android.net.Uri);
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setSubscriptionId(int);
|
||||
}
|
||||
|
||||
|
||||
@@ -44017,13 +44017,12 @@ package android.telephony.mbms {
|
||||
}
|
||||
|
||||
public static class DownloadRequest.Builder {
|
||||
ctor public DownloadRequest.Builder();
|
||||
ctor public DownloadRequest.Builder(android.net.Uri);
|
||||
method public android.telephony.mbms.DownloadRequest build();
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setAppIntent(android.content.Intent);
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setOpaqueData(byte[]);
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setServiceId(java.lang.String);
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setServiceInfo(android.telephony.mbms.FileServiceInfo);
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setSource(android.net.Uri);
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setSubscriptionId(int);
|
||||
}
|
||||
|
||||
|
||||
@@ -40722,11 +40722,10 @@ package android.telephony.mbms {
|
||||
}
|
||||
|
||||
public static class DownloadRequest.Builder {
|
||||
ctor public DownloadRequest.Builder();
|
||||
ctor public DownloadRequest.Builder(android.net.Uri);
|
||||
method public android.telephony.mbms.DownloadRequest build();
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setAppIntent(android.content.Intent);
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setServiceInfo(android.telephony.mbms.FileServiceInfo);
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setSource(android.net.Uri);
|
||||
method public android.telephony.mbms.DownloadRequest.Builder setSubscriptionId(int);
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package android.telephony.mbms;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.SystemApi;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
@@ -26,7 +27,6 @@ import android.util.Log;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
@@ -71,6 +71,19 @@ public final class DownloadRequest implements Parcelable {
|
||||
private String appIntent;
|
||||
private int version = CURRENT_VERSION;
|
||||
|
||||
|
||||
/**
|
||||
* Builds a new DownloadRequest.
|
||||
* @param sourceUri the source URI for the DownloadRequest to be built. This URI should
|
||||
* never be null.
|
||||
*/
|
||||
public Builder(@NonNull Uri sourceUri) {
|
||||
if (sourceUri == null) {
|
||||
throw new IllegalArgumentException("Source URI must be non-null.");
|
||||
}
|
||||
source = sourceUri;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the service from which the download request to be built will download from.
|
||||
* @param serviceInfo
|
||||
@@ -91,15 +104,6 @@ public final class DownloadRequest implements Parcelable {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the source URI for the download request to be built.
|
||||
* @param source
|
||||
*/
|
||||
public Builder setSource(Uri source) {
|
||||
this.source = source;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the subscription ID on which the file(s) should be downloaded.
|
||||
* @param subscriptionId
|
||||
@@ -316,9 +320,11 @@ public final class DownloadRequest implements Parcelable {
|
||||
throw new RuntimeException("Could not get sha256 hash object");
|
||||
}
|
||||
if (version >= 1) {
|
||||
// Hash the source URI, destination URI, and the app intent
|
||||
// Hash the source URI and the app intent
|
||||
digest.update(sourceUri.toString().getBytes(StandardCharsets.UTF_8));
|
||||
digest.update(serializedResultIntentForApp.getBytes(StandardCharsets.UTF_8));
|
||||
if (serializedResultIntentForApp != null) {
|
||||
digest.update(serializedResultIntentForApp.getBytes(StandardCharsets.UTF_8));
|
||||
}
|
||||
}
|
||||
// Add updates for future versions here
|
||||
return Base64.encodeToString(digest.digest(), Base64.URL_SAFE | Base64.NO_WRAP);
|
||||
|
||||
Reference in New Issue
Block a user