From 992047ed78741ebe6cc03fd57d501089baff3c9b Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Mon, 22 Mar 2021 17:24:11 +0800 Subject: [PATCH] Add NetworkRequest.Builder creating from an existing instance Provide a formal way to construct a new NetworkRequest from an existing instance. The network capabilities inside the NetworkRequest is hidden. There is no way to pass a NetworkRequest and update its capabilities. Add NetworkRequest.Builder creating from an existing instance to allow to clone the network capabilities. Bug: 172183305 Test: make update-api Change-Id: I068462b2a1410daf67b0c95f2b643d396f079531 Merged-In: I068462b2a1410daf67b0c95f2b643d396f079531 --- framework/api/current.txt | 1 + framework/src/android/net/NetworkRequest.java | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/framework/api/current.txt b/framework/api/current.txt index e415e01fea..ad44b27f6d 100644 --- a/framework/api/current.txt +++ b/framework/api/current.txt @@ -396,6 +396,7 @@ package android.net { public static class NetworkRequest.Builder { ctor public NetworkRequest.Builder(); + ctor public NetworkRequest.Builder(@NonNull android.net.NetworkRequest); method public android.net.NetworkRequest.Builder addCapability(int); method public android.net.NetworkRequest.Builder addTransportType(int); method public android.net.NetworkRequest build(); diff --git a/framework/src/android/net/NetworkRequest.java b/framework/src/android/net/NetworkRequest.java index cf131f0df6..f9b3db12c0 100644 --- a/framework/src/android/net/NetworkRequest.java +++ b/framework/src/android/net/NetworkRequest.java @@ -215,6 +215,14 @@ public class NetworkRequest implements Parcelable { mNetworkCapabilities.setSingleUid(Process.myUid()); } + /** + * Creates a new Builder of NetworkRequest from an existing instance. + */ + public Builder(@NonNull final NetworkRequest request) { + Objects.requireNonNull(request); + mNetworkCapabilities = request.networkCapabilities; + } + /** * Build {@link NetworkRequest} give the current set of capabilities. */