Updating to 11.x.xx

This is a guide for updating to 11.x.xx from 10.x.xx

Behavioural Changes

  • Target SDK version bumped to API level 29
  • Starting SDK version 11.0.00 Geofence is not included when moe-android-sdk is added in the application. Refer to the GeoFence Push documentation to integrate and use the Geofence module.
  • SDK has been re-packaged to have clear separation for internal files and exposed classes. Any class with the package name com.moengage.*.internal.* should not be used. APIs in these classes can be updated/removed without prior notice and should not be used by integrating applications.
  • InApp is no longer shown via Activity lifecycle callbacks. To show in-app showInApp() should be called in the Activity or Fragment. Refer to the In-App NATIV documentation for more details.
  • Source and Target Compatibility Updated to Java 8. Enable Java 8 in your application if not done already.
  • In this release, we have updated the hosts used by the SDK. In case you have whitelisted MoEngage endpoints in the network configuration of your application update the endpoints. Refer to the Network Security Configuration to know more.
  • SDK no longer tracks location by default.

Update Removed APIs

In version 11.0.00, we have removed many of the APIs which were long deprecated. If you are still using the deprecated APIs you have to update to the new APIs. Below is a table mapping the equivalents of the removed APIs. Some of the APIs might not have an alternate API as the functionality might have been handled internally or no longer supported.

ThenNow
PushHandler#handlePushPayload(Context, Bundle)MoEFireBaseHelper#passPushPayload(Context, Bundle)
PushHandler#handlePushPayload(Context, Map)MoEFireBaseHelper#passPushPayload(Context, Map)
MoEFireBaseHelper#setOnNonMoEngagePushReceivedListener(OnNonMoEngagePushReceivedListener)MoEFireBaseHelper#addEventListener(FirebaseEventListener)
PushManager#refreshToken(Context, String)MoEFireBaseHelper#passPushToken(Context, String)
PushManager#setMessageListener(Object)MoEPushHelper#setMessageListener(PushMessageListener)
MoEngageNotificationUtils#isFromMoEngagePlatform(Context, Bundle)MoEPushHelper#isFromMoEngagePlatform(Bundle)
MoEngageNotificationUtils#isFromMoEngagePlatform(Context, Map)MoEPushHelper#isFromMoEngagePlatform(Map)
PushMessageListener#onCreateNotification(Context, Bundle, ConfigurationProvider)PushMessageListener#onCreateNotification(Context, NotificationPayload)
PushManager#getPushHandler()NA
MoEPushHelper#handlePushPayload(Context, Map)Use passPushPayload() of each push module.
MoEPushHelper#handlePushPayload(Context, Bundle)Use passPushPayload() of each push module.
MoEngage.Builder#optOutBackgroundSync()MoEngage.Builder#configureDataSync(DataSyncConfig)
MoEngage.Builder.optOutPeriodicFlush()MoEngage.Builder#configureDataSync(DataSyncConfig)
MoEngage.Builder.setFlushInterval(long interval)MoEngage.Builder#configureDataSync(DataSyncConfig)
MoEngage.Builder.optOutLocationTracking()NA
MoEngage.Builder.optOutGeofenceBackgroundSync()MoEngage.Builder#configureGeofence(GeofenceConfig)
MoEngage.Builder.enableBackgroundLocationFetch()NA
MoEngage.Builder.enableLocationServices()MoEngage.Builder#configureGeofence(GeofenceConfig)
MoEngage.Builder.optOutRealTimeTriggerBackgroundSync()MoEngage.Builder#configureRealTimeTrigger(RttConfig)
MoEngage.Builder.redirectDataToRegion(DATA_REGION)MoEngage.Builder#setDataCenter(DataCenter)
MoEngage.Builder#optOutDefaultInAppDisplay()NA
MoEngage.Builder#optOutActivityTracking(List)MoEngage.Builder#configureTrackingOptOut(TrackingOptOutConfig)
MoEngage.Builder#optOutGAIDCollection()MoEngage.Builder#configureTrackingOptOut(TrackingOptOutConfig)
MoEngage.Builder#optOutAndroidIdCollection()MoEngage.Builder#configureTrackingOptOut(TrackingOptOutConfig)
MoEngage.Builder#optOutCarrierNameCollection()MoEngage.Builder#configureTrackingOptOut(TrackingOptOutConfig)
MoEngage.Builder#optOutDeviceAttributeCollection()MoEngage.Builder#configureTrackingOptOut(TrackingOptOutConfig)
MoEngage.Builder.setNotificationType()MoEngage.Builder#configureNotificationMetaData(NotificationConfig)
MoEngage.Builder#setDateFormatForCard(String)MoEngage.Builder#configureCards(CardConfig)
MoEngage.Builder#setEmptyInboxImageForCard(intMoEngage.Builder#configureCards(CardConfig)
MoEngage.Builder#setPlaceHolderImageForCard(int)MoEngage.Builder#configureCards(CardConfig)
MoEHelper#trackEvent(String)MoEHelper#trackEvent(String, Properties)
MoEHelper#trackEvent(String, JSONObject)MoEHelper#trackEvent(String, Properties)
MoEHelper#trackEvent(String, Map)MoEHelper#trackEvent(String, Properties)
MoEHelper#setUserAttribute(String, String, String)MoEHelper#setUserAttribute(String, Date)
MoEHelper#setGender(String)MoEHelper#setGender(UserGender)
MoEHelper#fetchDeviceTriggersIfRequired()MoERttHelper#syncTriggers(Context)
MoEHelper#registerAppBackgroundListener(OnAppBackgroundListener)MoECallbacks#addAppBackgroundListener(OnAppBackgroundListener)
MoEHelper#unregisterAppBackgroundListener()MoECallbacks#removeAppBackgroundListener(OnAppBackgroundListener)
MoEHelper#setOnLogoutCompleteListener(OnLogoutCompleteListener)MoECallbacks#addLogoutCompleteListener(OnLogoutCompleteListener)
MoEHelper#removeLogoutCompleteListener()MoECallbacks#removeLogoutListener(OnLogoutCompleteListener)

APIs Deprecated in 11.0.00

In version 11.0.00 we have deprecated a few APIs to improve performance and better support in the future. Below is the list of deprecated APIs and their alternatives, please update to the latest methods.

ThenNow
MoEngage.Builder#setNotificationLargeIcon(int)MoEngage.Builder#configureNotificationMetaData(NotificationConfig)
MoEngage.Builder#setNotificationSmallIcon(int)MoEngage.Builder#configureNotificationMetaData(NotificationConfig)
MoEngage.Builder#setNotificationColor(int)MoEngage.Builder#configureNotificationMetaData(NotificationConfig)
MoEngage.Builder#setNotificationTone(String)MoEngage.Builder#configureNotificationMetaData(NotificationConfig)
MoEngage.Builder#enableMultipleNotificationInDrawer(boolean)MoEngage.Builder#configureNotificationMetaData(NotificationConfig)
MoEngage.Builder#optOutBackStackBuilder()MoEngage.Builder#configureNotificationMetaData(NotificationConfig)
MoEngage.Builder#optOutNotificationLargeIcon()MoEngage.Builder#configureNotificationMetaData(NotificationConfig)
MoEngage.Builder#enableLogsForSignedBuild()MoEngage.Builder#configureLogs(LogConfig)
MoEngage.Builder#enableLogs(int)MoEngage.Builder#configureLogs(LogConfig)
MoEngage.Builder#enablePushKitTokenRegistration()MoEngage.Builder#configurePushKit(PushKitConfig)
MoEngage.Builder#enableSegmentIntegration()MoEngage.Builder#enablePartnerIntegration(IntegrationPartner)
MoEHelper#setUniqueId(double)MoEHelper#setUniqueId(String)
MoEHelper#setUniqueId(float)MoEHelper#setUniqueId(String)
MoEHelper#setUniqueId(int)MoEHelper#setUniqueId(String)
MoEHelper#setUniqueId(long)MoEHelper#setUniqueId(String)
MoEHelper#setAlias(double)MoEHelper#setAlias(String)
MoEHelper#setAlias(float)MoEHelper#setAlias(String)
MoEHelper#setAlias(int)MoEHelper#setAlias(String)