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 AirshipPushPreferenceDataStore that uses its own NSRecursiveLock for synchronization. There are AirshipPush properties like authorizationStatus and userPromptedForNotifications that read and write to the AirshipPushPreferenceDataStore 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.
What do these changes do?
Removes unnecessary MainActor isolation of the
AirshipPush.authorizedNotificationSettings
property. Based on the implementation ofAirshipPush.authorizedNotificationSettings
there is nothing that should force the property to be MainActor isolated since it only reads and writes to theAirshipPush
PreferenceDataStore
that uses its ownNSRecursiveLock
for synchronization. There areAirshipPush
properties likeauthorizationStatus
anduserPromptedForNotifications
that read and write to theAirshipPush
PreferenceDataStore
without requiring MainActor isolation. These changes will not affect any users who are currently usingAirshipPush.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.