Commit 6a3bc62a by Razvan Cristian Lung

fix ios open settings

parent 4c4de275
...@@ -59,58 +59,43 @@ ...@@ -59,58 +59,43 @@
} }
+ (void)openAppSettings:(FlutterResult)result { + (void)openAppSettings:(FlutterResult)result {
if (@available(iOS 8.0, *)) { if (@available(iOS 10, *)) {
NSURL *url = [[NSURL alloc] initWithString:UIApplicationOpenSettingsURLString]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]
if (url == nil) { options:[[NSDictionary alloc] init]
result(@false); completionHandler:^(BOOL success) {
return; result([[NSNumber alloc] initWithBool:success]);
} }];
} else if (@available(iOS 8.0, *)) {
if (@available(iOS 10, *)) { BOOL success = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
if (![UIApplication.sharedApplication canOpenURL:url]) { result([[NSNumber alloc] initWithBool:success]);
result(@false); } else {
return; result(@false);
}
NSDictionary *optionsKeyDictionary = @{UIApplicationOpenURLOptionUniversalLinksOnly: @true};
[[UIApplication sharedApplication]
openURL:url options:optionsKeyDictionary completionHandler:^(BOOL success) {
result([[NSNumber alloc] initWithBool:success]);
}];
return;
} else {
BOOL success = [[UIApplication sharedApplication] openURL:url];
result([[NSNumber alloc] initWithBool:success]);
}
} }
result(@false);
} }
+ (id)createPermissionStrategy:(PermissionGroup)permission { + (id)createPermissionStrategy:(PermissionGroup)permission {
switch (permission) { switch (permission) {
case PermissionGroupCalendar: case PermissionGroupCalendar:
return [EventPermissionStrategy new]; return [EventPermissionStrategy new];
case PermissionGroupCamera: case PermissionGroupCamera:
return [AudioVideoPermissionStrategy new]; return [AudioVideoPermissionStrategy new];
case PermissionGroupContacts: case PermissionGroupContacts:
return [ContactPermissionStrategy new]; return [ContactPermissionStrategy new];
case PermissionGroupLocation: case PermissionGroupLocation:
case PermissionGroupLocationAlways: case PermissionGroupLocationAlways:
case PermissionGroupLocationWhenInUse: case PermissionGroupLocationWhenInUse:
return [[LocationPermissionStrategy alloc] initWithLocationManager]; return [[LocationPermissionStrategy alloc] initWithLocationManager];
case PermissionGroupMediaLibrary: case PermissionGroupMediaLibrary:
return [MediaLibraryPermissionStrategy new]; return [MediaLibraryPermissionStrategy new];
case PermissionGroupMicrophone: case PermissionGroupMicrophone:
return [AudioVideoPermissionStrategy new]; return [AudioVideoPermissionStrategy new];
case PermissionGroupPhotos: case PermissionGroupPhotos:
return [PhotoPermissionStrategy new]; return [PhotoPermissionStrategy new];
case PermissionGroupReminders: case PermissionGroupReminders:
return [EventPermissionStrategy new]; return [EventPermissionStrategy new];
case PermissionGroupSensors: case PermissionGroupSensors:
return [SensorPermissionStrategy new]; return [SensorPermissionStrategy new];
case PermissionGroupSpeech: case PermissionGroupSpeech:
return [SpeechPermissionStrategy new]; return [SpeechPermissionStrategy new];
default: default:
return [UnknownPermissionStrategy new]; return [UnknownPermissionStrategy new];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment