17581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarsepackage com.xtremelabs.robolectric.shadows; 27581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse 37581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.net.ConnectivityManager; 47581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.net.NetworkInfo; 522c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implementation; 622c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implements; 77581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse 81c5a1843c60477a9a49148c46cb1b98d5ee5b26bTim Labeeuw & Tyler Schultzimport java.util.HashMap; 91c5a1843c60477a9a49148c46cb1b98d5ee5b26bTim Labeeuw & Tyler Schultzimport java.util.Map; 101c5a1843c60477a9a49148c46cb1b98d5ee5b26bTim Labeeuw & Tyler Schultz 117581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse/** 127581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse * Shadow of {@code ConnectivityManager} that provides for the simulation of 137581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse * the active connection status. 147581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse */ 157581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse 167581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse@Implements(ConnectivityManager.class) 177581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarsepublic class ShadowConnectivityManager { 187581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse 198883f75608a3e5d07cebf8a2f929d8912315ccd9Rob Dickerson private NetworkInfo activeNetwork; 203bd1e0c169b3376cc7ab54bfe01285a3e321d167Jan Berkel private boolean backgroundDataSetting; 217581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse 221c5a1843c60477a9a49148c46cb1b98d5ee5b26bTim Labeeuw & Tyler Schultz private Map<Integer, NetworkInfo> networkTypeToNetworkInfo = new HashMap<Integer, NetworkInfo>(); 231c5a1843c60477a9a49148c46cb1b98d5ee5b26bTim Labeeuw & Tyler Schultz 2496fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel public void __constructor__() { 2596fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel setActiveNetworkInfo(ShadowNetworkInfo.newInstance()); 2696fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel } 2796fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel 2840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams @Implementation 297581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse public NetworkInfo getActiveNetworkInfo() { 3096fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel return activeNetwork; 318883f75608a3e5d07cebf8a2f929d8912315ccd9Rob Dickerson } 328883f75608a3e5d07cebf8a2f929d8912315ccd9Rob Dickerson 338883f75608a3e5d07cebf8a2f929d8912315ccd9Rob Dickerson @Implementation 348883f75608a3e5d07cebf8a2f929d8912315ccd9Rob Dickerson public NetworkInfo[] getAllNetworkInfo() { 3596fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel return networkTypeToNetworkInfo.values().toArray(new NetworkInfo[networkTypeToNetworkInfo.size()]); 367581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse } 371c5a1843c60477a9a49148c46cb1b98d5ee5b26bTim Labeeuw & Tyler Schultz 381c5a1843c60477a9a49148c46cb1b98d5ee5b26bTim Labeeuw & Tyler Schultz @Implementation 391c5a1843c60477a9a49148c46cb1b98d5ee5b26bTim Labeeuw & Tyler Schultz public NetworkInfo getNetworkInfo(int networkType) { 401c5a1843c60477a9a49148c46cb1b98d5ee5b26bTim Labeeuw & Tyler Schultz return networkTypeToNetworkInfo.get(networkType); 411c5a1843c60477a9a49148c46cb1b98d5ee5b26bTim Labeeuw & Tyler Schultz } 421c5a1843c60477a9a49148c46cb1b98d5ee5b26bTim Labeeuw & Tyler Schultz 433bd1e0c169b3376cc7ab54bfe01285a3e321d167Jan Berkel @Implementation 443bd1e0c169b3376cc7ab54bfe01285a3e321d167Jan Berkel public boolean getBackgroundDataSetting() { 453bd1e0c169b3376cc7ab54bfe01285a3e321d167Jan Berkel return backgroundDataSetting; 463bd1e0c169b3376cc7ab54bfe01285a3e321d167Jan Berkel } 473bd1e0c169b3376cc7ab54bfe01285a3e321d167Jan Berkel 4896fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel public void setNetworkInfo(int networkType, NetworkInfo networkInfo) { 4996fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel networkTypeToNetworkInfo.put(networkType, networkInfo); 5096fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel } 5196fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel 523bd1e0c169b3376cc7ab54bfe01285a3e321d167Jan Berkel public void setBackgroundDataSetting(boolean b) { 533bd1e0c169b3376cc7ab54bfe01285a3e321d167Jan Berkel backgroundDataSetting = b; 543bd1e0c169b3376cc7ab54bfe01285a3e321d167Jan Berkel } 5596fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel 5696fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel public void setActiveNetworkInfo(NetworkInfo info) { 5796fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel activeNetwork = info; 5896fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel if (info != null) { 5996fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel networkTypeToNetworkInfo.put(info.getType(), info); 6096fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel } else { 6196fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel networkTypeToNetworkInfo.clear(); 6296fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel } 6396fdd17081c3b220bd0ab5f8e1950aecee074f36Jan Berkel } 647581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse} 65