Android Open Source - playnomics-android Placement Data Client






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.client;
/* w  ww  . j  av a  2s. co  m*/
import java.util.TreeMap;

import com.playnomics.android.client.AssetClient.ResponseStatus;
import com.playnomics.android.messaging.HtmlAd;
import com.playnomics.android.messaging.HtmlAdFactory;
import com.playnomics.android.messaging.NativeCloseButton;
import com.playnomics.android.messaging.Placement;
import com.playnomics.android.messaging.Placement.PlacementState;
import com.playnomics.android.session.Session;
import com.playnomics.android.util.IConfig;
import com.playnomics.android.util.Logger;
import com.playnomics.android.util.Logger.LogLevel;
import com.playnomics.android.util.Util;

public class PlacementDataClient {
  private IConfig config;
  private Session session;
  private Logger logger;
  private HtmlAdFactory adFactory;
  private AssetClient assetClient;
  private Util util;

  public void setSession(Session session) {
    this.session = session;
  }

  public PlacementDataClient(AssetClient assetClient, IConfig config,
      Logger logger, HtmlAdFactory adFactory, Util util) {
    this.logger = logger;
    this.config = config;
    this.adFactory = adFactory;
    this.assetClient = assetClient;
    this.util = util;
  }

  public Thread loadPlacementInBackground(final Placement placement) {
    Runnable task = new Runnable() {
      public void run() {
        String messagingApiUrl = config.getMessagingUrl();

        String adsPath = config.getMessagingPathAds();

        TreeMap<String, Object> queryParams = new TreeMap<String, Object>();
        queryParams.put(config.getMessagingPlacementNameKey(),
            placement.getPlacementName());
        queryParams.put(config.getAndroidIdKey(),
            session.getAndroidId());
        queryParams.put(config.getMessagingLanguageKey(),
            util.getDeviceLanguage());
        queryParams.put(config.getApplicationIdKey(),
            session.getApplicationId());
        queryParams.put(config.getUserIdKey(), session.getUserId());
        queryParams.put(config.getSdkNameKey(), config.getSdkName());
        queryParams.put(config.getSdkVersionKey(),
            config.getSdkVersion());

        AssetClient.AssetResponse jsonResponse = assetClient
            .requestAsset(messagingApiUrl, adsPath, queryParams);

        if (jsonResponse.getStatus() == ResponseStatus.SUCCESS) {
          try {
            HtmlAd htmlAd = adFactory.createDataFromBytes(
                jsonResponse.getData(),
                placement.getPlacementName());

            if (htmlAd.getCloseButton() instanceof NativeCloseButton) {
              NativeCloseButton closeButton = (NativeCloseButton) htmlAd
                  .getCloseButton();
              AssetClient.AssetResponse imageResponse = assetClient
                  .requestAsset(closeButton.getImageUrl());
              if (imageResponse.getStatus() == ResponseStatus.SUCCESS) {
                closeButton.setImageData(imageResponse
                    .getData());
                placement.updatePlacementData(htmlAd);
              } else {
                placement.setState(PlacementState.LOAD_FAILED);
              }
            } else {
              placement.updatePlacementData(htmlAd);
            }
          } catch (Exception ex) {
            logger.log(LogLevel.WARNING, ex,
                "Could not fetch message for placement");
            placement.setState(PlacementState.LOAD_FAILED);
          }
        } else {
          placement.setState(PlacementState.LOAD_FAILED);
        }
      }
    };
    Thread thread = new Thread(task);
    thread.start();
    return thread;
  }
}




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