This commit is contained in:
Yamozha
2021-04-02 02:24:13 +03:00
parent c23950b545
commit 7256d79e2c
31493 changed files with 3036630 additions and 0 deletions

View File

@ -0,0 +1,20 @@
require 'json'
package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json')))
Pod::Spec.new do |s|
s.name = 'UMPermissionsInterface'
s.version = package['version']
s.summary = package['description']
s.description = package['description']
s.license = package['license']
s.author = package['author']
s.homepage = package['homepage']
s.platform = :ios, '10.0'
s.source = { git: 'https://github.com/expo/expo.git' }
s.source_files = 'UMPermissionsInterface/**/*.{h,m}'
s.preserve_paths = 'UMPermissionsInterface/**/*.{h,m}'
s.requires_arc = true
s.dependency 'UMCore'
end

View File

@ -0,0 +1,37 @@
// Copyright 2018-present 650 Industries. All rights reserved.
#import <Foundation/Foundation.h>
#import <UMCore/UMModuleRegistry.h>
typedef enum UMPermissionStatus {
UMPermissionStatusDenied,
UMPermissionStatusGranted,
UMPermissionStatusUndetermined,
} UMPermissionStatus;
@protocol UMPermissionsRequester <NSObject>
+ (NSString *)permissionType;
- (void)requestPermissionsWithResolver:(UMPromiseResolveBlock)resolve rejecter:(UMPromiseRejectBlock)reject;
- (NSDictionary *)getPermissions;
@end
@protocol UMPermissionsInterface
- (void)registerRequesters:(NSArray<id<UMPermissionsRequester>> *)newRequesters;
- (void)getPermissionUsingRequesterClass:(Class)requesterClass
resolve:(UMPromiseResolveBlock)resolve
reject:(UMPromiseRejectBlock)reject;
- (BOOL)hasGrantedPermissionUsingRequesterClass:(Class)requesterClass;
- (void)askForPermissionUsingRequesterClass:(Class)requesterClass
resolve:(UMPromiseResolveBlock)resolve
reject:(UMPromiseRejectBlock)reject;
@end

View File

@ -0,0 +1,22 @@
// Copyright 2018-present 650 Industries. All rights reserved.
#import <Foundation/Foundation.h>
#import <UMPermissionsInterface/UMPermissionsInterface.h>
@interface UMPermissionsMethodsDelegate : NSObject
+ (void)getPermissionWithPermissionsManager:(id<UMPermissionsInterface>)permissionsManager
withRequester:(Class)requesterClass
resolve:(UMPromiseResolveBlock)resolve
reject:(UMPromiseRejectBlock)reject;
+ (void)askForPermissionWithPermissionsManager:(id<UMPermissionsInterface>)permissionsManager
withRequester:(Class)requesterClass
resolve:(UMPromiseResolveBlock)resolve
reject:(UMPromiseRejectBlock)reject;
+ (void)registerRequesters:(NSArray<id<UMPermissionsRequester>> *)newRequesters
withPermissionsManager:(id<UMPermissionsInterface>)permissionsManager;
@end

View File

@ -0,0 +1,41 @@
// Copyright 2018-present 650 Industries. All rights reserved.
#import <UMPermissionsInterface/UMPermissionsMethodsDelegate.h>
@implementation UMPermissionsMethodsDelegate
+ (void)askForPermissionWithPermissionsManager:(id<UMPermissionsInterface>)permissionsManager
withRequester:(Class)requesterClass
resolve:(UMPromiseResolveBlock)resolve
reject:(UMPromiseRejectBlock)reject
{
if (!permissionsManager) {
return reject(@"E_NO_PERMISSIONS", @"Permissions module not found. Are you sure that Expo modules are properly linked?", nil);
}
[permissionsManager askForPermissionUsingRequesterClass:requesterClass
resolve:resolve
reject:reject];
}
+ (void)getPermissionWithPermissionsManager:(id<UMPermissionsInterface>)permissionsManager
withRequester:(Class)requesterClass
resolve:(UMPromiseResolveBlock)resolve
reject:(UMPromiseRejectBlock)reject
{
if (!permissionsManager) {
return reject(@"E_NO_PERMISSIONS", @"Permissions module not found. Are you sure that Expo modules are properly linked?", nil);
}
[permissionsManager getPermissionUsingRequesterClass:requesterClass
resolve:resolve
reject:reject];
}
+ (void)registerRequesters:(NSArray<id<UMPermissionsRequester>> *)newRequesters
withPermissionsManager:(id<UMPermissionsInterface>)permissionsManager
{
if (permissionsManager) {
[permissionsManager registerRequesters:newRequesters];
}
}
@end

View File

@ -0,0 +1,12 @@
// Copyright 2018-present 650 Industries. All rights reserved.
#import <Foundation/Foundation.h>
#import <UserNotifications/UserNotifications.h>
@protocol UMUserNotificationCenterProxyInterface <NSObject>
- (void)getNotificationSettingsWithCompletionHandler:(nonnull void(^)(UNNotificationSettings *__nonnull settings))completionHandler;
- (void)requestAuthorizationWithOptions:(UNAuthorizationOptions)options completionHandler:(nonnull void (^)(BOOL granted, NSError *__nullable error))completionHandler;
@end