1 /* 2 * Copyright (C) 2020 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.server.wifi; 18 19 import android.net.DhcpResultsParcelable; 20 import android.net.Network; 21 import android.net.wifi.IWifiConnectedNetworkScorer; 22 import android.net.wifi.WifiConfiguration; 23 import android.net.wifi.WifiInfo; 24 import android.net.wifi.WifiManager; 25 import android.net.wifi.hotspot2.IProvisioningCallback; 26 import android.net.wifi.hotspot2.OsuProvider; 27 import android.net.wifi.nl80211.DeviceWiphyCapabilities; 28 import android.os.IBinder; 29 import android.os.Message; 30 import android.os.WorkSource; 31 32 import com.android.server.wifi.util.ActionListenerWrapper; 33 34 import java.io.FileDescriptor; 35 import java.io.PrintWriter; 36 import java.util.ArrayList; 37 import java.util.List; 38 import java.util.Set; 39 40 /** 41 * Default implementations for {@link ClientMode} APIs. 42 */ 43 public interface ClientModeDefaults extends ClientMode { dump(FileDescriptor fd, PrintWriter pw, String[] args)44 default void dump(FileDescriptor fd, PrintWriter pw, String[] args) { } 45 connectNetwork(NetworkUpdateResult result, ActionListenerWrapper wrapper, int callingUid)46 default void connectNetwork(NetworkUpdateResult result, ActionListenerWrapper wrapper, 47 int callingUid) { 48 // wifi off, can't connect. 49 wrapper.sendFailure(WifiManager.BUSY); 50 } 51 saveNetwork(NetworkUpdateResult result, ActionListenerWrapper wrapper, int callingUid)52 default void saveNetwork(NetworkUpdateResult result, ActionListenerWrapper wrapper, 53 int callingUid) { 54 // wifi off, nothing more to do here. 55 wrapper.sendSuccess(); 56 } 57 disconnect()58 default void disconnect() { } 59 reconnect(WorkSource ws)60 default void reconnect(WorkSource ws) { } 61 reassociate()62 default void reassociate() { } 63 startConnectToNetwork(int networkId, int uid, String bssid)64 default void startConnectToNetwork(int networkId, int uid, String bssid) { } 65 startRoamToNetwork(int networkId, String bssid)66 default void startRoamToNetwork(int networkId, String bssid) { } 67 setWifiConnectedNetworkScorer( IBinder binder, IWifiConnectedNetworkScorer scorer)68 default boolean setWifiConnectedNetworkScorer( 69 IBinder binder, IWifiConnectedNetworkScorer scorer) { 70 // don't fail the public API when wifi is off. 71 return true; 72 } 73 clearWifiConnectedNetworkScorer()74 default void clearWifiConnectedNetworkScorer() { } 75 resetSimAuthNetworks(@lientModeImpl.ResetSimReason int resetReason)76 default void resetSimAuthNetworks(@ClientModeImpl.ResetSimReason int resetReason) { } 77 onBluetoothConnectionStateChanged()78 default void onBluetoothConnectionStateChanged() { } 79 syncRequestConnectionInfo()80 default WifiInfo syncRequestConnectionInfo() { 81 return new WifiInfo(); 82 } 83 syncQueryPasspointIcon(long bssid, String fileName)84 default boolean syncQueryPasspointIcon(long bssid, String fileName) { 85 return false; 86 } 87 syncGetCurrentNetwork()88 default Network syncGetCurrentNetwork() { 89 return null; 90 } 91 syncGetDhcpResultsParcelable()92 default DhcpResultsParcelable syncGetDhcpResultsParcelable() { 93 return new DhcpResultsParcelable(); 94 } 95 syncStartSubscriptionProvisioning(int callingUid, OsuProvider provider, IProvisioningCallback callback)96 default boolean syncStartSubscriptionProvisioning(int callingUid, OsuProvider provider, 97 IProvisioningCallback callback) { 98 return false; 99 } 100 enableTdls(String remoteMacAddress, boolean enable)101 default void enableTdls(String remoteMacAddress, boolean enable) { } 102 dumpIpClient(FileDescriptor fd, PrintWriter pw, String[] args)103 default void dumpIpClient(FileDescriptor fd, PrintWriter pw, String[] args) { } 104 dumpWifiScoreReport(FileDescriptor fd, PrintWriter pw, String[] args)105 default void dumpWifiScoreReport(FileDescriptor fd, PrintWriter pw, String[] args) { } 106 enableVerboseLogging(boolean verbose)107 default void enableVerboseLogging(boolean verbose) { } 108 getFactoryMacAddress()109 default String getFactoryMacAddress() { 110 return null; 111 } 112 getConnectedWifiConfiguration()113 default WifiConfiguration getConnectedWifiConfiguration() { 114 return null; 115 } 116 getConnectingWifiConfiguration()117 default WifiConfiguration getConnectingWifiConfiguration() { 118 return null; 119 } 120 getConnectedBssid()121 default String getConnectedBssid() { 122 return null; 123 } 124 getConnectingBssid()125 default String getConnectingBssid() { 126 return null; 127 } 128 getWifiLinkLayerStats()129 default WifiLinkLayerStats getWifiLinkLayerStats() { 130 return null; 131 } 132 setPowerSave(boolean ps)133 default boolean setPowerSave(boolean ps) { 134 return false; 135 } 136 setLowLatencyMode(boolean enabled)137 default boolean setLowLatencyMode(boolean enabled) { 138 return false; 139 } 140 getMcastLockManagerFilterController()141 default WifiMulticastLockManager.FilterController getMcastLockManagerFilterController() { 142 return new WifiMulticastLockManager.FilterController() { 143 @Override 144 public void startFilteringMulticastPackets() { } 145 @Override 146 public void stopFilteringMulticastPackets() { } 147 }; 148 } 149 isConnected()150 default boolean isConnected() { 151 return false; 152 } 153 isConnecting()154 default boolean isConnecting() { 155 return false; 156 } 157 isRoaming()158 default boolean isRoaming() { 159 return false; 160 } 161 isDisconnected()162 default boolean isDisconnected() { 163 return true; 164 } 165 isSupplicantTransientState()166 default boolean isSupplicantTransientState() { 167 return false; 168 } 169 onCellularConnectivityChanged(@ifiDataStall.CellularDataStatusCode int status)170 default void onCellularConnectivityChanged(@WifiDataStall.CellularDataStatusCode int status) {} 171 probeLink(ClientMode.LinkProbeCallback callback, int mcs)172 default void probeLink(ClientMode.LinkProbeCallback callback, int mcs) { 173 callback.onFailure(ClientMode.LinkProbeCallback.LINK_PROBE_ERROR_NOT_CONNECTED); 174 } 175 sendMessageToClientModeImpl(Message msg)176 default void sendMessageToClientModeImpl(Message msg) { } 177 setMboCellularDataStatus(boolean available)178 default void setMboCellularDataStatus(boolean available) { } 179 getRoamingCapabilities()180 default WifiNative.RoamingCapabilities getRoamingCapabilities() { 181 return null; 182 } 183 configureRoaming(WifiNative.RoamingConfig config)184 default boolean configureRoaming(WifiNative.RoamingConfig config) { 185 return false; 186 } 187 enableRoaming(boolean enabled)188 default boolean enableRoaming(boolean enabled) { 189 return false; 190 } 191 setCountryCode(String countryCode)192 default boolean setCountryCode(String countryCode) { 193 return false; 194 } 195 getTxPktFates()196 default List<WifiNative.TxFateReport> getTxPktFates() { 197 return new ArrayList<>(); 198 } 199 getRxPktFates()200 default List<WifiNative.RxFateReport> getRxPktFates() { 201 return new ArrayList<>(); 202 } 203 getDeviceWiphyCapabilities()204 default DeviceWiphyCapabilities getDeviceWiphyCapabilities() { 205 return null; 206 } 207 requestAnqp(String bssid, Set<Integer> anqpIds, Set<Integer> hs20Subtypes)208 default boolean requestAnqp(String bssid, Set<Integer> anqpIds, Set<Integer> hs20Subtypes) { 209 return false; 210 } 211 requestVenueUrlAnqp(String bssid)212 default boolean requestVenueUrlAnqp(String bssid) { 213 return false; 214 } 215 requestIcon(String bssid, String fileName)216 default boolean requestIcon(String bssid, String fileName) { 217 return false; 218 } 219 220 @Override setShouldReduceNetworkScore(boolean shouldReduceNetworkScore)221 default void setShouldReduceNetworkScore(boolean shouldReduceNetworkScore) { } 222 } 223