Skip to content

0.11.0

Compare
Choose a tag to compare
@xabldint xabldint released this 11 Jul 19:42
· 5321 commits to master since this release

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.