Merge "Require DownloadRequest#Builder to have mandatory Source URI"

am: 432c2b0fb9

Change-Id: I3332d44105c6ce4f8d4223caad66715c4c67d52f
This commit is contained in:
Brad Ebinger
2017-10-10 18:39:56 +00:00
committed by android-build-merger
4 changed files with 21 additions and 18 deletions

View File

@@ -40466,11 +40466,10 @@ package android.telephony.mbms {
} }
public static class DownloadRequest.Builder { 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 build();
method public android.telephony.mbms.DownloadRequest.Builder setAppIntent(android.content.Intent); 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 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); method public android.telephony.mbms.DownloadRequest.Builder setSubscriptionId(int);
} }

View File

@@ -43983,13 +43983,12 @@ package android.telephony.mbms {
} }
public static class DownloadRequest.Builder { 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 build();
method public android.telephony.mbms.DownloadRequest.Builder setAppIntent(android.content.Intent); 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 setOpaqueData(byte[]);
method public android.telephony.mbms.DownloadRequest.Builder setServiceId(java.lang.String); 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 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); method public android.telephony.mbms.DownloadRequest.Builder setSubscriptionId(int);
} }

View File

@@ -40690,11 +40690,10 @@ package android.telephony.mbms {
} }
public static class DownloadRequest.Builder { 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 build();
method public android.telephony.mbms.DownloadRequest.Builder setAppIntent(android.content.Intent); 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 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); method public android.telephony.mbms.DownloadRequest.Builder setSubscriptionId(int);
} }

View File

@@ -16,6 +16,7 @@
package android.telephony.mbms; package android.telephony.mbms;
import android.annotation.NonNull;
import android.annotation.SystemApi; import android.annotation.SystemApi;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
@@ -26,7 +27,6 @@ import android.util.Log;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.ObjectInputStream; import java.io.ObjectInputStream;
import java.io.ObjectOutputStream; import java.io.ObjectOutputStream;
@@ -71,6 +71,19 @@ public final class DownloadRequest implements Parcelable {
private String appIntent; private String appIntent;
private int version = CURRENT_VERSION; 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. * Sets the service from which the download request to be built will download from.
* @param serviceInfo * @param serviceInfo
@@ -91,15 +104,6 @@ public final class DownloadRequest implements Parcelable {
return this; 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. * Set the subscription ID on which the file(s) should be downloaded.
* @param subscriptionId * @param subscriptionId
@@ -316,9 +320,11 @@ public final class DownloadRequest implements Parcelable {
throw new RuntimeException("Could not get sha256 hash object"); throw new RuntimeException("Could not get sha256 hash object");
} }
if (version >= 1) { 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(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 // Add updates for future versions here
return Base64.encodeToString(digest.digest(), Base64.URL_SAFE | Base64.NO_WRAP); return Base64.encodeToString(digest.digest(), Base64.URL_SAFE | Base64.NO_WRAP);