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

Commit 46196fb0 authored by Frank Li's avatar Frank Li Committed by Gerrit Code Review
Browse files

Merge "[JS01]Remove hidden API usage of Connectivity Sevice"

parents a819b9fc 7fa8d8f4
Loading
Loading
Loading
Loading
+22 −12
Original line number Diff line number Diff line
@@ -532,18 +532,23 @@ public final class JobStore {
        /**
         * Write out a tag with data identifying this job's constraints. If the constraint isn't here
         * it doesn't apply.
         * TODO: b/183455312 Update this code to use proper serialization for NetworkRequest,
         *       because currently store is not including everything (like, UIDs, bandwidth,
         *       signal strength etc. are lost).
         */
        private void writeConstraintsToXml(XmlSerializer out, JobStatus jobStatus) throws IOException {
            out.startTag(null, XML_TAG_PARAMS_CONSTRAINTS);
            if (jobStatus.hasConnectivityConstraint()) {
                final NetworkRequest network = jobStatus.getJob().getRequiredNetwork();
                // STOPSHIP b/183071974: improve the scheme for backward compatibility and
                // mainline cleanliness.
                out.attribute(null, "net-capabilities", Long.toString(
                        BitUtils.packBits(network.networkCapabilities.getCapabilities())));
                        BitUtils.packBits(network.getCapabilities())));
                out.attribute(null, "net-unwanted-capabilities", Long.toString(
                        BitUtils.packBits(network.networkCapabilities.getUnwantedCapabilities())));
                        BitUtils.packBits(network.getUnwantedCapabilities())));

                out.attribute(null, "net-transport-types", Long.toString(
                        BitUtils.packBits(network.networkCapabilities.getTransportTypes())));
                        BitUtils.packBits(network.getTransportTypes())));
            }
            if (jobStatus.hasIdleConstraint()) {
                out.attribute(null, "idle", Boolean.toString(true));
@@ -967,18 +972,23 @@ public final class JobStore {
                    null, "net-unwanted-capabilities");
            final String netTransportTypes = parser.getAttributeValue(null, "net-transport-types");
            if (netCapabilities != null && netTransportTypes != null) {
                final NetworkRequest request = new NetworkRequest.Builder().build();
                final NetworkRequest.Builder builder = new NetworkRequest.Builder()
                        .clearCapabilities();
                final long unwantedCapabilities = netUnwantedCapabilities != null
                        ? Long.parseLong(netUnwantedCapabilities)
                        : BitUtils.packBits(request.networkCapabilities.getUnwantedCapabilities());

                        : BitUtils.packBits(builder.build().getUnwantedCapabilities());
                // We're okay throwing NFE here; caught by caller
                request.networkCapabilities.setCapabilities(
                        BitUtils.unpackBits(Long.parseLong(netCapabilities)),
                        BitUtils.unpackBits(unwantedCapabilities));
                request.networkCapabilities.setTransportTypes(
                        BitUtils.unpackBits(Long.parseLong(netTransportTypes)));
                jobBuilder.setRequiredNetwork(request);
                for (int capability : BitUtils.unpackBits(Long.parseLong(netCapabilities))) {
                    builder.addCapability(capability);
                }
                for (int unwantedCapability : BitUtils.unpackBits(
                        Long.parseLong(netUnwantedCapabilities))) {
                    builder.addUnwantedCapability(unwantedCapability);
                }
                for (int transport : BitUtils.unpackBits(Long.parseLong(netTransportTypes))) {
                    builder.addTransportType(transport);
                }
                jobBuilder.setRequiredNetwork(builder.build());
            } else {
                // Read legacy values
                val = parser.getAttributeValue(null, "connectivity");
+3 −0
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ package android.net {
    method public boolean bindProcessToNetwork(@Nullable android.net.Network);
    method @NonNull public android.net.SocketKeepalive createSocketKeepalive(@NonNull android.net.Network, @NonNull android.net.IpSecManager.UdpEncapsulationSocket, @NonNull java.net.InetAddress, @NonNull java.net.InetAddress, @NonNull java.util.concurrent.Executor, @NonNull android.net.SocketKeepalive.Callback);
    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public android.net.Network getActiveNetwork();
    method @Nullable @RequiresPermission(android.Manifest.permission.NETWORK_STACK) public android.net.Network getActiveNetworkForUid(int);
    method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public android.net.NetworkInfo getActiveNetworkInfo();
    method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public android.net.NetworkInfo[] getAllNetworkInfo();
    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public android.net.Network[] getAllNetworks();
@@ -387,7 +388,9 @@ package android.net {
  public class NetworkRequest implements android.os.Parcelable {
    method public boolean canBeSatisfiedBy(@Nullable android.net.NetworkCapabilities);
    method public int describeContents();
    method @NonNull public int[] getCapabilities();
    method @Nullable public android.net.NetworkSpecifier getNetworkSpecifier();
    method @NonNull public int[] getTransportTypes();
    method public boolean hasCapability(int);
    method public boolean hasTransport(int);
    method public void writeToParcel(android.os.Parcel, int);
+1 −0
Original line number Diff line number Diff line
@@ -120,6 +120,7 @@ package android.net {
  }

  public class NetworkRequest implements android.os.Parcelable {
    method @NonNull public int[] getUnwantedCapabilities();
    method public boolean hasUnwantedCapability(int);
  }

+1 −2
Original line number Diff line number Diff line
@@ -1190,8 +1190,7 @@ public class ConnectivityManager {
     *
     * @return a {@link Network} object for the current default network for the
     *         given UID or {@code null} if no default network is currently active
     *
     * @hide
     * TODO: b/183465229 Cleanup getActiveNetworkForUid once b/165835257 is fixed
     */
    @RequiresPermission(android.Manifest.permission.NETWORK_STACK)
    @Nullable
+39 −0
Original line number Diff line number Diff line
@@ -699,4 +699,43 @@ public class NetworkRequest implements Parcelable {
    public int hashCode() {
        return Objects.hash(requestId, legacyType, networkCapabilities, type);
    }

    /**
     * Gets all the capabilities set on this {@code NetworkRequest} instance.
     *
     * @return an array of capability values for this instance.
     */
    @NonNull
    public @NetCapability int[] getCapabilities() {
        // No need to make a defensive copy here as NC#getCapabilities() already returns
        // a new array.
        return networkCapabilities.getCapabilities();
    }

    /**
     * Gets all the unwanted capabilities set on this {@code NetworkRequest} instance.
     *
     * @return an array of unwanted capability values for this instance.
     *
     * @hide
     */
    @NonNull
    @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
    public @NetCapability int[] getUnwantedCapabilities() {
        // No need to make a defensive copy here as NC#getUnwantedCapabilities() already returns
        // a new array.
        return networkCapabilities.getUnwantedCapabilities();
    }

    /**
     * Gets all the transports set on this {@code NetworkRequest} instance.
     *
     * @return an array of transport type values for this instance.
     */
    @NonNull
    public @Transport int[] getTransportTypes() {
        // No need to make a defensive copy here as NC#getTransportTypes() already returns
        // a new array.
        return networkCapabilities.getTransportTypes();
    }
}