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

Commit 6862d2f6 authored by Glen Kuhne's avatar Glen Kuhne
Browse files

Unhide WifiConfiguration proxy accessors

Unhiding HttpProxy accessors in WifiConfiguration.
This change occurs in parrallel with changes that restrict updating of
WifiConfigurations with new or updated proxy info to uids
holding permission OVERRIDE_WIFI_CONFIG, or holding DeviceOwner or
ProfileOwner policies.

Bug: 14669153
Test: None
Change-Id: Id69525cfec152ea52697693f9a3bd6f86019c694
Merged-In: Id69525cfec152ea52697693f9a3bd6f86019c694
parent 68d03b23
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -24528,7 +24528,9 @@ package android.net.wifi {
  public class WifiConfiguration implements android.os.Parcelable {
    ctor public WifiConfiguration();
    method public int describeContents();
    method public android.net.ProxyInfo getHttpProxy();
    method public boolean isPasspoint();
    method public void setHttpProxy(android.net.ProxyInfo);
    method public void writeToParcel(android.os.Parcel, int);
    field public java.lang.String BSSID;
    field public java.lang.String FQDN;
+2 −0
Original line number Diff line number Diff line
@@ -26865,9 +26865,11 @@ package android.net.wifi {
  public class WifiConfiguration implements android.os.Parcelable {
    ctor public WifiConfiguration();
    method public int describeContents();
    method public android.net.ProxyInfo getHttpProxy();
    method public boolean hasNoInternetAccess();
    method public boolean isNoInternetAccessExpected();
    method public boolean isPasspoint();
    method public void setHttpProxy(android.net.ProxyInfo);
    method public void writeToParcel(android.os.Parcel, int);
    field public java.lang.String BSSID;
    field public java.lang.String FQDN;
+2 −0
Original line number Diff line number Diff line
@@ -24601,7 +24601,9 @@ package android.net.wifi {
  public class WifiConfiguration implements android.os.Parcelable {
    ctor public WifiConfiguration();
    method public int describeContents();
    method public android.net.ProxyInfo getHttpProxy();
    method public boolean isPasspoint();
    method public void setHttpProxy(android.net.ProxyInfo);
    method public void writeToParcel(android.os.Parcel, int);
    field public java.lang.String BSSID;
    field public java.lang.String FQDN;
+39 −4
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.net.IpConfiguration;
import android.net.IpConfiguration.ProxySettings;
import android.net.ProxyInfo;
import android.net.StaticIpConfiguration;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.UserHandle;
@@ -1805,14 +1806,48 @@ public class WifiConfiguration implements Parcelable {
        mIpConfiguration.proxySettings = proxySettings;
    }

    /** @hide */
    /**
     * Returns the HTTP proxy used by this object.
     * @return a {@link ProxyInfo httpProxy} representing the proxy specified by this
     *                  WifiConfiguration, or {@code null} if no proxy is specified.
     */
    public ProxyInfo getHttpProxy() {
        return mIpConfiguration.httpProxy;
        if (mIpConfiguration.proxySettings == IpConfiguration.ProxySettings.NONE) {
            return null;
        }
        return new ProxyInfo(mIpConfiguration.httpProxy);
    }

    /** @hide */
    /**
     * Set the {@link ProxyInfo} for this WifiConfiguration.
     * @param httpProxy {@link ProxyInfo} representing the httpProxy to be used by this
     *                  WifiConfiguration. Setting this {@code null} will explicitly set no proxy,
     *                  removing any proxy that was previously set.
     * @exception throw IllegalArgumentException for invalid httpProxy
     */
    public void setHttpProxy(ProxyInfo httpProxy) {
        mIpConfiguration.httpProxy = httpProxy;
        if (httpProxy == null) {
            mIpConfiguration.setProxySettings(IpConfiguration.ProxySettings.NONE);
            mIpConfiguration.setHttpProxy(null);
            return;
        }
        ProxyInfo httpProxyCopy;
        ProxySettings proxySettingCopy;
        if (!Uri.EMPTY.equals(httpProxy.getPacFileUrl())) {
            proxySettingCopy = IpConfiguration.ProxySettings.PAC;
            // Construct a new PAC URL Proxy
            httpProxyCopy = new ProxyInfo(httpProxy.getPacFileUrl(), httpProxy.getPort());
        } else {
            proxySettingCopy = IpConfiguration.ProxySettings.STATIC;
            // Construct a new HTTP Proxy
            httpProxyCopy = new ProxyInfo(httpProxy.getHost(), httpProxy.getPort(),
                    httpProxy.getExclusionListAsString());
        }
        if (!httpProxyCopy.isValid()) {
            throw new IllegalArgumentException("Invalid ProxyInfo: " + httpProxyCopy.toString());
        }
        mIpConfiguration.setProxySettings(proxySettingCopy);
        mIpConfiguration.setHttpProxy(httpProxyCopy);
    }

    /** @hide */
+4 −0
Original line number Diff line number Diff line
@@ -791,6 +791,8 @@ public class WifiManager {
     *
     * @param config the set of variables that describe the configuration,
     *            contained in a {@link WifiConfiguration} object.
     *            If the {@link WifiConfiguration} has an Http Proxy set
     *            the calling app must be System, or be provisioned as the Profile or Device Owner.
     * @return the ID of the newly created network description. This is used in
     *         other operations to specified the network to be acted upon.
     *         Returns {@code -1} on failure.
@@ -811,6 +813,8 @@ public class WifiManager {
     *            be sparse, so that only the items that are being changed
     *            are non-<code>null</code>. The {@code networkId} field
     *            must be set to the ID of the existing network being updated.
     *            If the {@link WifiConfiguration} has an Http Proxy set
     *            the calling app must be System, or be provisioned as the Profile or Device Owner.
     * @return Returns the {@code networkId} of the supplied
     *         {@code WifiConfiguration} on success.
     *         <br/>