Home | History | Annotate | Download | only in shadows
      1 package org.robolectric.shadows;
      2 
      3 import android.net.wifi.WifiConfiguration;
      4 import android.os.Build;
      5 import java.util.BitSet;
      6 import org.robolectric.annotation.Implementation;
      7 import org.robolectric.annotation.Implements;
      8 import org.robolectric.annotation.RealObject;
      9 
     10 @Implements(WifiConfiguration.class)
     11 public class ShadowWifiConfiguration {
     12   @RealObject private WifiConfiguration realObject;
     13 
     14   @Implementation
     15   public void __constructor__() {
     16     realObject.networkId = -1;
     17     realObject.SSID = null;
     18     realObject.BSSID = null;
     19     realObject.priority = 0;
     20     realObject.hiddenSSID = false;
     21     realObject.allowedKeyManagement = new BitSet();
     22     realObject.allowedProtocols = new BitSet();
     23     realObject.allowedAuthAlgorithms = new BitSet();
     24     realObject.allowedPairwiseCiphers = new BitSet();
     25     realObject.allowedGroupCiphers = new BitSet();
     26     realObject.wepKeys = new String[4];
     27     for (int i = 0; i < realObject.wepKeys.length; i++)
     28       realObject.wepKeys[i] = null;
     29 //        for (EnterpriseField field : realObject.enterpriseFields) {
     30 //            field.setValue(null);
     31 //        }
     32   }
     33 
     34   public WifiConfiguration copy() {
     35     WifiConfiguration config = new WifiConfiguration();
     36     config.networkId = realObject.networkId;
     37     config.SSID = realObject.SSID;
     38     config.BSSID = realObject.BSSID;
     39     config.preSharedKey = realObject.preSharedKey;
     40     config.wepTxKeyIndex = realObject.wepTxKeyIndex;
     41     config.status = realObject.status;
     42     config.priority = realObject.priority;
     43     config.hiddenSSID = realObject.hiddenSSID;
     44     config.allowedKeyManagement = (BitSet) realObject.allowedKeyManagement.clone();
     45     config.allowedProtocols = (BitSet) realObject.allowedProtocols.clone();
     46     config.allowedAuthAlgorithms = (BitSet) realObject.allowedAuthAlgorithms.clone();
     47     config.allowedPairwiseCiphers = (BitSet) realObject.allowedPairwiseCiphers.clone();
     48     config.allowedGroupCiphers = (BitSet) realObject.allowedGroupCiphers.clone();
     49     config.wepKeys = new String[4];
     50     System.arraycopy(realObject.wepKeys, 0, config.wepKeys, 0, config.wepKeys.length);
     51     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
     52       config.creatorName = realObject.creatorName;
     53     }
     54     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
     55       config.creatorUid = realObject.creatorUid;
     56     }
     57     return config;
     58   }
     59 
     60   // WifiConfiguration's toString() method crashes.
     61   @Override @Implementation
     62   public String toString() {
     63     return String.format("WifiConfiguration{ssid=%s}", realObject.SSID);
     64   }
     65 }
     66