1 /* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.settings.testutils.shadow; 18 19 import static org.robolectric.RuntimeEnvironment.application; 20 21 import android.net.wifi.SoftApConfiguration; 22 import android.net.wifi.WifiConfiguration; 23 import android.net.wifi.WifiManager; 24 import android.net.wifi.hotspot2.PasspointConfiguration; 25 26 import org.robolectric.annotation.HiddenApi; 27 import org.robolectric.annotation.Implementation; 28 import org.robolectric.annotation.Implements; 29 import org.robolectric.shadow.api.Shadow; 30 31 import java.util.ArrayList; 32 import java.util.Collections; 33 import java.util.List; 34 35 @Implements(value = WifiManager.class) 36 public class ShadowWifiManager extends org.robolectric.shadows.ShadowWifiManager { 37 38 private List<PasspointConfiguration> mPasspointConfiguration; 39 40 public WifiConfiguration savedWifiConfig; 41 private SoftApConfiguration mSavedApConfig; 42 43 @Implementation getSoftApConfiguration()44 protected SoftApConfiguration getSoftApConfiguration() { 45 return mSavedApConfig; 46 } 47 48 @Implementation setSoftApConfiguration(SoftApConfiguration softApConfig)49 protected boolean setSoftApConfiguration(SoftApConfiguration softApConfig) { 50 mSavedApConfig = softApConfig; 51 return true; 52 } 53 54 @HiddenApi // @SystemApi 55 @Implementation connect(WifiConfiguration config, WifiManager.ActionListener listener)56 protected void connect(WifiConfiguration config, WifiManager.ActionListener listener) { 57 savedWifiConfig = config; 58 } 59 60 @HiddenApi 61 @Implementation save(WifiConfiguration config, WifiManager.ActionListener listener)62 protected void save(WifiConfiguration config, WifiManager.ActionListener listener) { 63 savedWifiConfig = config; 64 } 65 66 @Implementation getPasspointConfigurations()67 protected List<PasspointConfiguration> getPasspointConfigurations() { 68 return mPasspointConfiguration == null ? Collections.emptyList() : mPasspointConfiguration; 69 } 70 71 @Implementation addOrUpdatePasspointConfiguration(PasspointConfiguration config)72 protected void addOrUpdatePasspointConfiguration(PasspointConfiguration config) { 73 if (mPasspointConfiguration == null) { 74 mPasspointConfiguration = new ArrayList<>(); 75 } 76 mPasspointConfiguration.add(config); 77 } 78 79 @Implementation isDualModeSupported()80 protected boolean isDualModeSupported() { 81 return false; 82 } 83 get()84 public static ShadowWifiManager get() { 85 return Shadow.extract(application.getSystemService(WifiManager.class)); 86 } 87 } 88