From 0a3d9fcf65a3ff53918ae92e29d8b3afc0355454 Mon Sep 17 00:00:00 2001 From: Hossin Asaadi Date: Thu, 22 May 2025 13:45:46 +0400 Subject: [PATCH 1/2] Update DiscoveryManager.m --- Discovery/DiscoveryManager.m | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Discovery/DiscoveryManager.m b/Discovery/DiscoveryManager.m index 672ce82a..4a5f9ba2 100644 --- a/Discovery/DiscoveryManager.m +++ b/Discovery/DiscoveryManager.m @@ -38,8 +38,10 @@ #import "AppStateChangeNotifier.h" #import +#import @interface DiscoveryManager() +@property(strong, nonatomic) CLLocationManager* locationManager; @end @@ -131,6 +133,9 @@ - (instancetype) initWithAppStateChangeNotifier:(nullable AppStateChangeNotifier [sself resumeDiscovery]; }; + _locationManager = [[CLLocationManager alloc] init]; + [_locationManager requestWhenInUseAuthorization]; + [self startSSIDTimer]; } @@ -244,6 +249,8 @@ - (void) unregisterDeviceService:(Class)deviceClass withDiscovery:(Class)discove - (void) startSSIDTimer { + [_ssidTimer invalidate]; + _ssidTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(detectSSIDChange) userInfo:nil repeats:YES]; [_ssidTimer fire]; } @@ -256,6 +263,10 @@ - (void) stopSSIDTimer - (void) detectSSIDChange { + if ([_locationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined || + [_locationManager authorizationStatus] == kCLAuthorizationStatusDenied) { + return; + } NSArray *interfaces = (__bridge_transfer id) CNCopySupportedInterfaces(); __block NSString *ssidName; From d244e6a0f7f19d24f0db0122256c6740ebe0c5ad Mon Sep 17 00:00:00 2001 From: Hossin Asaadi Date: Thu, 22 May 2025 15:07:11 +0400 Subject: [PATCH 2/2] stop ssid timer in stopDiscovery --- Discovery/DiscoveryManager.m | 1 + 1 file changed, 1 insertion(+) diff --git a/Discovery/DiscoveryManager.m b/Discovery/DiscoveryManager.m index 4a5f9ba2..6091e66e 100644 --- a/Discovery/DiscoveryManager.m +++ b/Discovery/DiscoveryManager.m @@ -493,6 +493,7 @@ - (void) stopDiscovery if (!_shouldResumeSearch) { [self.appStateChangeNotifier stopListening]; + [self stopSSIDTimer]; } }