Android Open Source - snakk-ads-android-sample-app Interstitial Ad Impl






From Project

Back to project page snakk-ads-android-sample-app.

License

The source code is released under:

Copyright (c) 2012, Snakk! Media Group All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are m...

If you think the Android project snakk-ads-android-sample-app 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.snakk.advertising.internal;
/*w  w w  .  j  a  va 2 s .  c o  m*/
import android.content.Context;
import com.snakk.advertising.SnakkAdRequest;
import com.snakk.advertising.SnakkInterstitialAd;
import com.snakk.adview.AdInterstitialView;
import com.snakk.adview.AdViewCore;

public final class InterstitialAdImpl extends AbstractStatefulAd implements SnakkInterstitialAd, AdViewCore.OnInterstitialAdDownload {

    private final AdInterstitialView legacyInterstitialAd;
    private SnakkInterstitialAd.SnakkInterstitialAdListener listener = null;


    /**
     * Factory method which generates Interstitial Ad object
     * @param context Application context that will be used to show Interstial Ad
     * @param zone Identifier of ad placement to be loaded.
     * @return An interstital ad object that is ready to be loaded.
     * Call {@link #load()} to initiate ad request.
     */
    public static SnakkInterstitialAd getInterstitialAdForZone(Context context, String zone) {
        SnakkAdRequest request = new AdRequestImpl.BuilderImpl(zone).getPwAdRequest();
        return InterstitialAdImpl.getInterstitialAd(context, request);

    }

    /**
     * Factory method which generates Interstitial Ad object.
     * @param context Application context that will be used to show Interstial Ad
     * @param request Request object used to hold request configuration details.
     * @return An interstital ad object that is ready to be loaded.
     * Call {@link #load()} to initiate ad request.
     */
    public static SnakkInterstitialAd getInterstitialAd(Context context, SnakkAdRequest request) {
        return new InterstitialAdImpl(context, request);
    }


    private InterstitialAdImpl(Context context, SnakkAdRequest request) {
        if (context == null) {
            throw new NullPointerException("Context cannot be null");
        }

        if (request == null) {
            throw new NullPointerException("Ad request cannot be null");
        }

        legacyInterstitialAd = new AdInterstitialView(context, AdRequestImpl.asImplAdRequest(request));
    }


    public SnakkInterstitialAd.SnakkInterstitialAdListener getListener() {
        return listener;
    }

    /**
     * @param interstitialListener the listener instance that will be notified
     * of ad lifecycle events
     */
    public void setListener(final SnakkInterstitialAd.SnakkInterstitialAdListener interstitialListener) {
        this.listener = interstitialListener;
    }

    /**
     * Fire off an asynchronous request to server for an interstitial ad.
     * Use {@link #isLoaded()} or {@link SnakkInterstitialAdListener} to determine
     * when interstitial is loaded.
     */
    public void doLoad() {
        legacyInterstitialAd.setOnInterstitialAdDownload(this);
        legacyInterstitialAd.load();
    }

    /**
     * Display interstitial to user.  If interstitial is not loaded, {@link #load()}
     * will be called and the interstitial will be loaded and shown asynchronously.
     * Use {@link #isLoaded()} or {@link SnakkInterstitialAdListener} to determine when
     * interstitial is loaded.
     */
    public void doShow() {
        legacyInterstitialAd.showInterstitial();
    }




    @Override
    public void willLoad(AdViewCore adView) {
        // noop
    }

    @Override
    public void ready(AdViewCore adView) {
        if (ratchetState(State.LOADED)) {
            if (listener != null) {
                listener.interstitialDidLoad(InterstitialAdImpl.this);
            }

            if (showImmediately) {
                show();
            }
        }
    }

    @Override
    public void willOpen(AdViewCore adView) {
        // noop
    }

    @Override
    public void didClose(AdViewCore adView) {
        if (listener != null) {
            listener.interstitialDidClose(InterstitialAdImpl.this);
        }
        legacyInterstitialAd.destroy();
    }

    @Override
    public void error(AdViewCore adView, String error) {
        if (listener != null) {
            listener.interstitialDidFail(InterstitialAdImpl.this, error);
        }
        ratchetState(State.DONE);
    }

    @Override
    public void clicked(AdViewCore adView) {
        // noop
    }

    @Override
    public void willLeaveApplication(AdViewCore adView) {
        if (listener != null) {
            listener.interstitialActionWillLeaveApplication(InterstitialAdImpl.this);
        }
    }
}




Java Source Code List

com.snakk.advertising.Config.java
com.snakk.advertising.SnakkAdPrompt.java
com.snakk.advertising.SnakkAdRequest.java
com.snakk.advertising.SnakkAdvertising.java
com.snakk.advertising.SnakkBannerAdView.java
com.snakk.advertising.SnakkInterstitialAd.java
com.snakk.advertising.SnakkVideoInterstitialAd.java
com.snakk.advertising.internal.AbstractStatefulAd.java
com.snakk.advertising.internal.AdActivityContentWrapper.java
com.snakk.advertising.internal.AdPromptImpl.java
com.snakk.advertising.internal.AdRequestImpl.java
com.snakk.advertising.internal.BasicWebView.java
com.snakk.advertising.internal.DeviceCapabilities.java
com.snakk.advertising.internal.InterstitialAdImpl.java
com.snakk.advertising.internal.InterstitialBaseView.java
com.snakk.advertising.internal.Sharable.java
com.snakk.advertising.internal.SnakkAdActivity.java
com.snakk.advertising.internal.VastPlayerView.java
com.snakk.advertising.internal.VideoInterstitialAdImpl.java
com.snakk.advertising.package-info.java
com.snakk.adview.AdFullscreenView.java
com.snakk.adview.AdInterstitialBaseView.java
com.snakk.adview.AdInterstitialView.java
com.snakk.adview.AdLog.java
com.snakk.adview.AdOfferWallView.java
com.snakk.adview.AdPrompt.java
com.snakk.adview.AdRequest.java
com.snakk.adview.AdVideoUnitView.java
com.snakk.adview.AdViewCore.java
com.snakk.adview.AdView.java
com.snakk.adview.AutoDetectedParametersSet.java
com.snakk.adview.Base64.java
com.snakk.adview.DeprecatedInterstitialBaseView.java
com.snakk.adview.IMraidCommand.java
com.snakk.adview.LockedOrientationDialog.java
com.snakk.adview.MraidCommand.java
com.snakk.adview.Mraid.java
com.snakk.adview.OldAdActivity.java
com.snakk.adview.Rotate3dAnimation.java
com.snakk.adview.Utils.java
com.snakk.adview.track.EventTracker.java
com.snakk.adview.track.InstallTracker.java
com.snakk.adview.package-info.java
com.snakk.core.SnakkLog.java
com.snakk.vastsdk.TVASTAdErrorEvent.java
com.snakk.vastsdk.TVASTAdErrorListener.java
com.snakk.vastsdk.TVASTAdError.java
com.snakk.vastsdk.TVASTAdType.java
com.snakk.vastsdk.TVASTAdView.java
com.snakk.vastsdk.TVASTAd.java
com.snakk.vastsdk.TVASTAdsLoader.java
com.snakk.vastsdk.TVASTAdsRequest.java
com.snakk.vastsdk.TVASTCompanionAdSlot.java
com.snakk.vastsdk.TVASTCompanionAd.java
com.snakk.vastsdk.TVASTCreative.java
com.snakk.vastsdk.TVASTLinearAd.java
com.snakk.vastsdk.TVASTLinearIcon.java
com.snakk.vastsdk.TVASTMediaFile.java
com.snakk.vastsdk.TVASTNonlinearAd.java
com.snakk.vastsdk.TVASTPostbackTask.java
com.snakk.vastsdk.TVASTUtils.java
com.snakk.vastsdk.TVASTVideoAdsManager.java
com.snakk.vastsdk.player.TVASTPlayer.java
com.snakk.vastsdk.player.TVASTSharable.java
com.snakk.vastsdk.player.TVASTTrackingVideoView.java
com.snakk.vastsdk.player.TVASTVideoProgressThread.java
com.snakkads.tabsswipe.BannerAdPromptFragment.java
com.snakkads.tabsswipe.BannerInterstitialFragment.java
com.snakkads.tabsswipe.BannerRichMediaFragment.java
com.snakkads.tabsswipe.BannerStandardMediaFragment.java
com.snakkads.tabsswipe.BannerVideoFragment.java
com.snakkads.tabsswipe.MainActivity.java
com.snakkads.tabsswipe.SplashScreen.java
com.snakkads.tabsswipe.adapter.TabsPagerAdapter.java
com.yourcompany.AdMobActivity.java
com.yourcompany.SampleActivity.java