Android Open Source - KISSmetrics-Android-SDK Sender






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 ww . j  a va  2 s.c  o  m
// 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.concurrent.ExecutorService;

public class Sender implements ConnectionDelegate {

  SenderState state;
  ExecutorService executorService;
  ConnectionImpl injectedConnection;
  
  private SenderState readyState;
  private SenderState sendingState;
  private SenderState disabledState;
  

  /*
   * Sender constructor
   * 
   * @param disabled
   *       Used to determine initialized state.
   */
  public Sender(boolean disabled) {
    
    readyState = new SenderReadyState(this);
    sendingState = new SenderSendingState(this);
    disabledState = new SenderDisabledState(this);
    
    if (disabled) {
      state = disabledState;
    } else {
      state = readyState;
    }
  }
  
  
  // Allow use of injectedConnection over new()
  ConnectionImpl getNewConnection() {
    if (injectedConnection != null) {
      return injectedConnection;
    }
    return new ConnectionImpl();
  }

  
  // Getters
  SenderState getReadyState() {
    return readyState;
  }
  
  SenderState getSendingState() {
    return sendingState;
  }
  
  SenderState getDisabledState() {
    return disabledState;
  }


  //  Setters
  void setState(SenderState state) {
    this.state = state;
  }
  
  
  // Forwarded methods
  public void startSending() {
    synchronized (this) {
      state.startSending();
    }
  }
  
  public void disableSending() {
    synchronized (this) {
      state.disableSending();
    }
  }
  
  public void enableSending() {
    synchronized (this) {
      state.enableSending();
    }
  }
  
  
  // ConnectionDelegate method
  public void connectionComplete(String urlString, boolean success, boolean malformed) {
    synchronized (this) {
      state.connectionComplete(urlString, success, malformed);
    }
  }
}




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