Android Open Source - KISSmetrics-Android-SDK Tracking Runnables Tracking State






From Project

Back to project page KISSmetrics-Android-SDK.

License

The source code is released under:

Apache License

If you think the Android project KISSmetrics-Android-SDK listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

//
// KISSmetricsSDK
////  w w w. jav  a2 s .  c  om
// Copyright 2014 KISSmetrics
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.


package com.kissmetrics.sdk;

import java.util.HashMap;

import com.kissmetrics.sdk.KISSmetricsAPI.RecordCondition;


/**
 * TrackingRunnables tracking state
 * 
 * Provides Runnable objects for tracking state.
 * 
 */
public class TrackingRunnablesTrackingState implements TrackingRunnables {
  
  
  /**
   * Creates a Runnable to archive and send an identity.
   * 
   * @param identity  User identity String.
   * @param archiver  The instance of Archiver to use.
   * @param kmapi  The instance of KISSmetricsAPI where initiation of recursive send should occur.
   * @return A Runnable object that will archive and send an identity.
   */
  public Runnable identify(final String identity, final Archiver archiver, 
               final KISSmetricsAPI kmapi) {
    
    Runnable runnable = new Runnable() {
      public void run() {
        archiver.archiveIdentity(identity);
        kmapi.sendRecords();
      }
    };
    
    return runnable;
  }
  
  
  /**
   * Creates a Runnable to archive and send an alias.
   * 
   * @param alias  User alias String.
   * @param identity  User identity String.
   * @param archiver  The instance of Archiver to use.
   * @param kmapi  The instance of KISSmetricsAPI where initiation of recursive send should occur.
   * @return A Runnable object that will archive and send an alias.
   */
  public Runnable alias(final String alias, final String identity, final Archiver archiver, 
              final KISSmetricsAPI kmapi) {
  
    Runnable runnable = new Runnable() {
      public void run() {
        archiver.archiveAlias(alias, identity);
        kmapi.sendRecords();
      }
    };
    
    return runnable;  
  }

  
  /**
   * Creates a Runnable to archive an unassociated user identity. 
   * 
   * @param identity  User identity String.
   * @param archiver  The instance of Archiver to use.
   * @return A Runnable object that will archive a new unassociated identity.
   */
  public Runnable clearIdentity(final String newIdentity, final Archiver archiver) {
    
    Runnable runnable = new Runnable() {
      public void run() {
        archiver.archiveFirstIdentity(newIdentity);
        archiver.clearSavedIdEvents();
        archiver.clearSavedProperties();
      }
    };
    
    return runnable;  
  }
  

  /**
   * Creates a Runnable to archive and send an event with or without properties(null).
   * 
   * @param name  Event name.
   * @param properties  A HashMap of property names/keys and value pairs or null.
   * @param condition  A RecordCondition of always, per installation or per identity.
   * @param archiver  The instance of Archiver to use.
   * @param kmapi  The instance of KISSmetricsAPI where initiation of recursive send should occur.
   * @return A Runnable object that will archive and send an event.
   */
  public Runnable record(final String name, final HashMap<String, String> properties, 
               final RecordCondition condition, final Archiver archiver, 
               final KISSmetricsAPI kmapi)  {
    
    Runnable runnable = new Runnable() {
      public void run() {
        archiver.archiveEvent(name, properties, condition);  
        kmapi.sendRecords();
      }
    };
    
    return runnable;
  }

  
  /**
   * Creates a Runnable to archive and send an event only once per identity.
   * 
   * @param name  Event name.
   * @param archiver  The instance of Archiver to use.
   * @param kmapi  The instance of KISSmetricsAPI where initiation of recursive send should occur.
   * @return A Runnable object that will archive and send an event only if the event has never 
   *         been recorded for the current identity.
   */
  public Runnable recordOnce(final String name, final Archiver archiver, 
                 final KISSmetricsAPI kmapi){
    
    Runnable runnable = new Runnable() {
      public void run() {
        archiver.archiveEvent(name, null, RecordCondition.RECORD_ONCE_PER_IDENTITY);
        kmapi.sendRecords();
      }
    };
    
    return runnable;
  }
  

  /**
   * Creates a Runnable to archive and send 1 or more user properties.
   * 
   * @param properties  A HashMap of 1 or more property name/keys and value pairs.
   * @param archiver  The instance of Archiver to use.
   * @param kmapi  The instance of KISSmetricsAPI where initiation of recursive send should occur.
   * @return A Runnable object that will archive and send 1 or more properties.
   */
  public Runnable set(final HashMap<String, String> properties, final Archiver archiver, 
            final KISSmetricsAPI kmapi){
  
    Runnable runnable = new Runnable() {
      public void run() {
        archiver.archiveProperties(properties);
        kmapi.sendRecords();  
      }
    };
    
    return runnable;
  }
  

  /**
   * Creates a Runnable to archive and send properties with a new or different value for the 
   * provided key.
   * 
   * @param key  A property name/key.
   * @param value A value for the provided property name/key.
   * @param archiver  The instance of Archiver to use.
   * @param kmapi  The instance of KISSmetricsAPI where initiation of recursive send should occur.
   * @return A Runnable object that will archive and send a distinct property. 
   */
  public Runnable setDistinct(final String key, final String value, final Archiver archiver, 
                final KISSmetricsAPI kmapi){
  
    Runnable runnable = new Runnable() {
      public void run() {
        archiver.archiveDistinctProperty(key, value);
        kmapi.sendRecords();
      }
    };
    
    return runnable;
  }
}




Java Source Code List

com.kissmetrics.api.MainActivity.java
com.kissmetrics.sdk.ArchiverImplActTest.java
com.kissmetrics.sdk.ArchiverImplTest.java
com.kissmetrics.sdk.ArchiverImpl.java
com.kissmetrics.sdk.Archiver.java
com.kissmetrics.sdk.ConnectionDelegate.java
com.kissmetrics.sdk.ConnectionImplTest.java
com.kissmetrics.sdk.ConnectionImpl.java
com.kissmetrics.sdk.Connection.java
com.kissmetrics.sdk.KISSmetricsAPITest.java
com.kissmetrics.sdk.KISSmetricsAPI.java
com.kissmetrics.sdk.QueryEncoderTest.java
com.kissmetrics.sdk.QueryEncoder.java
com.kissmetrics.sdk.SenderDisabledState.java
com.kissmetrics.sdk.SenderReadyState.java
com.kissmetrics.sdk.SenderSendingState.java
com.kissmetrics.sdk.SenderState.java
com.kissmetrics.sdk.Sender.java
com.kissmetrics.sdk.TestableConnectionImpl.java
com.kissmetrics.sdk.TestableVerificationImpl.java
com.kissmetrics.sdk.TrackingRunnablesNonTrackingState.java
com.kissmetrics.sdk.TrackingRunnablesTrackingState.java
com.kissmetrics.sdk.TrackingRunnables.java
com.kissmetrics.sdk.VerificationDelegate.java
com.kissmetrics.sdk.VerificationImplTest.java
com.kissmetrics.sdk.VerificationImpl.java
org.apache.cactus.mock.MockHttpURLConnection.java