You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Update migration-guide-17-18.md
* added conflict events, stubbed out more of automation section
* Flesh out automation section
* Tweak custom display adapter resolutions to use data object
* Add @RestrictTo on companions of classes with @RestrictTo
A new value, `PrivacyManager.Feature.FEATURE_FLAGS`, has also been added to control the enabled state of Airship Feature Flags.
131
+
132
+
## Contact
133
+
134
+
### Conflict Events
135
+
136
+
The signature of `ConflictEvent.associatedChannels` was changed from `List<AssociatedChannel>` to `List<ConflictEvent.ChannelInfo>` and the `AssociatedChannel` class has been removed.
137
+
Apps that have implemented a custom `ContactConflictListener` may need to make minor adjustments to update to the new type. The `ChannelInfo` class provides the same fields as the removed `AssociatedChannel` class.
138
+
139
+
## Image Loading
140
+
141
+
The ability to provide a custom image loader via `UAirship.setImageLoader(...)` has been removed. The SDK now uses Glide internally to handle image loading.
142
+
Additionally, the `ImageLoader` and `ImageRequestOptions` classes has been removed. Apps that were using these class should migrate to using another image loading library, like Coil or Glide, directly.
143
+
144
+
## Automation
145
+
146
+
The `urbanairship-automation` module has been rewritten in Kotlin and now uses Kotlin coroutines. For most apps, this will be a trivial update, but if your app uses custom display adapters,
147
+
this update maybe more extensive. See below for more info about custom display adapter migration.
148
+
149
+
### Accessors
150
+
151
+
The accessors for InAppMessaging and LegacyInAppMessaging have moved.
The `PrepareAssetsDelegate`, `CachePolicyDelegate`, and `AssetManager` classes have been removed and are no longer available to extend. These APIs were difficult to use and often times lead to unintended consequences. The Airship SDK will now manage its own assets. External assets required by the App that need to be fetched before hand should happen outside of Airship. If assets are needed and can be fetched at display time, use the `isReady` Flow in a custom implementation of `CustomDisplayAdapter.SuspendingAdapter` to indicate when the adapter has finished fetching assets and is ready to display by emitting a `true` value.
161
+
162
+
### Display Coordinators
163
+
164
+
Display coordinators was another difficult to use API that has been removed. Instead, use the `InAppMessageDisplayDelegate.isMessageReadyToDisplay(message, scheduleId)` method to prevent messages from displaying, and `InAppAutomation.shared().inAppMessaging.notifyDisplayConditionsChanged()` to notify when the message should be tried again. If a use case is not able to be solved with the replacement methods, please file a GitHub issue with your use case.
165
+
166
+
### Extending Messages
167
+
168
+
InAppMessages are no longer extendable when displaying. If this is needed in your application, please file a GitHub issue with your use case.
169
+
170
+
### Custom Display Adapters
171
+
172
+
The `InAppMessageAdapter` interface has been replaced with a sealed interface, `CustomDisplayAdapter`, that contains `SuspendingAdapter` and `CallbackAdapter` subtypes. The new interface provides roughly the same functionality as before just with a different structure.
0 commit comments