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