Android Open Source - playnomics-android Render Task Factory






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.messaging.ui;
/*w ww  .  j a  va  2  s .c o  m*/
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.widget.ImageView;

import com.playnomics.android.messaging.HtmlAd;
import com.playnomics.android.messaging.NativeCloseButton;
import com.playnomics.android.messaging.Placement;
import com.playnomics.android.messaging.Placement.IPlacementStateObserver;
import com.playnomics.android.messaging.ui.PlayViewFactory.IImageViewHandler;
import com.playnomics.android.messaging.ui.PlayWebView.IPlayWebViewHandler;
import com.playnomics.android.util.Logger;
import com.playnomics.android.util.Logger.LogLevel;

public class RenderTaskFactory {

  private IPlayViewFactory viewFactory;
  private Logger logger;

  public RenderTaskFactory(IPlayViewFactory viewFactory, Logger logger) {
    this.viewFactory = viewFactory;
    this.logger = logger;
  }

  public Runnable createLayoutPlacementTask(final Placement placement,
      final HtmlAd htmlAd, final Activity activity,
      final IPlayWebViewHandler handler,
      final IImageViewHandler imageViewHandler,
      final IPlacementStateObserver observer) {

    return new Runnable() {
      public void run() {
        try {
          PlayWebView webView = viewFactory.createPlayWebView(
              activity, htmlAd.getHtmlContent(),
               handler, logger);
          
          PlayDialog dialog;
          if (htmlAd.getCloseButton() instanceof NativeCloseButton) {
            NativeCloseButton closeButton = (NativeCloseButton) htmlAd
                .getCloseButton();

            ImageView closeButtonView = viewFactory
                .createImageView(activity, imageViewHandler);

            byte[] imageData = closeButton.getImageData();
            Bitmap bitmap = BitmapFactory.decodeByteArray(
                imageData, 0, imageData.length);
            closeButtonView.setImageBitmap(bitmap);
            dialog = viewFactory.createPlayDialog(activity,
                webView, observer, closeButtonView, placement);
          } else {
            dialog = viewFactory.createPlayDialog(activity,
                webView, observer, placement);
          }
          
          placement.setDialog(dialog);
         } catch (Exception ex) {
          logger.log(LogLevel.WARNING,
              "The placement %s cannot be rendered",
              placement.getPlacementName());
          logger.log(LogLevel.WARNING, ex);
        }
      }
    };
  }
  
  public Runnable createShowPlacementTask(final PlayDialog dialog){
    return new Runnable() {
      public void run() {
        dialog.show();
      }
    };
  }

  public Runnable createHidePlacementTask(final PlayDialog dialog) {
    return new Runnable() {
      public void run() {
        dialog.dismiss();
      }
    };
  }
}




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