[SDK] [Android] Release v1.2.5.0

GitHub release
Integration guide

Changelog:

  • Setup Android O Notification Channels for each WonderPushChannel and WonderPushChannelGroup modification supplied to WonderPushUserPreferences.
  • Properly handle Android O background limits by fetching notification resources (images and sound) using a scheduled job.
  • Builds against Android SDK 26 (Android O)
    Note: It is not required to update targetSdkVersion to 26 as well.
  • minSdkVersion is raised to 14. See d895ea6a12c648ff96f83e214920a23bedd5a7e4
  • Updating com.google.android.gms:play-services-gcm to 11.0.4. See d895ea6a12c648ff96f83e214920a23bedd5a7e4
  • The SDK no longer uselessly sets targetSdkVersion as it would be inherited by your applications.
  • Fix notification color on notifications received in foreground

Upgrading:

Starting with this version, as Android O Notification Channels are created and updated, the WonderPush SDK requires you to use at least compileSdkVersion 26 and support libraries must use version 26.0.2 minimum.
This in turn requires you to use at least minSdkVersion 14.

Here is an extract of the changes needed in your app/build.gradle:

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.1'
    defaultConfig {
        minSdkVersion 14
    }
}

Note that this does not force you target Android O, you can keep a lower targetSdkVersion if you need to.

Minimum SDK version 14

In order to be able to register Notification Channels in Android O, the WonderPush SDK has to compile against the Android SDK version 26.
This requires using Support libraries version 26, which, along with updating com.google.android.gms:play-service-gcm above version 10.2 for the latest push notification-related fixes, bumps the minSdkVersion to 14, as far as WonderPush is concerned (your application may already target a higher minimum version).

Compared to the previously imposed minSdkVersion 9, jumping to minSdkVersion 14 only affects 0.7% of all Android users. Note that Android SDK 14 (aka Android 4.0, Ice Cream Sandwich) was released on October 2011, more than 6 years ago. In addition, in their blog post, Google says that ``We believe that many of these old devices are not actively being used.''

You can avoid to left those users behind if this is a strong requirement for your application, by building multiple APKs using build variants as shown in the blog post. Doing so you can either drop support for push notifications or use the version 1.2.3.3 of the WonderPush SDK.

Read more:

Mixed versions of support libraries

You probably use one of the Android Support Libraries (starting with com.android.support:) in your project, you will need to ensure that you use version 26.0.2 at minimum.
After updating the WonderPush SDK version, make sure that your project uses the same version of these libraries all over the place.
See Mixed versions of support libraries for more information.

Conflicting versions of Google Play Services

Likewise, if you declare a dependency on one of the com.google.android.gms:play-services libraries, you will need to ensure that you use version 11.0.4 at minimum.
After updating the WonderPush SDK version, make sure that your project uses the same version of these libraries all over the place.
See Conflicting versions of Google Play Services for more information.