All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.segment.analytics.LeanplumIntegrationAdapter Maven / Gradle / Ivy

package com.segment.analytics;

import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import com.leanplum.Leanplum;
import com.leanplum.LeanplumActivityHelper;

import static com.segment.analytics.Utils.hasPermission;

class LeanplumIntegrationAdapter extends AbstractIntegrationAdapter {
  LeanplumActivityHelper helper;

  @Override void initialize(Context context, JsonMap settings)
      throws InvalidConfigurationException {
    if (!hasPermission(context, Manifest.permission.ACCESS_NETWORK_STATE)) {
      throw new InvalidConfigurationException("Leanplum requires ACCESS_NETWORK_STATE");
    }
    Leanplum.setAppIdForProductionMode(settings.getString("appId"),
        settings.getString("clientKey"));
    Leanplum.start(context);
  }

  @Override void track(TrackPayload track) {
    super.track(track);
    Leanplum.track(track.event(),
        track.properties().price() == 0 ? track.properties().price() : track.properties().value(),
        track.properties());
  }

  @Override void screen(ScreenPayload screen) {
    super.screen(screen);
    Leanplum.advanceTo(screen.name(), screen.category(), screen.properties());
  }

  @Override void identify(IdentifyPayload identify) {
    super.identify(identify);
    Leanplum.setUserAttributes(identify.userId(), identify.traits());
  }

  @Override void onActivityCreated(Activity activity, Bundle savedInstanceState) {
    super.onActivityCreated(activity, savedInstanceState);
    helper = new LeanplumActivityHelper(activity);
  }

  @Override void onActivityPaused(Activity activity) {
    super.onActivityPaused(activity);
    helper.onPause();
  }

  @Override void onActivityResumed(Activity activity) {
    super.onActivityResumed(activity);
    helper.onResume();
  }

  @Override void onActivityStopped(Activity activity) {
    super.onActivityStopped(activity);
    helper.onStop();
  }

  @Override String key() {
    return "Leanplum";
  }

  @Override void flush() {
    super.flush();
    Leanplum.forceContentUpdate();
  }

  @Override Void getUnderlyingInstance() {
    return null;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy