diff options
Diffstat (limited to 'service/java/com/android/server/wifi/WifiServiceImpl.java')
-rw-r--r-- | service/java/com/android/server/wifi/WifiServiceImpl.java | 29 |
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; |