Migrate APIs

Medallia Experience Orchestration SDK for Android introduces breaking public API changes and package move. See Additional features of the Medallia Experience Orchestration SDK for Android to learn about the updates.

In general, to migrate from Thunderhead ONE public APIs to Medallia Experience Orchestration public APIs, follow the steps below:

  1. Update the imports of the public API packages in all classes:
    The public APIs have been moved from com.thunderhead.mobile into com.medallia.mxo.
    1. Update all Kotlin and Java usages of com.thunderhead.mobile to use the new top-level declarations found in the com.medallia.mxo package.
    2. Update all Java usages of com.thunderhead.mobile.One to use the new API com.medallia.mxo.MedalliaMXO.
    Important: Some public API package names have been completely changed. See Additional features of the MXO SDK for Android to update all API packages for each Medallia Experience Orchestration SDK additional feature used in your Android app.
  2. Replace all mentions of One in your code to MedalliaMXO to call an API.

    For example, for Java users, update One.setLoggingConfiguration to MedalliaMXO.setLoggingConfiguration.

  3. Replace One to MXO in the API names.

    For example, update OneLogLevel to MXOLogLevel.

    Important: Some public API package names have been completely changed. See Additional features of the MXO SDK for Android to update all API packages for each Medallia Experience Orchestration SDK additional feature used in your Android app.

For example, for configuring logging, instead of using:

import com.thunderhead.mobile.logging.OneLogComponent
import com.thunderhead.mobile.logging.OneLogLevel
import com.thunderhead.mobile.oneConfigureLogging

oneConfigureLogging {
	levels = mutableSetOf(OneLogLevel.VERBOSE) 
    	components = mutableSetOf(OneLogComponent.ANY)
}
import com.thunderhead.mobile.logging.OneLogComponent;
import com.thunderhead.mobile.logging.OneLogLevel;
import com.thunderhead.mobile.logging.OneLoggingConfiguration;

final OneLoggingConfiguration oneLoggingConfiguration = OneLoggingConfiguration.builder()
    	.log(OneLogLevel.VERBOSE)
    	.log(OneLogComponent.ANY)
    	.build();
One.setLoggingConfiguration(oneLoggingConfiguration);

use the following:

import com.medallia.mxo.logging.MXOLogComponent
import com.medallia.mxo.logging.MXOLogLevel
import com.medallia.mxo.mxoConfigureLogging

mxoConfigureLogging {
	levels = mutableSetOf(MXOLogLevel.VERBOSE) 
    	components = mutableSetOf(MXOLogComponent.ANY)
}
import com.medallia.mxo.MedalliaMXO;
import com.medallia.mxo.logging.MXOLogComponent;
import com.medallia.mxo.logging.MXOLogLevel;
import com.medallia.mxo.logging.MXOLoggingConfiguration;

final MXOLoggingConfiguration mxoLoggingConfiguration=MXOLoggingConfiguration.builder()
        .log(MXOLogLevel.VERBOSE)
        .log(MXOLogComponent.ANY)
        .build();
MedalliaMXO.setLoggingConfiguration(mxoLoggingConfiguration);