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

Commit 432c2b0f authored by Brad Ebinger's avatar Brad Ebinger Committed by Gerrit Code Review
Browse files

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

parents b085deec ea737a8e
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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);
  }
+1 −2
Original line number Diff line number Diff line
@@ -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);
  }
+1 −2
Original line number Diff line number Diff line
@@ -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);
  }
+18 −12
Original line number Diff line number Diff line
@@ -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,10 +320,12 @@ 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));
            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);
    }