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 w w . j a v a 2 s . c o 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