Home | History | Annotate | Download | only in shadows
      1 package com.xtremelabs.robolectric.shadows;
      2 
      3 import android.net.ConnectivityManager;
      4 import android.net.NetworkInfo;
      5 import com.xtremelabs.robolectric.internal.Implementation;
      6 import com.xtremelabs.robolectric.internal.Implements;
      7 
      8 import java.util.HashMap;
      9 import java.util.Map;
     10 
     11 /**
     12  * Shadow of {@code ConnectivityManager} that provides for the simulation of
     13  * the active connection status.
     14  */
     15 
     16 @Implements(ConnectivityManager.class)
     17 public class ShadowConnectivityManager {
     18 
     19     private NetworkInfo activeNetwork;
     20     private boolean backgroundDataSetting;
     21 
     22     private Map<Integer, NetworkInfo> networkTypeToNetworkInfo = new HashMap<Integer, NetworkInfo>();
     23 
     24     public void __constructor__() {
     25         setActiveNetworkInfo(ShadowNetworkInfo.newInstance());
     26     }
     27 
     28     @Implementation
     29     public NetworkInfo getActiveNetworkInfo() {
     30         return activeNetwork;
     31     }
     32 
     33     @Implementation
     34     public NetworkInfo[] getAllNetworkInfo() {
     35         return networkTypeToNetworkInfo.values().toArray(new NetworkInfo[networkTypeToNetworkInfo.size()]);
     36     }
     37 
     38     @Implementation
     39     public NetworkInfo getNetworkInfo(int networkType) {
     40         return networkTypeToNetworkInfo.get(networkType);
     41     }
     42 
     43     @Implementation
     44     public boolean getBackgroundDataSetting() {
     45         return backgroundDataSetting;
     46     }
     47 
     48     public void setNetworkInfo(int networkType, NetworkInfo networkInfo) {
     49         networkTypeToNetworkInfo.put(networkType, networkInfo);
     50     }
     51 
     52     public void setBackgroundDataSetting(boolean b) {
     53         backgroundDataSetting = b;
     54     }
     55 
     56     public void setActiveNetworkInfo(NetworkInfo info) {
     57         activeNetwork = info;
     58         if (info != null) {
     59             networkTypeToNetworkInfo.put(info.getType(), info);
     60         }  else {
     61             networkTypeToNetworkInfo.clear();
     62         }
     63     }
     64 }
     65