Android Open Source - playnomics-android Heart Beat Producer






From Project

Back to project page playnomics-android.

License

The source code is released under:

Apache License

If you think the Android project playnomics-android 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

package com.playnomics.android.session;
/*  ww  w  . jav  a  2 s .  c  om*/
import java.util.concurrent.atomic.AtomicBoolean;

import com.playnomics.android.util.IConfig;

import android.os.Handler;
import android.os.Message;
import android.os.Looper;

public class HeartBeatProducer implements IHeartBeatProducer {
  private static final int MSG_HEART_BEAT = 0xBEA1; 

  private AtomicBoolean started;
  private HeartBeatHandler heartBeatHandler;
  private int delayIndex = 0;
  private int[] heartBeatIntervals;

  public HeartBeatProducer() {
    this.started = new AtomicBoolean(false);
  }

  public HeartBeatProducer(IConfig config) {
    this.started = new AtomicBoolean(false);
    this.heartBeatIntervals = config.getHeartBeatIntervalInMinutes();
  }

  public void start(final HeartBeatHandler handler) {
    if (started.getAndSet(true)) {
      return;
    }
    heartBeatHandler = handler;
    delayIndex = 0;
    setHeartBeatTimer(heartBeatIntervals[delayIndex]);
  }

  public void stop() {
    if (!started.getAndSet(false)) {
      return;
    }
    mHandler.removeMessages(MSG_HEART_BEAT);
  }

  public boolean isRunningForLongTime() {
    return (delayIndex!=0);
  }

  public int getHeartBeatIntervalInMinutes() {
    return heartBeatIntervals[delayIndex];
  }

    private Handler mHandler = new Handler(Looper.getMainLooper()) {
        @Override 
        public void handleMessage(Message msg) { 
            switch (msg.what) { 
                case MSG_HEART_BEAT: { 
                  HandleHeartBeat();
                    break;  
                } 
                default: 
                  super.handleMessage(msg); 
            }
        }
    };

    private void HandleHeartBeat() {
      int delayInMillSeconds = heartBeatIntervals[delayIndex]*60*1000;
      setHeartBeatTimer(getNextDelayInMinutes());
      heartBeatHandler.onHeartBeat(delayInMillSeconds);
    }
 
  private void setHeartBeatTimer(long delayInMinutes) {
        mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_HEART_BEAT), delayInMinutes*60*1000); 
    }

  private int getNextDelayInMinutes() {
    int nextIndex = delayIndex + 1;
    if (nextIndex<heartBeatIntervals.length) {
      delayIndex = nextIndex;
      }
    return heartBeatIntervals[delayIndex];
  }

}




Java Source Code List

com.playnomics.PlaynomicsMoreTestActivity.java
com.playnomics.PlaynomicsTestAppActivity.java
com.playnomics.RichDataFrameDelegate.java
com.playnomics.android.client.AssetClient.java
com.playnomics.android.client.EventQueue.java
com.playnomics.android.client.EventWorker.java
com.playnomics.android.client.HttpConnectionFactory.java
com.playnomics.android.client.IEventQueue.java
com.playnomics.android.client.IEventWorker.java
com.playnomics.android.client.IHttpConnectionFactory.java
com.playnomics.android.client.PlacementDataClient.java
com.playnomics.android.client.SegmentationClient.java
com.playnomics.android.events.AppPageEvent.java
com.playnomics.android.events.AppPauseEvent.java
com.playnomics.android.events.AppResumeEvent.java
com.playnomics.android.events.AppRunningEvent.java
com.playnomics.android.events.AppStartEvent.java
com.playnomics.android.events.CustomEvent.java
com.playnomics.android.events.ExplicitEvent.java
com.playnomics.android.events.ImplicitEvent.java
com.playnomics.android.events.PlaynomicsEvent.java
com.playnomics.android.events.TransactionEvent.java
com.playnomics.android.events.UserInfoEvent.java
com.playnomics.android.messaging.CloseButton.java
com.playnomics.android.messaging.HtmlAdFactory.java
com.playnomics.android.messaging.HtmlAd.java
com.playnomics.android.messaging.HtmlCloseButton.java
com.playnomics.android.messaging.MessagingManager.java
com.playnomics.android.messaging.NativeCloseButton.java
com.playnomics.android.messaging.Placement.java
com.playnomics.android.messaging.Position.java
com.playnomics.android.messaging.Target.java
com.playnomics.android.messaging.ui.IPlayViewFactory.java
com.playnomics.android.messaging.ui.PlayDialog.java
com.playnomics.android.messaging.ui.PlayViewFactory.java
com.playnomics.android.messaging.ui.PlayWebView.java
com.playnomics.android.messaging.ui.RenderTaskFactory.java
com.playnomics.android.push.GcmBroadcastReceiver.java
com.playnomics.android.push.GcmIntentService.java
com.playnomics.android.push.GcmManager.java
com.playnomics.android.sdk.IGoogleCloudMessageConfig.java
com.playnomics.android.sdk.IPlacementDelegate.java
com.playnomics.android.sdk.IPlaynomicsPlacementDelegate.java
com.playnomics.android.sdk.IPlaynomicsPlacementRawDelegate.java
com.playnomics.android.sdk.IPlaynomicsSegmentationDelegate.java
com.playnomics.android.sdk.IPushConfig.java
com.playnomics.android.sdk.IPushNotificationDelegate.java
com.playnomics.android.sdk.Playnomics.java
com.playnomics.android.segments.UserSegmentIds.java
com.playnomics.android.session.ActivityObserver.java
com.playnomics.android.session.GameSessionInfo.java
com.playnomics.android.session.HeartBeatHandler.java
com.playnomics.android.session.HeartBeatProducer.java
com.playnomics.android.session.IActivityObserver.java
com.playnomics.android.session.ICallbackProcessor.java
com.playnomics.android.session.IHeartBeatProducer.java
com.playnomics.android.session.SessionStateMachine.java
com.playnomics.android.session.Session.java
com.playnomics.android.session.TouchEventHandler.java
com.playnomics.android.session.WindowCallbackProxy.java
com.playnomics.android.util.AndroidLogger.java
com.playnomics.android.util.AsyncTaskRunner.java
com.playnomics.android.util.CacheFile.java
com.playnomics.android.util.Config.java
com.playnomics.android.util.ContextWrapper.java
com.playnomics.android.util.EventTime.java
com.playnomics.android.util.IAsyncCall.java
com.playnomics.android.util.IConfig.java
com.playnomics.android.util.IRandomGenerator.java
com.playnomics.android.util.LargeGeneratedId.java
com.playnomics.android.util.LogWriter.java
com.playnomics.android.util.Logger.java
com.playnomics.android.util.Util.java