Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c5cbb79bc7 |
@@ -74,6 +74,8 @@
|
||||
</dict>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>Status uses camera to take pictures and scan QR codes.</string>
|
||||
<key>NSLocalNetworkUsageDescription</key>
|
||||
<string>Status needs access to the local network to give you the ability to connect with peers.</string>
|
||||
<key>NSLocationAlwaysUsageDescription</key>
|
||||
<string>Location access is required for some DApps to function properly.</string>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
|
||||
@@ -4,10 +4,25 @@
|
||||
#import "Statusgo.h"
|
||||
#import "Utils.h"
|
||||
|
||||
@interface NetworkManager() <NSNetServiceBrowserDelegate>
|
||||
|
||||
@property (nonatomic, strong) NSNetServiceBrowser *serviceBrowser;
|
||||
@property (nonatomic, copy) RCTResponseSenderBlock callback;
|
||||
|
||||
@end
|
||||
|
||||
@implementation NetworkManager
|
||||
|
||||
RCT_EXPORT_MODULE();
|
||||
|
||||
- (instancetype)init {
|
||||
if ((self = [super init])) {
|
||||
self.serviceBrowser = [[NSNetServiceBrowser alloc] init];
|
||||
self.serviceBrowser.delegate = self;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(startSearchForLocalPairingPeers:(RCTResponseSenderBlock)callback) {
|
||||
NSString *result = StatusgoStartSearchForLocalPairingPeers();
|
||||
callback(@[result]);
|
||||
@@ -95,6 +110,39 @@ RCT_EXPORT_METHOD(callPrivateRPC:(NSString *)payload
|
||||
});
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(requestLocalNetworkAccess:(RCTResponseSenderBlock)callback) {
|
||||
self.callback = callback;
|
||||
|
||||
// Start browsing for services using TCP on the local network.
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[self.serviceBrowser searchForServicesOfType:@"_http._tcp." inDomain:@""];
|
||||
});
|
||||
}
|
||||
|
||||
// NSNetServiceBrowser delegate method
|
||||
- (void)netServiceBrowser:(NSNetServiceBrowser *)browser didNotSearch:(NSDictionary<NSString *,NSNumber *> *)errorDict {
|
||||
RCTLogInfo(@"Failed to search for services: %@", errorDict);
|
||||
if (self.callback) {
|
||||
self.callback(@[@"Failed to search for services"]);
|
||||
}
|
||||
}
|
||||
|
||||
// NSNetServiceBrowser delegate method
|
||||
- (void)netServiceBrowser:(NSNetServiceBrowser *)browser didFindService:(NSNetService *)service moreComing:(BOOL)moreComing {
|
||||
RCTLogInfo(@"Found service: %@", service);
|
||||
// we stop the search after finding the first service or wait until the search is finished.
|
||||
[browser stop];
|
||||
|
||||
if (self.callback) {
|
||||
self.callback(@[[NSNull null], @"Requested local network access and found service"]);
|
||||
}
|
||||
}
|
||||
|
||||
// NSNetServiceBrowser delegate method
|
||||
- (void)netServiceBrowserDidStopSearch:(NSNetServiceBrowser *)browser {
|
||||
RCTLogInfo(@"Stopped searching for services");
|
||||
}
|
||||
|
||||
#pragma mark - Recover
|
||||
|
||||
RCT_EXPORT_METHOD(recover:(NSString *)message
|
||||
|
||||
@@ -258,6 +258,11 @@
|
||||
(log/debug "[native-module] set-soft-input-mode")
|
||||
(.setSoftInputMode ^js (ui-helper) mode))
|
||||
|
||||
(defn request-local-network-access
|
||||
[callback]
|
||||
(log/debug "[native-module] request-local-network-access")
|
||||
(.requestLocalNetworkAccess ^js (network) callback))
|
||||
|
||||
(defn call-rpc
|
||||
[payload callback]
|
||||
(log/debug "[native-module] call-rpc")
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
[status-im.contexts.onboarding.new-to-status.style :as style]
|
||||
[utils.debounce :as debounce]
|
||||
[utils.i18n :as i18n]
|
||||
[native-module.core :as native-module]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn sign-in-options
|
||||
@@ -95,7 +96,8 @@
|
||||
|
||||
(defn new-to-status
|
||||
[]
|
||||
(let [{:keys [top]} (safe-area/get-insets)]
|
||||
(let [{:keys [top]} (safe-area/get-insets)
|
||||
_ (native-module/request-local-network-access (fn [response] (log/info "request-local-network-access ->" response)))]
|
||||
[rn/view {:style style/content-container}
|
||||
[quo/page-nav
|
||||
{:margin-top top
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
(react-native-shake/add-shake-listener #(re-frame/dispatch [:shake-event]))
|
||||
(universal-links/initialize)
|
||||
(interceptors/register-global-interceptors)
|
||||
; (native-module/request-local-network-access (fn [response] (log/info "request-local-network-access ->" response)))
|
||||
|
||||
;; Shell
|
||||
(async-storage/get-item :selected-stack-id #(shell.utils/change-selected-stack-id % nil nil))
|
||||
|
||||
Reference in New Issue
Block a user