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

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

There is a newer version: 2.5.3
Show newest version
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 LeanplumIntegration extends AbstractIntegration {
  static final String LEANPLUM_KEY = "Leanplum";
  LeanplumActivityHelper helper;

  @Override void initialize(Context context, JsonMap settings, boolean debuggingEnabled)
      throws IllegalStateException {
    if (!hasPermission(context, Manifest.permission.ACCESS_NETWORK_STATE)) {
      throw new IllegalStateException("Leanplum requires ACCESS_NETWORK_STATE permission");
    }
    if (!hasPermission(context, "com.google.android.c2dm.permission.RECEIVE")) {
      throw new IllegalStateException(
          "Leanplum requires com.google.android.c2dm.permission.RECEIVE permission");
    }
    /*
    if (debuggingEnabled) {
      Leanplum.setAppIdForDevelopmentMode(settings.getString("appId"),
          settings.getString("clientKey"));
      Leanplum.enableVerboseLoggingInDevelopmentMode();
    }
    */
    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 onActivityResumed(Activity activity) {
    super.onActivityResumed(activity);
    helper.onResume();
  }

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

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

  @Override String key() {
    return LEANPLUM_KEY;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy