summaryrefslogtreecommitdiffstats
path: root/wifi/java/android/net/wifi/WifiConfiguration.java
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2010-08-30 12:26:00 -0700
committerIrfan Sheriff <isheriff@google.com>2010-09-14 16:15:22 -0700
commit31b62322bfa9470d648fbfd69510e03da29b29af (patch)
treed35626b3d6a3877e8ee44772829f3967003d755a /wifi/java/android/net/wifi/WifiConfiguration.java
parentb729dcc8a94bc2c2a1ecda47d791be0d6f1d160a (diff)
downloadframeworks_base-31b62322bfa9470d648fbfd69510e03da29b29af.zip
frameworks_base-31b62322bfa9470d648fbfd69510e03da29b29af.tar.gz
frameworks_base-31b62322bfa9470d648fbfd69510e03da29b29af.tar.bz2
Add per network static IP settings
Remove the existing global static IP settings and add support for per network configuration Change-Id: I5a6d8b877471b8c8ad07951c96d273893754607f
Diffstat (limited to 'wifi/java/android/net/wifi/WifiConfiguration.java')
-rw-r--r--wifi/java/android/net/wifi/WifiConfiguration.java43
1 files changed, 43 insertions, 0 deletions
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index ca4f29f..8971bdd 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -16,6 +16,7 @@
package android.net.wifi;
+import android.net.DhcpInfo;
import android.os.Parcelable;
import android.os.Parcel;
@@ -294,6 +295,22 @@ public class WifiConfiguration implements Parcelable {
*/
public BitSet allowedGroupCiphers;
+ /**
+ * @hide
+ */
+ public enum IpAssignment {
+ STATIC,
+ DHCP,
+ UNASSIGNED
+ }
+ /**
+ * @hide
+ */
+ public IpAssignment ipAssignment;
+ /**
+ * @hide
+ */
+ public DhcpInfo ipConfig;
public WifiConfiguration() {
networkId = -1;
@@ -312,6 +329,8 @@ public class WifiConfiguration implements Parcelable {
for (EnterpriseField field : enterpriseFields) {
field.setValue(null);
}
+ ipAssignment = IpAssignment.UNASSIGNED;
+ ipConfig = new DhcpInfo();
}
public String toString() {
@@ -393,6 +412,11 @@ public class WifiConfiguration implements Parcelable {
if (value != null) sbuf.append(value);
}
sbuf.append('\n');
+ if (ipAssignment == IpAssignment.STATIC) {
+ sbuf.append(" ").append("Static IP configuration:").append('\n');
+ sbuf.append(" ").append(ipConfig);
+ }
+ sbuf.append('\n');
return sbuf.toString();
}
@@ -461,6 +485,8 @@ public class WifiConfiguration implements Parcelable {
for (int i = 0; i < enterpriseFields.length; i++) {
config.enterpriseFields[i].setValue(enterpriseFields[i].value());
}
+ config.ipAssignment = ipAssignment;
+ config.ipConfig = new DhcpInfo(ipConfig);
return config;
}
@@ -486,6 +512,14 @@ public class WifiConfiguration implements Parcelable {
for (EnterpriseField field : enterpriseFields) {
dest.writeString(field.value());
}
+ dest.writeString(ipAssignment.name());
+ dest.writeInt(ipConfig.ipAddress);
+ dest.writeInt(ipConfig.netmask);
+ dest.writeInt(ipConfig.gateway);
+ dest.writeInt(ipConfig.dns1);
+ dest.writeInt(ipConfig.dns2);
+ dest.writeInt(ipConfig.serverAddress);
+ dest.writeInt(ipConfig.leaseDuration);
}
/** Implement the Parcelable interface {@hide} */
@@ -512,6 +546,15 @@ public class WifiConfiguration implements Parcelable {
for (EnterpriseField field : config.enterpriseFields) {
field.setValue(in.readString());
}
+
+ config.ipAssignment = IpAssignment.valueOf(in.readString());
+ config.ipConfig.ipAddress = in.readInt();
+ config.ipConfig.netmask = in.readInt();
+ config.ipConfig.gateway = in.readInt();
+ config.ipConfig.dns1 = in.readInt();
+ config.ipConfig.dns2 = in.readInt();
+ config.ipConfig.serverAddress = in.readInt();
+ config.ipConfig.leaseDuration = in.readInt();
return config;
}