urbanairship / ios-library

Urban Airship iOS SDK
http://urbanairship.com
Apache License 2.0
478 stars 265 forks source link

Remove AirshipPush.authorizedNotificationSettings MainActor isolation #409

Closed tripphillips closed 1 month ago

tripphillips commented 1 month ago

What do these changes do?

Removes unnecessary MainActor isolation of the AirshipPush.authorizedNotificationSettings property. Based on the implementation of AirshipPush.authorizedNotificationSettings there is nothing that should force the property to be MainActor isolated since it only reads and writes to the AirshipPush PreferenceDataStore that uses its own NSRecursiveLock for synchronization. There are AirshipPush properties like authorizationStatus and userPromptedForNotifications that read and write to the AirshipPush PreferenceDataStore without requiring MainActor isolation. These changes will not affect any users who are currently using AirshipPush.authorizedNotificationSettings in a MainActor isolated context.

Why are these changes necessary?

We should prefer to only use MainActor isolation unless it is absolutely necessary.

How did you verify these changes?

The SDK builds and all test cases pass.

rlepinski commented 1 month ago

thanks for the PR!