Skip to content

Commit

Permalink
[flutter_local_notifications] removed redundant null aware operators (#…
Browse files Browse the repository at this point in the history
…2188)

* removed redundant null aware warnings

* Clang Format

---------

Co-authored-by: runner <runner@Mac-1703673798048.local>
  • Loading branch information
MaikuB and runner committed Dec 27, 2023
1 parent 9cd9a50 commit a75c9c8
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 66 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -558,70 +558,78 @@ - (void)requestPermissionsImpl:(bool)soundPermission
- (void)checkPermissions:(NSDictionary *_Nonnull)arguments

result:(FlutterResult _Nonnull)result {
if (@available(iOS 10.0, *)) {
UNUserNotificationCenter *center =
if (@available(iOS 10.0, *)) {
UNUserNotificationCenter *center =
[UNUserNotificationCenter currentNotificationCenter];

[center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
BOOL isEnabled = settings.authorizationStatus == UNAuthorizationStatusAuthorized;
BOOL isSoundEnabled = settings.soundSetting == UNNotificationSettingEnabled;
BOOL isAlertEnabled = settings.alertSetting == UNNotificationSettingEnabled;
BOOL isBadgeEnabled = settings.badgeSetting == UNNotificationSettingEnabled;
BOOL isProvisionalEnabled = false;
BOOL isCriticalEnabled = false;

if(@available(iOS 12.0, *)) {
isProvisionalEnabled = settings.authorizationStatus == UNAuthorizationStatusProvisional;
isCriticalEnabled = settings.criticalAlertSetting == UNNotificationSettingEnabled;
}

NSDictionary *dict = @{
IS_NOTIFICATIONS_ENABLED: @(isEnabled),
IS_SOUND_ENABLED: @(isSoundEnabled),
IS_ALERT_ENABLED: @(isAlertEnabled),
IS_BADGE_ENABLED: @(isBadgeEnabled),
IS_PROVISIONAL_ENABLED: @(isProvisionalEnabled),
IS_CRITICAL_ENABLED: @(isCriticalEnabled),
};

result(dict);
}];
} else {

[center getNotificationSettingsWithCompletionHandler:^(
UNNotificationSettings *_Nonnull settings) {
BOOL isEnabled =
settings.authorizationStatus == UNAuthorizationStatusAuthorized;
BOOL isSoundEnabled =
settings.soundSetting == UNNotificationSettingEnabled;
BOOL isAlertEnabled =
settings.alertSetting == UNNotificationSettingEnabled;
BOOL isBadgeEnabled =
settings.badgeSetting == UNNotificationSettingEnabled;
BOOL isProvisionalEnabled = false;
BOOL isCriticalEnabled = false;

if (@available(iOS 12.0, *)) {
isProvisionalEnabled =
settings.authorizationStatus == UNAuthorizationStatusProvisional;
isCriticalEnabled =
settings.criticalAlertSetting == UNNotificationSettingEnabled;
}

NSDictionary *dict = @{
IS_NOTIFICATIONS_ENABLED : @(isEnabled),
IS_SOUND_ENABLED : @(isSoundEnabled),
IS_ALERT_ENABLED : @(isAlertEnabled),
IS_BADGE_ENABLED : @(isBadgeEnabled),
IS_PROVISIONAL_ENABLED : @(isProvisionalEnabled),
IS_CRITICAL_ENABLED : @(isCriticalEnabled),
};

result(dict);
}];
} else {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
UIUserNotificationSettings *settings = UIApplication.sharedApplication.currentUserNotificationSettings;

if(settings == nil) {
result(@{
IS_NOTIFICATIONS_ENABLED: @NO,
IS_SOUND_ENABLED: @NO,
IS_ALERT_ENABLED: @NO,
IS_BADGE_ENABLED: @NO,
IS_PROVISIONAL_ENABLED: @NO,
IS_CRITICAL_ENABLED: @NO,
});
return;
}

UIUserNotificationType types = settings.types;

BOOL isEnabled = types != UIUserNotificationTypeNone;
BOOL isSoundEnabled = types & UIUserNotificationTypeSound;
BOOL isAlertEnabled = types & UIUserNotificationTypeAlert;
BOOL isBadgeEnabled = types & UIUserNotificationTypeBadge;

NSDictionary *dict = @{
IS_NOTIFICATIONS_ENABLED: @(isEnabled),
IS_SOUND_ENABLED: @(isSoundEnabled),
IS_ALERT_ENABLED: @(isAlertEnabled),
IS_BADGE_ENABLED: @(isBadgeEnabled),
IS_PROVISIONAL_ENABLED: @NO,
IS_CRITICAL_ENABLED: @NO,
};

result(dict);
#pragma clang diagnostic pop
UIUserNotificationSettings *settings =
UIApplication.sharedApplication.currentUserNotificationSettings;

if (settings == nil) {
result(@{
IS_NOTIFICATIONS_ENABLED : @NO,
IS_SOUND_ENABLED : @NO,
IS_ALERT_ENABLED : @NO,
IS_BADGE_ENABLED : @NO,
IS_PROVISIONAL_ENABLED : @NO,
IS_CRITICAL_ENABLED : @NO,
});
return;
}

UIUserNotificationType types = settings.types;

BOOL isEnabled = types != UIUserNotificationTypeNone;
BOOL isSoundEnabled = types & UIUserNotificationTypeSound;
BOOL isAlertEnabled = types & UIUserNotificationTypeAlert;
BOOL isBadgeEnabled = types & UIUserNotificationTypeBadge;

NSDictionary *dict = @{
IS_NOTIFICATIONS_ENABLED : @(isEnabled),
IS_SOUND_ENABLED : @(isSoundEnabled),
IS_ALERT_ENABLED : @(isAlertEnabled),
IS_BADGE_ENABLED : @(isBadgeEnabled),
IS_PROVISIONAL_ENABLED : @NO,
IS_CRITICAL_ENABLED : @NO,
};

result(dict);
#pragma clang diagnostic pop
}
}

#pragma clang diagnostic push
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ void main() {
setUp(() {
debugDefaultTargetPlatformOverride = TargetPlatform.iOS;
flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
TestDefaultBinaryMessengerBinding.instance?.defaultBinaryMessenger
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
.setMockMethodCallHandler(channel, (MethodCall methodCall) async {
log.add(methodCall);
if (methodCall.method == 'pendingNotificationRequests') {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ void main() {
setUp(() {
debugDefaultTargetPlatformOverride = TargetPlatform.macOS;
flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
TestDefaultBinaryMessengerBinding.instance?.defaultBinaryMessenger
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
.setMockMethodCallHandler(channel, (MethodCall methodCall) async {
log.add(methodCall);
if (methodCall.method == 'pendingNotificationRequests') {
Expand Down Expand Up @@ -526,11 +526,9 @@ void main() {
test('checkPermissions', () async {
await flutterLocalNotificationsPlugin
.resolvePlatformSpecificImplementation<
MacOSFlutterLocalNotificationsPlugin>()!
MacOSFlutterLocalNotificationsPlugin>()!
.checkPermissions();
expect(log, <Matcher>[
isMethodCall('checkPermissions', arguments: null)
]);
expect(log, <Matcher>[isMethodCall('checkPermissions', arguments: null)]);
});

test('cancel', () async {
Expand Down

0 comments on commit a75c9c8

Please sign in to comment.