Fixed Location & Storage issues
This commit is contained in:
@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AvailableLibraries</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BinaryPath</key>
|
||||
<string>permission_handler_apple.framework/permission_handler_apple</string>
|
||||
<key>LibraryIdentifier</key>
|
||||
<string>ios-arm64_x86_64-simulator</string>
|
||||
<key>LibraryPath</key>
|
||||
<string>permission_handler_apple.framework</string>
|
||||
<key>SupportedArchitectures</key>
|
||||
<array>
|
||||
<string>arm64</string>
|
||||
<string>x86_64</string>
|
||||
</array>
|
||||
<key>SupportedPlatform</key>
|
||||
<string>ios</string>
|
||||
<key>SupportedPlatformVariant</key>
|
||||
<string>simulator</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BinaryPath</key>
|
||||
<string>permission_handler_apple.framework/permission_handler_apple</string>
|
||||
<key>LibraryIdentifier</key>
|
||||
<string>ios-arm64</string>
|
||||
<key>LibraryPath</key>
|
||||
<string>permission_handler_apple.framework</string>
|
||||
<key>SupportedArchitectures</key>
|
||||
<array>
|
||||
<string>arm64</string>
|
||||
</array>
|
||||
<key>SupportedPlatform</key>
|
||||
<string>ios</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XFWK</string>
|
||||
<key>XCFrameworkFormatVersion</key>
|
||||
<string>1.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@ -0,0 +1,25 @@
|
||||
//
|
||||
// AppTrackingTransparency.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Jan-Derk on 21/05/2021.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_APP_TRACKING_TRANSPARENCY
|
||||
|
||||
#import <AppTrackingTransparency/AppTrackingTransparency.h>
|
||||
|
||||
@interface AppTrackingTransparencyPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
|
||||
@interface AppTrackingTransparencyPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,22 @@
|
||||
//
|
||||
// Created by Baptiste Dupuch(dupuchba) on 2023-09-04.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_ASSISTANT
|
||||
|
||||
#import <Intents/Intents.h>
|
||||
|
||||
@interface AssistantPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface AssistantPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,21 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_CAMERA | PERMISSION_MICROPHONE
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
||||
@interface AudioVideoPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface AudioVideoPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,17 @@
|
||||
//
|
||||
// BackgroundRefreshStrategy.h
|
||||
// permission_handler_apple
|
||||
//
|
||||
// Created by Sebastian Roth on 28/09/2023.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface BackgroundRefreshStrategy : NSObject<PermissionStrategy>
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@ -0,0 +1,26 @@
|
||||
//
|
||||
// BluetoothPermissionStrategy.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Rene Floor on 12/03/2021.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_BLUETOOTH
|
||||
|
||||
#import <CoreBluetooth/CoreBluetooth.h>
|
||||
|
||||
@interface BluetoothPermissionStrategy : NSObject <PermissionStrategy, CBCentralManagerDelegate>
|
||||
- (void)initManagerIfNeeded;
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
|
||||
@interface BluetoothPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,17 @@
|
||||
//
|
||||
// Created by Razvan Lung on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionHandlerEnums.h"
|
||||
|
||||
@interface Codec : NSObject
|
||||
+ (PermissionGroup)decodePermissionGroupFrom:(NSNumber *_Nonnull)event;
|
||||
|
||||
+ (NSArray*_Nullable)decodePermissionGroupsFrom:(NSArray<NSNumber *> *_Nullable)event;
|
||||
|
||||
+ (NSNumber *_Nullable)encodePermissionStatus:(enum PermissionStatus)permissionStatus;
|
||||
|
||||
+ (NSNumber *_Nullable)encodeServiceStatus:(enum ServiceStatus)serviceStatus;
|
||||
@end
|
||||
@ -0,0 +1,23 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_CONTACTS
|
||||
|
||||
#import <AddressBook/ABAddressBook.h>
|
||||
#import <Contacts/Contacts.h>
|
||||
|
||||
@interface ContactPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface ContactPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,25 @@
|
||||
//
|
||||
// CriticalAlertsPermissionStrategy.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Neal Soni on 2021/6/8.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_CRITICAL_ALERTS
|
||||
|
||||
#import <UserNotifications/UserNotifications.h>
|
||||
|
||||
@interface CriticalAlertsPermissionStrategy : NSObject <PermissionStrategy>
|
||||
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface CriticalAlertsPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,22 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_EVENTS | PERMISSION_EVENTS_FULL_ACCESS | PERMISSION_REMINDERS
|
||||
|
||||
#import <EventKit/EventKit.h>
|
||||
|
||||
@interface EventPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface EventPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,23 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_LOCATION || PERMISSION_LOCATION_WHENINUSE || PERMISSION_LOCATION_ALWAYS
|
||||
|
||||
#import <CoreLocation/CoreLocation.h>
|
||||
|
||||
@interface LocationPermissionStrategy : NSObject <PermissionStrategy, CLLocationManagerDelegate>
|
||||
- (instancetype)initWithLocationManager;
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface LocationPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,22 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#include "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_MEDIA_LIBRARY
|
||||
|
||||
#import <MediaPlayer/MediaPlayer.h>
|
||||
|
||||
@interface MediaLibraryPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface MediaLibraryPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,25 @@
|
||||
//
|
||||
// NotificationPermissionStrategy.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Tong on 2019/10/21.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_NOTIFICATIONS
|
||||
|
||||
#import <UserNotifications/UserNotifications.h>
|
||||
|
||||
@interface NotificationPermissionStrategy : NSObject <PermissionStrategy>
|
||||
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface NotificationPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,182 @@
|
||||
//
|
||||
// PermissionHandlerEnums.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Razvan Lung on 15/02/2019.
|
||||
//
|
||||
|
||||
// ios: [PermissionGroupCalendar, PermissionGroupCalendarWriteOnly]
|
||||
// Info.plist: [NSCalendarsUsageDescription, NSCalendarWriteOnlyAccessUsageDescription]
|
||||
// dart: PermissionGroup.calendar
|
||||
#ifndef PERMISSION_EVENTS
|
||||
#define PERMISSION_EVENTS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupReminders
|
||||
// Info.plist: NSRemindersFullAccessUsageDescription
|
||||
// dart: PermissionGroup.reminders
|
||||
#ifndef PERMISSION_REMINDERS
|
||||
#define PERMISSION_REMINDERS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupContacts
|
||||
// Info.plist: NSContactsUsageDescription
|
||||
// dart: PermissionGroup.contacts
|
||||
#ifndef PERMISSION_CONTACTS
|
||||
#define PERMISSION_CONTACTS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupCamera
|
||||
// Info.plist: NSCameraUsageDescription
|
||||
// dart: PermissionGroup.camera
|
||||
#ifndef PERMISSION_CAMERA
|
||||
#define PERMISSION_CAMERA 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupMicrophone
|
||||
// Info.plist: NSMicrophoneUsageDescription
|
||||
// dart: PermissionGroup.microphone
|
||||
#ifndef PERMISSION_MICROPHONE
|
||||
#define PERMISSION_MICROPHONE 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupSpeech
|
||||
// Info.plist: NSSpeechRecognitionUsageDescription
|
||||
// dart: PermissionGroup.speech
|
||||
#ifndef PERMISSION_SPEECH_RECOGNIZER
|
||||
#define PERMISSION_SPEECH_RECOGNIZER 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupPhotos
|
||||
// Info.plist: NSPhotoLibraryUsageDescription
|
||||
// dart: PermissionGroup.photos
|
||||
#ifndef PERMISSION_PHOTOS
|
||||
#define PERMISSION_PHOTOS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupPhotosAddOnly
|
||||
// Info.plist: NSPhotoLibraryAddUsageDescription
|
||||
// dart: PermissionGroup.photosAddOnly
|
||||
#ifndef PERMISSION_PHOTOS_ADD_ONLY
|
||||
#define PERMISSION_PHOTOS_ADD_ONLY 0
|
||||
#endif
|
||||
|
||||
// ios: [PermissionGroupLocation, PermissionGroupLocationAlways, PermissionGroupLocationWhenInUse]
|
||||
// Info.plist: [NSLocationUsageDescription, NSLocationAlwaysAndWhenInUseUsageDescription, NSLocationWhenInUseUsageDescription]
|
||||
// dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
|
||||
#ifndef PERMISSION_LOCATION
|
||||
#define PERMISSION_LOCATION 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupNotification
|
||||
// dart: PermissionGroup.notification
|
||||
#ifndef PERMISSION_NOTIFICATIONS
|
||||
#define PERMISSION_NOTIFICATIONS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupMediaLibrary
|
||||
// Info.plist: [NSAppleMusicUsageDescription, kTCCServiceMediaLibrary]
|
||||
// dart: PermissionGroup.mediaLibrary
|
||||
#ifndef PERMISSION_MEDIA_LIBRARY
|
||||
#define PERMISSION_MEDIA_LIBRARY 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupSensors
|
||||
// Info.plist: NSMotionUsageDescription
|
||||
// dart: PermissionGroup.sensors
|
||||
#ifndef PERMISSION_SENSORS
|
||||
#define PERMISSION_SENSORS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupBluetooth
|
||||
// Info.plist: [NSBluetoothAlwaysUsageDescription, NSBluetoothPeripheralUsageDescription]
|
||||
// dart: PermissionGroup.bluetooth
|
||||
#ifndef PERMISSION_BLUETOOTH
|
||||
#define PERMISSION_BLUETOOTH 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupAppTrackingTransparency
|
||||
// Info.plist: [NSUserTrackingUsageDescription]
|
||||
// dart: PermissionGroup.appTrackingTransparency
|
||||
#ifndef PERMISSION_APP_TRACKING_TRANSPARENCY
|
||||
#define PERMISSION_APP_TRACKING_TRANSPARENCY 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupCriticalAlerts
|
||||
// Info.plist: UNAuthorizationOptionCriticalAlert
|
||||
// dart: PermissionGroup.criticalAlerts
|
||||
#ifndef PERMISSION_CRITICAL_ALERTS
|
||||
#define PERMISSION_CRITICAL_ALERTS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupAssistant
|
||||
// Info.plist: [NSSiriUsageDescription]
|
||||
// dart: PermissionGroup.assistant
|
||||
#ifndef PERMISSION_ASSISTANT
|
||||
#define PERMISSION_ASSISTANT 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupCalendarFullAccess
|
||||
// Info.plist: [NSCalendarsFullAccessUsageDescription]
|
||||
// dart: PermissionGroup.calendarFullAccess
|
||||
#ifndef PERMISSION_EVENTS_FULL_ACCESS
|
||||
#define PERMISSION_EVENTS_FULL_ACCESS 0
|
||||
#endif
|
||||
|
||||
typedef NS_ENUM(int, PermissionGroup) {
|
||||
PermissionGroupCalendar = 0,
|
||||
PermissionGroupCamera,
|
||||
PermissionGroupContacts,
|
||||
PermissionGroupLocation,
|
||||
PermissionGroupLocationAlways,
|
||||
PermissionGroupLocationWhenInUse,
|
||||
PermissionGroupMediaLibrary,
|
||||
PermissionGroupMicrophone,
|
||||
PermissionGroupPhone,
|
||||
PermissionGroupPhotos,
|
||||
PermissionGroupPhotosAddOnly,
|
||||
PermissionGroupReminders,
|
||||
PermissionGroupSensors,
|
||||
PermissionGroupSms,
|
||||
PermissionGroupSpeech,
|
||||
PermissionGroupStorage,
|
||||
PermissionGroupIgnoreBatteryOptimizations,
|
||||
PermissionGroupNotification,
|
||||
PermissionGroupAccessMediaLocation,
|
||||
PermissionGroupActivityRecognition,
|
||||
PermissionGroupUnknown,
|
||||
PermissionGroupBluetooth,
|
||||
PermissionGroupManageExternalStorage,
|
||||
PermissionGroupSystemAlertWindow,
|
||||
PermissionGroupRequestInstallPackages,
|
||||
PermissionGroupAppTrackingTransparency,
|
||||
PermissionGroupCriticalAlerts,
|
||||
PermissionGroupAccessNotificationPolicy,
|
||||
PermissionGroupBluetoothScan,
|
||||
PermissionGroupBluetoothAdvertise,
|
||||
PermissionGroupBluetoothConnect,
|
||||
PermissionGroupNearbyWifiDevices,
|
||||
PermissiongroupVideos,
|
||||
PermissionGroupAudio,
|
||||
PermissionGroupScheduleExactAlarm,
|
||||
PermissionGroupSensorsAlways,
|
||||
PermissionGroupCalendarWriteOnly,
|
||||
PermissionGroupCalendarFullAccess,
|
||||
PermissionGroupAssistant,
|
||||
PermissionGroupBackgroundRefresh
|
||||
};
|
||||
|
||||
typedef NS_ENUM(int, PermissionStatus) {
|
||||
PermissionStatusDenied = 0,
|
||||
PermissionStatusGranted = 1,
|
||||
PermissionStatusRestricted = 2,
|
||||
PermissionStatusLimited = 3,
|
||||
PermissionStatusPermanentlyDenied = 4,
|
||||
PermissionStatusProvisional = 5,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(int, ServiceStatus) {
|
||||
ServiceStatusDisabled = 0,
|
||||
ServiceStatusEnabled,
|
||||
ServiceStatusNotApplicable,
|
||||
};
|
||||
@ -0,0 +1,6 @@
|
||||
#import <Flutter/Flutter.h>
|
||||
#import "PermissionManager.h"
|
||||
|
||||
@interface PermissionHandlerPlugin : NSObject<FlutterPlugin>
|
||||
- (instancetype)initWithPermissionManager:(PermissionManager *)permissionManager;
|
||||
@end
|
||||
@ -0,0 +1,44 @@
|
||||
//
|
||||
// PermissionManager.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Razvan Lung on 15/02/2019.
|
||||
//
|
||||
|
||||
#import <Flutter/Flutter.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "AudioVideoPermissionStrategy.h"
|
||||
#import "AppTrackingTransparencyPermissionStrategy.h"
|
||||
#import "BackgroundRefreshStrategy.h"
|
||||
#import "BluetoothPermissionStrategy.h"
|
||||
#import "ContactPermissionStrategy.h"
|
||||
#import "EventPermissionStrategy.h"
|
||||
#import "LocationPermissionStrategy.h"
|
||||
#import "MediaLibraryPermissionStrategy.h"
|
||||
#import "PermissionStrategy.h"
|
||||
#import "PhonePermissionStrategy.h"
|
||||
#import "PhotoPermissionStrategy.h"
|
||||
#import "SensorPermissionStrategy.h"
|
||||
#import "SpeechPermissionStrategy.h"
|
||||
#import "StoragePermissionStrategy.h"
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
#import "NotificationPermissionStrategy.h"
|
||||
#import "CriticalAlertsPermissionStrategy.h"
|
||||
#import "AssistantPermissionStrategy.h"
|
||||
#import "PermissionHandlerEnums.h"
|
||||
#import "Codec.h"
|
||||
|
||||
typedef void (^PermissionRequestCompletion)(NSDictionary *permissionRequestResults);
|
||||
|
||||
@interface PermissionManager : NSObject
|
||||
|
||||
- (instancetype)initWithStrategyInstances;
|
||||
- (void)requestPermissions:(NSArray *)permissions completion:(PermissionRequestCompletion)completion errorHandler:(PermissionErrorHandler)errorHandler;
|
||||
|
||||
+ (void)checkPermissionStatus:(enum PermissionGroup)permission result:(FlutterResult)result;
|
||||
+ (void)checkServiceStatus:(enum PermissionGroup)permission result:(FlutterResult)result;
|
||||
+ (void)openAppSettings:(FlutterResult)result;
|
||||
|
||||
@end
|
||||
@ -0,0 +1,19 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionHandlerEnums.h"
|
||||
|
||||
typedef void (^ServiceStatusHandler)(ServiceStatus serviceStatus);
|
||||
typedef void (^PermissionStatusHandler)(PermissionStatus permissionStatus);
|
||||
typedef void (^PermissionErrorHandler)(NSString* errorCode, NSString* errorDescription);
|
||||
|
||||
@protocol PermissionStrategy <NSObject>
|
||||
- (PermissionStatus)checkPermissionStatus:(PermissionGroup)permission;
|
||||
|
||||
- (void)checkServiceStatus:(PermissionGroup)permission completionHandler:(ServiceStatusHandler)completionHandler;
|
||||
|
||||
- (void)requestPermission:(PermissionGroup)permission completionHandler:(PermissionStatusHandler)completionHandler errorHandler:(PermissionErrorHandler)errorHandler;
|
||||
@end
|
||||
@ -0,0 +1,17 @@
|
||||
//
|
||||
// PhonePermissionStrategy.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Sebastian Roth on 5/20/19.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface PhonePermissionStrategy : NSObject<PermissionStrategy>
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@ -0,0 +1,23 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_PHOTOS
|
||||
|
||||
#import <Photos/Photos.h>
|
||||
|
||||
@interface PhotoPermissionStrategy : NSObject <PermissionStrategy>
|
||||
-(instancetype)initWithAccessAddOnly:(BOOL) addOnly;
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface PhotoPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,22 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_SENSORS
|
||||
|
||||
#import <CoreMotion/CoreMotion.h>
|
||||
|
||||
@interface SensorPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface SensorPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,22 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_SPEECH_RECOGNIZER
|
||||
|
||||
#import <Speech/Speech.h>
|
||||
|
||||
@interface SpeechPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface SpeechPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,17 @@
|
||||
//
|
||||
// StoragePermissionStrategy.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Frank Gregor on 06.11.19.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface StoragePermissionStrategy : NSObject <PermissionStrategy>
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@ -0,0 +1,11 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
|
||||
@interface UnknownPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
@ -0,0 +1,38 @@
|
||||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#import "PermissionHandlerEnums.h"
|
||||
#import "PermissionHandlerPlugin.h"
|
||||
#import "PermissionManager.h"
|
||||
#import "AppTrackingTransparencyPermissionStrategy.h"
|
||||
#import "AssistantPermissionStrategy.h"
|
||||
#import "AudioVideoPermissionStrategy.h"
|
||||
#import "BackgroundRefreshStrategy.h"
|
||||
#import "BluetoothPermissionStrategy.h"
|
||||
#import "ContactPermissionStrategy.h"
|
||||
#import "CriticalAlertsPermissionStrategy.h"
|
||||
#import "EventPermissionStrategy.h"
|
||||
#import "LocationPermissionStrategy.h"
|
||||
#import "MediaLibraryPermissionStrategy.h"
|
||||
#import "NotificationPermissionStrategy.h"
|
||||
#import "PermissionStrategy.h"
|
||||
#import "PhonePermissionStrategy.h"
|
||||
#import "PhotoPermissionStrategy.h"
|
||||
#import "SensorPermissionStrategy.h"
|
||||
#import "SpeechPermissionStrategy.h"
|
||||
#import "StoragePermissionStrategy.h"
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
#import "Codec.h"
|
||||
|
||||
FOUNDATION_EXPORT double permission_handler_appleVersionNumber;
|
||||
FOUNDATION_EXPORT const unsigned char permission_handler_appleVersionString[];
|
||||
|
||||
Binary file not shown.
@ -0,0 +1,6 @@
|
||||
framework module permission_handler_apple {
|
||||
umbrella header "permission_handler_apple-umbrella.h"
|
||||
|
||||
export *
|
||||
module * { export * }
|
||||
}
|
||||
Binary file not shown.
@ -0,0 +1,25 @@
|
||||
//
|
||||
// AppTrackingTransparency.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Jan-Derk on 21/05/2021.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_APP_TRACKING_TRANSPARENCY
|
||||
|
||||
#import <AppTrackingTransparency/AppTrackingTransparency.h>
|
||||
|
||||
@interface AppTrackingTransparencyPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
|
||||
@interface AppTrackingTransparencyPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,22 @@
|
||||
//
|
||||
// Created by Baptiste Dupuch(dupuchba) on 2023-09-04.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_ASSISTANT
|
||||
|
||||
#import <Intents/Intents.h>
|
||||
|
||||
@interface AssistantPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface AssistantPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,21 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_CAMERA | PERMISSION_MICROPHONE
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
||||
@interface AudioVideoPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface AudioVideoPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,17 @@
|
||||
//
|
||||
// BackgroundRefreshStrategy.h
|
||||
// permission_handler_apple
|
||||
//
|
||||
// Created by Sebastian Roth on 28/09/2023.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface BackgroundRefreshStrategy : NSObject<PermissionStrategy>
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@ -0,0 +1,26 @@
|
||||
//
|
||||
// BluetoothPermissionStrategy.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Rene Floor on 12/03/2021.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_BLUETOOTH
|
||||
|
||||
#import <CoreBluetooth/CoreBluetooth.h>
|
||||
|
||||
@interface BluetoothPermissionStrategy : NSObject <PermissionStrategy, CBCentralManagerDelegate>
|
||||
- (void)initManagerIfNeeded;
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
|
||||
@interface BluetoothPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,17 @@
|
||||
//
|
||||
// Created by Razvan Lung on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionHandlerEnums.h"
|
||||
|
||||
@interface Codec : NSObject
|
||||
+ (PermissionGroup)decodePermissionGroupFrom:(NSNumber *_Nonnull)event;
|
||||
|
||||
+ (NSArray*_Nullable)decodePermissionGroupsFrom:(NSArray<NSNumber *> *_Nullable)event;
|
||||
|
||||
+ (NSNumber *_Nullable)encodePermissionStatus:(enum PermissionStatus)permissionStatus;
|
||||
|
||||
+ (NSNumber *_Nullable)encodeServiceStatus:(enum ServiceStatus)serviceStatus;
|
||||
@end
|
||||
@ -0,0 +1,23 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_CONTACTS
|
||||
|
||||
#import <AddressBook/ABAddressBook.h>
|
||||
#import <Contacts/Contacts.h>
|
||||
|
||||
@interface ContactPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface ContactPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,25 @@
|
||||
//
|
||||
// CriticalAlertsPermissionStrategy.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Neal Soni on 2021/6/8.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_CRITICAL_ALERTS
|
||||
|
||||
#import <UserNotifications/UserNotifications.h>
|
||||
|
||||
@interface CriticalAlertsPermissionStrategy : NSObject <PermissionStrategy>
|
||||
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface CriticalAlertsPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,22 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_EVENTS | PERMISSION_EVENTS_FULL_ACCESS | PERMISSION_REMINDERS
|
||||
|
||||
#import <EventKit/EventKit.h>
|
||||
|
||||
@interface EventPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface EventPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,23 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_LOCATION || PERMISSION_LOCATION_WHENINUSE || PERMISSION_LOCATION_ALWAYS
|
||||
|
||||
#import <CoreLocation/CoreLocation.h>
|
||||
|
||||
@interface LocationPermissionStrategy : NSObject <PermissionStrategy, CLLocationManagerDelegate>
|
||||
- (instancetype)initWithLocationManager;
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface LocationPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,22 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#include "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_MEDIA_LIBRARY
|
||||
|
||||
#import <MediaPlayer/MediaPlayer.h>
|
||||
|
||||
@interface MediaLibraryPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface MediaLibraryPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,25 @@
|
||||
//
|
||||
// NotificationPermissionStrategy.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Tong on 2019/10/21.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_NOTIFICATIONS
|
||||
|
||||
#import <UserNotifications/UserNotifications.h>
|
||||
|
||||
@interface NotificationPermissionStrategy : NSObject <PermissionStrategy>
|
||||
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface NotificationPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,182 @@
|
||||
//
|
||||
// PermissionHandlerEnums.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Razvan Lung on 15/02/2019.
|
||||
//
|
||||
|
||||
// ios: [PermissionGroupCalendar, PermissionGroupCalendarWriteOnly]
|
||||
// Info.plist: [NSCalendarsUsageDescription, NSCalendarWriteOnlyAccessUsageDescription]
|
||||
// dart: PermissionGroup.calendar
|
||||
#ifndef PERMISSION_EVENTS
|
||||
#define PERMISSION_EVENTS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupReminders
|
||||
// Info.plist: NSRemindersFullAccessUsageDescription
|
||||
// dart: PermissionGroup.reminders
|
||||
#ifndef PERMISSION_REMINDERS
|
||||
#define PERMISSION_REMINDERS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupContacts
|
||||
// Info.plist: NSContactsUsageDescription
|
||||
// dart: PermissionGroup.contacts
|
||||
#ifndef PERMISSION_CONTACTS
|
||||
#define PERMISSION_CONTACTS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupCamera
|
||||
// Info.plist: NSCameraUsageDescription
|
||||
// dart: PermissionGroup.camera
|
||||
#ifndef PERMISSION_CAMERA
|
||||
#define PERMISSION_CAMERA 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupMicrophone
|
||||
// Info.plist: NSMicrophoneUsageDescription
|
||||
// dart: PermissionGroup.microphone
|
||||
#ifndef PERMISSION_MICROPHONE
|
||||
#define PERMISSION_MICROPHONE 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupSpeech
|
||||
// Info.plist: NSSpeechRecognitionUsageDescription
|
||||
// dart: PermissionGroup.speech
|
||||
#ifndef PERMISSION_SPEECH_RECOGNIZER
|
||||
#define PERMISSION_SPEECH_RECOGNIZER 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupPhotos
|
||||
// Info.plist: NSPhotoLibraryUsageDescription
|
||||
// dart: PermissionGroup.photos
|
||||
#ifndef PERMISSION_PHOTOS
|
||||
#define PERMISSION_PHOTOS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupPhotosAddOnly
|
||||
// Info.plist: NSPhotoLibraryAddUsageDescription
|
||||
// dart: PermissionGroup.photosAddOnly
|
||||
#ifndef PERMISSION_PHOTOS_ADD_ONLY
|
||||
#define PERMISSION_PHOTOS_ADD_ONLY 0
|
||||
#endif
|
||||
|
||||
// ios: [PermissionGroupLocation, PermissionGroupLocationAlways, PermissionGroupLocationWhenInUse]
|
||||
// Info.plist: [NSLocationUsageDescription, NSLocationAlwaysAndWhenInUseUsageDescription, NSLocationWhenInUseUsageDescription]
|
||||
// dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
|
||||
#ifndef PERMISSION_LOCATION
|
||||
#define PERMISSION_LOCATION 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupNotification
|
||||
// dart: PermissionGroup.notification
|
||||
#ifndef PERMISSION_NOTIFICATIONS
|
||||
#define PERMISSION_NOTIFICATIONS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupMediaLibrary
|
||||
// Info.plist: [NSAppleMusicUsageDescription, kTCCServiceMediaLibrary]
|
||||
// dart: PermissionGroup.mediaLibrary
|
||||
#ifndef PERMISSION_MEDIA_LIBRARY
|
||||
#define PERMISSION_MEDIA_LIBRARY 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupSensors
|
||||
// Info.plist: NSMotionUsageDescription
|
||||
// dart: PermissionGroup.sensors
|
||||
#ifndef PERMISSION_SENSORS
|
||||
#define PERMISSION_SENSORS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupBluetooth
|
||||
// Info.plist: [NSBluetoothAlwaysUsageDescription, NSBluetoothPeripheralUsageDescription]
|
||||
// dart: PermissionGroup.bluetooth
|
||||
#ifndef PERMISSION_BLUETOOTH
|
||||
#define PERMISSION_BLUETOOTH 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupAppTrackingTransparency
|
||||
// Info.plist: [NSUserTrackingUsageDescription]
|
||||
// dart: PermissionGroup.appTrackingTransparency
|
||||
#ifndef PERMISSION_APP_TRACKING_TRANSPARENCY
|
||||
#define PERMISSION_APP_TRACKING_TRANSPARENCY 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupCriticalAlerts
|
||||
// Info.plist: UNAuthorizationOptionCriticalAlert
|
||||
// dart: PermissionGroup.criticalAlerts
|
||||
#ifndef PERMISSION_CRITICAL_ALERTS
|
||||
#define PERMISSION_CRITICAL_ALERTS 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupAssistant
|
||||
// Info.plist: [NSSiriUsageDescription]
|
||||
// dart: PermissionGroup.assistant
|
||||
#ifndef PERMISSION_ASSISTANT
|
||||
#define PERMISSION_ASSISTANT 0
|
||||
#endif
|
||||
|
||||
// ios: PermissionGroupCalendarFullAccess
|
||||
// Info.plist: [NSCalendarsFullAccessUsageDescription]
|
||||
// dart: PermissionGroup.calendarFullAccess
|
||||
#ifndef PERMISSION_EVENTS_FULL_ACCESS
|
||||
#define PERMISSION_EVENTS_FULL_ACCESS 0
|
||||
#endif
|
||||
|
||||
typedef NS_ENUM(int, PermissionGroup) {
|
||||
PermissionGroupCalendar = 0,
|
||||
PermissionGroupCamera,
|
||||
PermissionGroupContacts,
|
||||
PermissionGroupLocation,
|
||||
PermissionGroupLocationAlways,
|
||||
PermissionGroupLocationWhenInUse,
|
||||
PermissionGroupMediaLibrary,
|
||||
PermissionGroupMicrophone,
|
||||
PermissionGroupPhone,
|
||||
PermissionGroupPhotos,
|
||||
PermissionGroupPhotosAddOnly,
|
||||
PermissionGroupReminders,
|
||||
PermissionGroupSensors,
|
||||
PermissionGroupSms,
|
||||
PermissionGroupSpeech,
|
||||
PermissionGroupStorage,
|
||||
PermissionGroupIgnoreBatteryOptimizations,
|
||||
PermissionGroupNotification,
|
||||
PermissionGroupAccessMediaLocation,
|
||||
PermissionGroupActivityRecognition,
|
||||
PermissionGroupUnknown,
|
||||
PermissionGroupBluetooth,
|
||||
PermissionGroupManageExternalStorage,
|
||||
PermissionGroupSystemAlertWindow,
|
||||
PermissionGroupRequestInstallPackages,
|
||||
PermissionGroupAppTrackingTransparency,
|
||||
PermissionGroupCriticalAlerts,
|
||||
PermissionGroupAccessNotificationPolicy,
|
||||
PermissionGroupBluetoothScan,
|
||||
PermissionGroupBluetoothAdvertise,
|
||||
PermissionGroupBluetoothConnect,
|
||||
PermissionGroupNearbyWifiDevices,
|
||||
PermissiongroupVideos,
|
||||
PermissionGroupAudio,
|
||||
PermissionGroupScheduleExactAlarm,
|
||||
PermissionGroupSensorsAlways,
|
||||
PermissionGroupCalendarWriteOnly,
|
||||
PermissionGroupCalendarFullAccess,
|
||||
PermissionGroupAssistant,
|
||||
PermissionGroupBackgroundRefresh
|
||||
};
|
||||
|
||||
typedef NS_ENUM(int, PermissionStatus) {
|
||||
PermissionStatusDenied = 0,
|
||||
PermissionStatusGranted = 1,
|
||||
PermissionStatusRestricted = 2,
|
||||
PermissionStatusLimited = 3,
|
||||
PermissionStatusPermanentlyDenied = 4,
|
||||
PermissionStatusProvisional = 5,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(int, ServiceStatus) {
|
||||
ServiceStatusDisabled = 0,
|
||||
ServiceStatusEnabled,
|
||||
ServiceStatusNotApplicable,
|
||||
};
|
||||
@ -0,0 +1,6 @@
|
||||
#import <Flutter/Flutter.h>
|
||||
#import "PermissionManager.h"
|
||||
|
||||
@interface PermissionHandlerPlugin : NSObject<FlutterPlugin>
|
||||
- (instancetype)initWithPermissionManager:(PermissionManager *)permissionManager;
|
||||
@end
|
||||
@ -0,0 +1,44 @@
|
||||
//
|
||||
// PermissionManager.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Razvan Lung on 15/02/2019.
|
||||
//
|
||||
|
||||
#import <Flutter/Flutter.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "AudioVideoPermissionStrategy.h"
|
||||
#import "AppTrackingTransparencyPermissionStrategy.h"
|
||||
#import "BackgroundRefreshStrategy.h"
|
||||
#import "BluetoothPermissionStrategy.h"
|
||||
#import "ContactPermissionStrategy.h"
|
||||
#import "EventPermissionStrategy.h"
|
||||
#import "LocationPermissionStrategy.h"
|
||||
#import "MediaLibraryPermissionStrategy.h"
|
||||
#import "PermissionStrategy.h"
|
||||
#import "PhonePermissionStrategy.h"
|
||||
#import "PhotoPermissionStrategy.h"
|
||||
#import "SensorPermissionStrategy.h"
|
||||
#import "SpeechPermissionStrategy.h"
|
||||
#import "StoragePermissionStrategy.h"
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
#import "NotificationPermissionStrategy.h"
|
||||
#import "CriticalAlertsPermissionStrategy.h"
|
||||
#import "AssistantPermissionStrategy.h"
|
||||
#import "PermissionHandlerEnums.h"
|
||||
#import "Codec.h"
|
||||
|
||||
typedef void (^PermissionRequestCompletion)(NSDictionary *permissionRequestResults);
|
||||
|
||||
@interface PermissionManager : NSObject
|
||||
|
||||
- (instancetype)initWithStrategyInstances;
|
||||
- (void)requestPermissions:(NSArray *)permissions completion:(PermissionRequestCompletion)completion errorHandler:(PermissionErrorHandler)errorHandler;
|
||||
|
||||
+ (void)checkPermissionStatus:(enum PermissionGroup)permission result:(FlutterResult)result;
|
||||
+ (void)checkServiceStatus:(enum PermissionGroup)permission result:(FlutterResult)result;
|
||||
+ (void)openAppSettings:(FlutterResult)result;
|
||||
|
||||
@end
|
||||
@ -0,0 +1,19 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionHandlerEnums.h"
|
||||
|
||||
typedef void (^ServiceStatusHandler)(ServiceStatus serviceStatus);
|
||||
typedef void (^PermissionStatusHandler)(PermissionStatus permissionStatus);
|
||||
typedef void (^PermissionErrorHandler)(NSString* errorCode, NSString* errorDescription);
|
||||
|
||||
@protocol PermissionStrategy <NSObject>
|
||||
- (PermissionStatus)checkPermissionStatus:(PermissionGroup)permission;
|
||||
|
||||
- (void)checkServiceStatus:(PermissionGroup)permission completionHandler:(ServiceStatusHandler)completionHandler;
|
||||
|
||||
- (void)requestPermission:(PermissionGroup)permission completionHandler:(PermissionStatusHandler)completionHandler errorHandler:(PermissionErrorHandler)errorHandler;
|
||||
@end
|
||||
@ -0,0 +1,17 @@
|
||||
//
|
||||
// PhonePermissionStrategy.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Sebastian Roth on 5/20/19.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface PhonePermissionStrategy : NSObject<PermissionStrategy>
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@ -0,0 +1,23 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_PHOTOS
|
||||
|
||||
#import <Photos/Photos.h>
|
||||
|
||||
@interface PhotoPermissionStrategy : NSObject <PermissionStrategy>
|
||||
-(instancetype)initWithAccessAddOnly:(BOOL) addOnly;
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface PhotoPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,22 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_SENSORS
|
||||
|
||||
#import <CoreMotion/CoreMotion.h>
|
||||
|
||||
@interface SensorPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface SensorPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,22 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
#if PERMISSION_SPEECH_RECOGNIZER
|
||||
|
||||
#import <Speech/Speech.h>
|
||||
|
||||
@interface SpeechPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
|
||||
#else
|
||||
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
@interface SpeechPermissionStrategy : UnknownPermissionStrategy
|
||||
@end
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,17 @@
|
||||
//
|
||||
// StoragePermissionStrategy.h
|
||||
// permission_handler
|
||||
//
|
||||
// Created by Frank Gregor on 06.11.19.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface StoragePermissionStrategy : NSObject <PermissionStrategy>
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@ -0,0 +1,11 @@
|
||||
//
|
||||
// Created by Razvan Lung(long1eu) on 2019-02-15.
|
||||
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "PermissionStrategy.h"
|
||||
|
||||
|
||||
@interface UnknownPermissionStrategy : NSObject <PermissionStrategy>
|
||||
@end
|
||||
@ -0,0 +1,38 @@
|
||||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#import "PermissionHandlerEnums.h"
|
||||
#import "PermissionHandlerPlugin.h"
|
||||
#import "PermissionManager.h"
|
||||
#import "AppTrackingTransparencyPermissionStrategy.h"
|
||||
#import "AssistantPermissionStrategy.h"
|
||||
#import "AudioVideoPermissionStrategy.h"
|
||||
#import "BackgroundRefreshStrategy.h"
|
||||
#import "BluetoothPermissionStrategy.h"
|
||||
#import "ContactPermissionStrategy.h"
|
||||
#import "CriticalAlertsPermissionStrategy.h"
|
||||
#import "EventPermissionStrategy.h"
|
||||
#import "LocationPermissionStrategy.h"
|
||||
#import "MediaLibraryPermissionStrategy.h"
|
||||
#import "NotificationPermissionStrategy.h"
|
||||
#import "PermissionStrategy.h"
|
||||
#import "PhonePermissionStrategy.h"
|
||||
#import "PhotoPermissionStrategy.h"
|
||||
#import "SensorPermissionStrategy.h"
|
||||
#import "SpeechPermissionStrategy.h"
|
||||
#import "StoragePermissionStrategy.h"
|
||||
#import "UnknownPermissionStrategy.h"
|
||||
#import "Codec.h"
|
||||
|
||||
FOUNDATION_EXPORT double permission_handler_appleVersionNumber;
|
||||
FOUNDATION_EXPORT const unsigned char permission_handler_appleVersionString[];
|
||||
|
||||
Binary file not shown.
@ -0,0 +1,6 @@
|
||||
framework module permission_handler_apple {
|
||||
umbrella header "permission_handler_apple-umbrella.h"
|
||||
|
||||
export *
|
||||
module * { export * }
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,462 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>files</key>
|
||||
<dict>
|
||||
<key>Headers/AppTrackingTransparencyPermissionStrategy.h</key>
|
||||
<data>
|
||||
hSkl0b3zmpyg1kIaXinvAUWwTdE=
|
||||
</data>
|
||||
<key>Headers/AssistantPermissionStrategy.h</key>
|
||||
<data>
|
||||
rfyiTSc3DWmT/IqegGQgKuWnDmk=
|
||||
</data>
|
||||
<key>Headers/AudioVideoPermissionStrategy.h</key>
|
||||
<data>
|
||||
k1XMk5D67/BlFMHryiDNCV87Nz4=
|
||||
</data>
|
||||
<key>Headers/BackgroundRefreshStrategy.h</key>
|
||||
<data>
|
||||
Zr7z2f6i1590PAAxns69n8gXkOM=
|
||||
</data>
|
||||
<key>Headers/BluetoothPermissionStrategy.h</key>
|
||||
<data>
|
||||
17/pBDn9OoNrkQGTFIML+sWrfDg=
|
||||
</data>
|
||||
<key>Headers/Codec.h</key>
|
||||
<data>
|
||||
TpOitwsmfbhnBzKjbvmBrG9OSwc=
|
||||
</data>
|
||||
<key>Headers/ContactPermissionStrategy.h</key>
|
||||
<data>
|
||||
BQkOYAHIcocgpEjvXKmMgIxf5qA=
|
||||
</data>
|
||||
<key>Headers/CriticalAlertsPermissionStrategy.h</key>
|
||||
<data>
|
||||
TDATrFm293Gs/WJ+i9elQ5Ty0Ms=
|
||||
</data>
|
||||
<key>Headers/EventPermissionStrategy.h</key>
|
||||
<data>
|
||||
8TQLrJJiXENXA0pzyX0MAehoib0=
|
||||
</data>
|
||||
<key>Headers/LocationPermissionStrategy.h</key>
|
||||
<data>
|
||||
4HZBgjY+jnz+Kef7iwJteHsOWA8=
|
||||
</data>
|
||||
<key>Headers/MediaLibraryPermissionStrategy.h</key>
|
||||
<data>
|
||||
nE9rvzK+2d+hcHKuCR+XtS8mDwM=
|
||||
</data>
|
||||
<key>Headers/NotificationPermissionStrategy.h</key>
|
||||
<data>
|
||||
W/t0YnZeptSrUKh9CfnGqgLXJxs=
|
||||
</data>
|
||||
<key>Headers/PermissionHandlerEnums.h</key>
|
||||
<data>
|
||||
Zk+h1C8RKll80Wp3k5TEdY45wjk=
|
||||
</data>
|
||||
<key>Headers/PermissionHandlerPlugin.h</key>
|
||||
<data>
|
||||
US8gfGrgvyHBMXjEc33uZU/u1/E=
|
||||
</data>
|
||||
<key>Headers/PermissionManager.h</key>
|
||||
<data>
|
||||
G4OvECvMo3LuS67YcSCDxvDGi4s=
|
||||
</data>
|
||||
<key>Headers/PermissionStrategy.h</key>
|
||||
<data>
|
||||
WIUX3JCm9FUEJMoS1xdJTAxa/ik=
|
||||
</data>
|
||||
<key>Headers/PhonePermissionStrategy.h</key>
|
||||
<data>
|
||||
LsoP+Y2q9MdLenVRQzHFKrXwRIc=
|
||||
</data>
|
||||
<key>Headers/PhotoPermissionStrategy.h</key>
|
||||
<data>
|
||||
QLgVRQwqcCVRmpfQThnv+4EIrEk=
|
||||
</data>
|
||||
<key>Headers/SensorPermissionStrategy.h</key>
|
||||
<data>
|
||||
xP0948JSWc+YtL8URX8qK54p2ic=
|
||||
</data>
|
||||
<key>Headers/SpeechPermissionStrategy.h</key>
|
||||
<data>
|
||||
IbFEyirnw1ktEDkKos/H7ZfFj4w=
|
||||
</data>
|
||||
<key>Headers/StoragePermissionStrategy.h</key>
|
||||
<data>
|
||||
puOgC58jkur+6VE/ynqT93gbVaE=
|
||||
</data>
|
||||
<key>Headers/UnknownPermissionStrategy.h</key>
|
||||
<data>
|
||||
t4BFc70Lz8ZDv/Q0Ql6IwCvrXuU=
|
||||
</data>
|
||||
<key>Headers/permission_handler_apple-umbrella.h</key>
|
||||
<data>
|
||||
ZBe03XoX9g8bhj5mSSZkPM+iHoo=
|
||||
</data>
|
||||
<key>Info.plist</key>
|
||||
<data>
|
||||
TqS8FewqORVlfYR6Z9KdACoUV7M=
|
||||
</data>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<data>
|
||||
gm1KE03qnJ+bIZ5fWa5NiCyl/HM=
|
||||
</data>
|
||||
</dict>
|
||||
<key>files2</key>
|
||||
<dict>
|
||||
<key>Headers/AppTrackingTransparencyPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
hSkl0b3zmpyg1kIaXinvAUWwTdE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
FDiqFCrpcVe8BwNe0IVGdgkfxR/Fr4jW0igw7Rzw4w0=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/AssistantPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
rfyiTSc3DWmT/IqegGQgKuWnDmk=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
YB605BVhTrNspfKznnWzz8+AY1xPwdziRLiqrds6sY0=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/AudioVideoPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
k1XMk5D67/BlFMHryiDNCV87Nz4=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
FEF02mBdpnc7Dr7Qs0FsK1DsPcBh/Dd2BbCAuTsZzjY=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/BackgroundRefreshStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Zr7z2f6i1590PAAxns69n8gXkOM=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
E7ZqYfvF3pn8TJ9X/cK1zMaZiWAcwQdOYruCpnV2g9k=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/BluetoothPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
17/pBDn9OoNrkQGTFIML+sWrfDg=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
vZRPgDvRS2XdqV1Zbf4rg6pocg8trXvNM9aNFbgJQk4=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/Codec.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
TpOitwsmfbhnBzKjbvmBrG9OSwc=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
uU++6c8HCdYA/Uge3GPwQzy7/fOkqvVCHoV/bxZMaZQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/ContactPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
BQkOYAHIcocgpEjvXKmMgIxf5qA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
q+zjx5YvN9zFvK+g0Lym6ir27CztjxMGWAetTJVr4v4=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/CriticalAlertsPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
TDATrFm293Gs/WJ+i9elQ5Ty0Ms=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
r3Ig/lRHFtHu30oEVwyVQjKHtAvQ7+042tUR46Epnco=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/EventPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
8TQLrJJiXENXA0pzyX0MAehoib0=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
RiIa+gGIv0FHQMMH403dbP13+CFGZakzWcX4vURlN14=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/LocationPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
4HZBgjY+jnz+Kef7iwJteHsOWA8=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
myNRYAK+ykYvBjMj53oJ1wIJRR4xOUP7TFQEwJZmHPc=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/MediaLibraryPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
nE9rvzK+2d+hcHKuCR+XtS8mDwM=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
WEBI3xU4uotIH5yLR8R+G/H5kno05nmKltW/p9CykxU=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/NotificationPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
W/t0YnZeptSrUKh9CfnGqgLXJxs=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
U/EqmXTD1SRvYAPQToIM9d8MhjWqTHhNtBcOoG5Luho=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/PermissionHandlerEnums.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Zk+h1C8RKll80Wp3k5TEdY45wjk=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
Vqt68tV7QoCIjCQ1ZnsclVd0Ia2kuMlpN0onYS+9vWg=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/PermissionHandlerPlugin.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
US8gfGrgvyHBMXjEc33uZU/u1/E=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
qw8RV61OI4XxMpRQh1QTQQEiObRyJ3gNqeXAgxxMD6c=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/PermissionManager.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
G4OvECvMo3LuS67YcSCDxvDGi4s=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
YJg3Mo/e8dtO2wQh1bVRI8kGaM3vhOVfY1KrAzJOmdA=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/PermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
WIUX3JCm9FUEJMoS1xdJTAxa/ik=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
QZiNFqZAQ8mgm5sA8WnvJpAJ+xmTd6DhdG+T34t2oXg=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/PhonePermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
LsoP+Y2q9MdLenVRQzHFKrXwRIc=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
Q2ytTOkdveMpynMYLHluRQwxxk/r6JeZPv4N37W9d9Q=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/PhotoPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
QLgVRQwqcCVRmpfQThnv+4EIrEk=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
jFUnkRzuhzc1haZtH4trCcPv7pnKgxDOqXC3KR4KrjY=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/SensorPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
xP0948JSWc+YtL8URX8qK54p2ic=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
555sFrHZE5aISnOxs0b/y/8EaAoqsKWKp/RtoTp/0eE=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/SpeechPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
IbFEyirnw1ktEDkKos/H7ZfFj4w=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
khedPP1JtYLi8TrS4+lKbO7zFtP1ftsYa/qNxqTHvH8=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/StoragePermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
puOgC58jkur+6VE/ynqT93gbVaE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
fzXdSapwI87Np9ohvHtabrUpIpovIL/wPHlazHwcOkU=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/UnknownPermissionStrategy.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
t4BFc70Lz8ZDv/Q0Ql6IwCvrXuU=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
s6QogQgVeKU/60rT8J+wtY57wuQA4oos8VGOe1XCvAM=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/permission_handler_apple-umbrella.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
ZBe03XoX9g8bhj5mSSZkPM+iHoo=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
A/h7t4BddfD+RIO3I6s6K0V/45lASGvPWeRVxYXGEF0=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
gm1KE03qnJ+bIZ5fWa5NiCyl/HM=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
1keaghtAIv++ss5DHOr0GaYc37vcGEovRt35Be9B8Zc=
|
||||
</data>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>rules</key>
|
||||
<dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^version.plist$</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>rules2</key>
|
||||
<dict>
|
||||
<key>.*\.dSYM($|/)</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>11</real>
|
||||
</dict>
|
||||
<key>^(.*/)?\.DS_Store$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>2000</real>
|
||||
</dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^Info\.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^PkgInfo$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^embedded\.provisionprofile$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^version\.plist$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Reference in New Issue
Block a user