summaryrefslogtreecommitdiff
path: root/service/java/com/android/server/wifi/WifiServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'service/java/com/android/server/wifi/WifiServiceImpl.java')
-rw-r--r--service/java/com/android/server/wifi/WifiServiceImpl.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java
index 3b4f39796..f84337cc0 100644
--- a/service/java/com/android/server/wifi/WifiServiceImpl.java
+++ b/service/java/com/android/server/wifi/WifiServiceImpl.java
@@ -60,6 +60,7 @@ import android.net.wifi.IOnWifiUsabilityStatsListener;
import android.net.wifi.IScanResultsCallback;
import android.net.wifi.ISoftApCallback;
import android.net.wifi.ISuggestionConnectionStatusListener;
+import android.net.wifi.IStaStateCallback;
import android.net.wifi.ITrafficStateCallback;
import android.net.wifi.IWifiConnectedNetworkScorer;
import android.net.wifi.ScanResult;
@@ -188,6 +189,8 @@ public class WifiServiceImpl extends BaseWifiService {
private final WifiConfigManager mWifiConfigManager;
private final PasspointManager mPasspointManager;
private final WifiLog mLog;
+ private final WifiStaStateNotifier mWifiStaStateNotifier;
+
/**
* Verbose logging flag. Toggled by developer options.
*/
@@ -329,6 +332,7 @@ public class WifiServiceImpl extends BaseWifiService {
mWifiScoreCard = mWifiInjector.getWifiScoreCard();
mMemoryStoreImpl = new MemoryStoreImpl(mContext, mWifiInjector,
mWifiScoreCard, mWifiInjector.getWifiHealthMonitor());
+ mWifiStaStateNotifier = mWifiInjector.getWifiStaStateNotifier();
}
/**
@@ -3729,6 +3733,31 @@ public class WifiServiceImpl extends BaseWifiService {
mWifiTrafficPoller.removeCallback(callbackIdentifier));
}
+ @Override
+ public void registerStaStateCallback(IBinder binder, IStaStateCallback callback,
+ int callbackIdentifier) {
+ if (binder == null) {
+ throw new IllegalArgumentException("Binder must not be null");
+ }
+ if (callback == null) {
+ throw new IllegalArgumentException("Callback must not be null");
+ }
+ if (mVerboseLoggingEnabled) {
+ mLog.info("registerStaStateCallback uid=%").c(Binder.getCallingUid()).flush();
+ }
+ mWifiThreadRunner.post(() ->
+ mWifiStaStateNotifier.addCallback(binder, callback, callbackIdentifier));
+ }
+
+ @Override
+ public void unregisterStaStateCallback(int callbackIdentifier) {
+ if (mVerboseLoggingEnabled) {
+ mLog.info("unregisterStaStateCallback uid=%").c(Binder.getCallingUid()).flush();
+ }
+ mWifiThreadRunner.post(() ->
+ mWifiStaStateNotifier.removeCallback(callbackIdentifier));
+ }
+
private long getSupportedFeaturesInternal() {
final AsyncChannel channel = mClientModeImplChannel;
long supportedFeatureSet = 0L;