0.11.0
Strict mode
This release focuses on fixing strict mode issues (including Android 8 ones).
Since strict mode checks if you spend time reading storage on U.I. thread we had to make the following APIs asynchronous and is thus a breaking change:
{AnyClass}.isEnabled()
MobileCenter.getInstallId()
Crashes.hasCrashedInLastSession()
Those APIs returns a MobileCenterFuture
object that is used to monitor the result, you can either use get()
or thenAccept(MobileCenterConsumer)
to either block or get the result via callback.
For symmetry purpose, {AnyClass}.setEnabled(boolean)
also return a MobileCenterFuture
object but most users don't need to monitor the result of the operation (consistency of calls sequence is guaranteed even if you don't wait for the change to be persisted).
Also Crashes.getLastSessionCrashReport
was already asynchronous but signature changed to use the new MobileCenterFuture
object.
MobileCenterFuture
is similar to Java 8 CompletableFuture
but works on Java 7 on any API level and has limited number of methods and does not throw exceptions (and executes the thenAccept
callback in the U.I. thread).
Other changes
- Fix a bug on Android 8 where network state could be detected as disconnected while network is available.
- Fix showing unknown sources warning dialog on Distribute on Android 8.
- Update Firebase SDK dependencies in Push to 11.0.2 to avoid conflict with Firebase recent getting started instructions.
- Update internal crash code to make it more compatible with Xamarin.Android and possibly future wrapper SDKs.