> ## Documentation Index
> Fetch the complete documentation index at: https://moengage.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Migration to 10.x.xx

> Migrate to MoEngage Android SDK 10.x.xx with updated APIs, removed GCM support, and behavioral changes.

# Migrating from Manifest based integration

In version SDK version `9.0.00` we introduced a new way of integrating the MoEngage SDK via Java/Kotlin code and deprecated integration using metadata in the Manifest file. Starting version `10.0.00` we are removing support for integration which uses Manifest metadata. Refer to the [documentation](https://www.moengage.com/docs/developer-guide/android-sdk/migration/moving-from-manifest-to-code-based-integration) to learn more on the migration to code-based integration.

# Behavioral Changes

* Self-Handled in-app delivered on the Main thread
* Removed support for GCM
* Removed support for Baidu
* For showing gifs in in-apps SDK was dependent on Fresco before SDK version `10.0.00` Starting from SDK version `10.0.00` SDK uses Glide to show gifs. Make sure you add Glide as a dependency in your application if you wish to use gifs.
* "nav\_provier", "nav\_source", will no longer be present in the push payload or deep-link link URL.
* If sender id is provided for while initializing the SDK it will be used for token registration instead of the default sender id in the `google-services.json` file.
* InApp Callbacks - InApp Callbacks listener is now a concrete class rather than an interface.
* InstallReceiver removed from the SDK. If you have added `com.moe.pushlibrary.InstallReceiver` in the manifest please remove.

# Update removed APIs

In version `10.0.00` of the SDK, 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.

| Then                                                             | Now                                                             |
| ---------------------------------------------------------------- | --------------------------------------------------------------- |
| MoEngage.Builder#setTrackingOptOut(List)                         | MoEngage.Builder#optOutActivityTracking(List)                   |
| MoEngage.Builder#setInAppOptOut(List)                            | MoEngage.Builder#optOutInAppFromActivity   (List)               |
| MoEHelper#setFlushInterval(long)                                 | MoEngage.Builder#setFlushInterval(long)                         |
| MoEHelper#setExistingUser(boolean)                               | MoEHelper#setAppStatus(AppStatus)                               |
| MoEHelper#optOutOfAdIdCollection   (Context, boolean)            | MoEngage.Builder#optOutGAIDCollection()                         |
| MoEHelper#optOutOfLocationTracking   (Context, boolean)          | MoEngage.Builder#optOutLocationTracking()                       |
| MoEHelper#optOutOfGeoFences   (Context, boolean)                 | MoEngage.Builder#optOutGeoFence()                               |
| MoEHelper#setLogLevel(int)                                       | MoEngage.Builder#setLogLevel(int)                               |
| MoEHelper#setLogStatus(boolean)                                  | MoEngage.Builder#enableLogsForSignedBuild()                     |
| MoEHelper#optOutOfAndroidIdCollection(Context, boolean)          | MoEngage.Builder#optOutAndroidIdCollection()                    |
| MoEHelper#optOutOfOperatorNameCollection   (Context, boolean)    | MoEngage.Builder#optOutCarrier   NameCollection()               |
| MoEHelper#optOutOfDeviceAttributeCollection   (Context, boolean) | MoEngage.Builder#optOutDevice   AttributeCollection()           |
| MoEHelper#redirectDataToRegion(int)                              | MoEngage.Builder#redirectDataToRegion   (MoEngage.DATA\_REGION) |
| MoEHelper#setPeriodicFlushState(boolean)                         | MoEngage.Builder#optOutPeriodicFlush()                          |
| PushManager#optoutBackStackBuilder(Boolean)                      | MoEngage.Builder#optOutBackStackBuilder()                       |
| MoEPushCallBacks.OnMoEPushReceiveListener                        | PushMessageListener#onNotificationReceived()                    |
| MoEPushCallBacks.OnMoEPushNavigationAction                       | PushMessageListener#onHandleRedirection()                       |
| MoEPushCallbacks.OnMoEPushClickListener                          | PushMessageListener#onHandleRedirection()                       |
| MoEPushCallBacks.OnMoEPushClearedListener                        | PushMessageListener#onNotificationCleared()                     |
| MoEPushCallBacks#setOnMoEPushReceiveListener                     | MoEPushHelper#setMessageListener\|(PushMessageListener)         |
| MoEPushCallBacks#setOnMoEPush   NavigationAction                 | MoEPushHelper#setMessageListener(   PushMessageListener)        |
| MoEPushCallBacks#setOnMoEPush   ClearedListener                  | MoEPushHelper#setMessageListener   (PushMessageListener)        |
| MoEHelper#setBirthDate(String)                                   | MoEHelper#setBirthDate(Date)                                    |
| PushManager#optOutMoEngageExtras(boolean)                        | Not required any more                                           |
| MoEHelper#showInAppIfAny(boolean)                                | Not required any more                                           |
| MoEHelper#autoIntegrate(Application)                             | Not required any more                                           |
| MoEHelper#onStart(Activity)                                      | Not required any more                                           |
| MoEHelper#onStop(Activity)                                       | Not required any more                                           |
| MoEHelper#onResume(Activity)                                     | Not required any more                                           |
| MoEHelper#onFragmentStart(Activity, String)                      | Not required any more                                           |
| MoEHelper#onFragmentStop(Activity, String)                       | Not required any more                                           |
| MoEHelper#optOutOfIMEICollection   (Context, boolean)            | Not required any more                                           |
| MoEngage.Builder#optOutMoEngageExtras()                          | Not required any more                                           |
| MoEngage.Builder#enableInstantApp()                              | Merged with MoEngage.Builder#setSenderId()                      |
| MoEngage.Builder#enableBaiduPush(String)                         | Baidu Push not supported.                                       |

# APIs deprecated in 10.0.00

In version `10.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.

| Then                                      | Now                                                   |
| ----------------------------------------- | ----------------------------------------------------- |
| MoEngage.Builder#setNotificationType(int) | MoEngage.Builder#enableMultipleNotificationInDrawer() |
| PayloadBuilder                            | Properties                                            |
