From 327e059bcdb54ef1d0f401248f90294dc6dab404 Mon Sep 17 00:00:00 2001 From: jegor Date: Wed, 16 Oct 2024 21:47:27 +0200 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9C=A8:=20Send=20packet=20to=20local=20n?= =?UTF-8?q?etwork=20during=20the=20first=20local=20network=20permission=20?= =?UTF-8?q?request?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit hq/jegor/APP-211/PLAN-530_local-network-permission-popup --- .../RNPermissionHandlerLocalNetworkPrivacy.m | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ios/LocalNetworkPrivacy/RNPermissionHandlerLocalNetworkPrivacy.m b/ios/LocalNetworkPrivacy/RNPermissionHandlerLocalNetworkPrivacy.m index f4943790..95e874e6 100644 --- a/ios/LocalNetworkPrivacy/RNPermissionHandlerLocalNetworkPrivacy.m +++ b/ios/LocalNetworkPrivacy/RNPermissionHandlerLocalNetworkPrivacy.m @@ -22,14 +22,18 @@ - (void)checkWithResolver:(void (^ _Nonnull)(RNPermissionStatus))resolve - (void)requestWithResolver:(void (^ _Nonnull)(RNPermissionStatus))resolve rejecter:(void (^ _Nonnull)(NSError * _Nonnull))reject { + LocalNetworkPrivacy *local = [LocalNetworkPrivacy new]; if (![RNPermissionsHelper isFlaggedAsRequested:[[self class] handlerUniqueId]]) { + // This will trigger the local network permission native dialog + [local checkAccessState:^(BOOL granted) { + // Ignoring result for the first time. We just want iOS to initiate the permission request + }]; [RNPermissionsHelper flagAsRequested:[[self class] handlerUniqueId]]; + + // We can't get the permission dialog result, therefor returning not determined status return resolve(RNPermissionStatusNotDetermined); } - - [RNPermissionsHelper flagAsRequested:[[self class] handlerUniqueId]]; - LocalNetworkPrivacy *local = [LocalNetworkPrivacy new]; [local checkAccessState:^(BOOL granted) { resolve(granted ? RNPermissionStatusAuthorized : RNPermissionStatusDenied); }]; From e87af732819100618076359eee9046d901dda513 Mon Sep 17 00:00:00 2001 From: jegor Date: Wed, 16 Oct 2024 21:49:13 +0200 Subject: [PATCH 2/2] =?UTF-8?q?=E2=9A=A1=EF=B8=8F:=20Reduce=20timer=20inte?= =?UTF-8?q?rval=20for=20local=20network=20privacy=20check?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit hq/jegor/APP-211/PLAN-530_local-network-permission-popup --- ios/LocalNetworkPrivacy/LocalNetworkPrivacy.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/LocalNetworkPrivacy/LocalNetworkPrivacy.m b/ios/LocalNetworkPrivacy/LocalNetworkPrivacy.m index 9ea9fa95..53f771c9 100644 --- a/ios/LocalNetworkPrivacy/LocalNetworkPrivacy.m +++ b/ios/LocalNetworkPrivacy/LocalNetworkPrivacy.m @@ -30,7 +30,7 @@ - (void)checkAccessState:(void (^)(BOOL))completion { self.service.delegate = self; [self.service publish]; - self.timer = [NSTimer scheduledTimerWithTimeInterval:2 repeats:NO block:^(NSTimer * _Nonnull timer) { + self.timer = [NSTimer scheduledTimerWithTimeInterval:1 repeats:NO block:^(NSTimer * _Nonnull timer) { [self.timer invalidate]; self.completion(NO); }];