Android Open Source - AdFlake-Client-Android Event Adapter






From Project

Back to project page AdFlake-Client-Android.

License

The source code is released under:

Apache License

If you think the Android project AdFlake-Client-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

/**
 * EventAdapter.java (AdFlakeSDK-Android)
 *// w ww .  j a  v a  2  s  . co m
 * Copyright ? 2013 MADE GmbH - All Rights Reserved.
 *
 * Unauthorized copying of this file, via any medium is strictly prohibited
 * unless otherwise noted in the License section of this document header.
 *
 * @file EventAdapter.java
 * @copyright 2013 MADE GmbH. All rights reserved.
 * @section License
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.adflake.adapters;

import com.adflake.AdFlakeLayout;
import com.adflake.AdFlakeLayout.AdFlakeInterface;
import com.adflake.obj.Ration;
import com.adflake.util.AdFlakeUtil;

import android.util.Log;

import java.lang.reflect.Method;

/**
 * The EventAdapter class manages custom events as configured on the AdFlake
 * website.
 */
public class EventAdapter extends AdFlakeAdapter
{

  /**
   * Instantiates a new event adapter.
   * 
   * @param adFlakeLayout
   *            the ad flake layout
   * @param ration
   *            the ration
   */
  public EventAdapter(AdFlakeLayout adFlakeLayout, Ration ration)
  {
    super(adFlakeLayout, ration);
  }

  /*
   * (non-Javadoc)
   * @see com.adflake.adapters.AdFlakeAdapter#handle()
   */
  @Override
  public void handle()
  {
    Log.d(AdFlakeUtil.ADFLAKE, "Event notification request initiated");

    AdFlakeLayout adFlakeLayout = _adFlakeLayoutReference.get();
    if (adFlakeLayout == null)
    {
      return;
    }

    // If the user set a handler for notifications, call it
    if (adFlakeLayout.adFlakeInterface != null)
    {
      String key = this._ration.key;
      String method = null;
      if (key == null)
      {
        Log.w(AdFlakeUtil.ADFLAKE, "Event key is null");
        adFlakeLayout.rollover();
        return;
      }

      int methodIndex = key.indexOf("|;|");
      if (methodIndex < 0)
      {
        Log.w(AdFlakeUtil.ADFLAKE, "Event key separator not found");
        adFlakeLayout.rollover();
        return;
      }

      method = key.substring(methodIndex + 3);

      Class<? extends AdFlakeInterface> listenerClass = adFlakeLayout.adFlakeInterface.getClass();
      Method listenerMethod;
      try
      {
        listenerMethod = listenerClass.getMethod(method, (Class[]) null);
        listenerMethod.invoke(adFlakeLayout.adFlakeInterface, (Object[]) null);
      }
      catch (Exception e)
      {
        Log.e(AdFlakeUtil.ADFLAKE, "Caught exception in handle()", e);
        adFlakeLayout.rollover();
        return;
      }
    }
    else
    {
      Log.w(AdFlakeUtil.ADFLAKE, "Event notification would be sent, but no interface is listening");
      adFlakeLayout.rollover();
      return;
    }

    // In your custom event code, you'll want to call some of the below
    // methods.
    //
    // On success:
    // adFlakeLayout.adapterDidReceiveAd
    //
    // On failure:
    // adFlakeLayout.adapterDidFailToReceiveAdWithError
  }
}




Java Source Code List

com.adflake.AdFlakeLayout.java
com.adflake.AdFlakeManager.java
com.adflake.AdFlakeTargeting.java
com.adflake.adapters.AdColonyVideoAdsAdapter.java
com.adflake.adapters.AdFlakeAdapter.java
com.adflake.adapters.AmazonAdsAdapter.java
com.adflake.adapters.AppBrainAppLiftAdapter.java
com.adflake.adapters.BeachfrontVideoAdsAdapter.java
com.adflake.adapters.CustomAdapter.java
com.adflake.adapters.EventAdapter.java
com.adflake.adapters.GenericAdapter.java
com.adflake.adapters.GoogleAdMobAdsAdapter.java
com.adflake.adapters.GoogleAdMobVideoAdsAdapter.java
com.adflake.adapters.GreystripeAdapter.java
com.adflake.adapters.InMobiAdapter.java
com.adflake.adapters.JumptapAdapter.java
com.adflake.adapters.KomliMobileAdAdapter.java
com.adflake.adapters.LeadBoltAdapter.java
com.adflake.adapters.MdotMAdapter.java
com.adflake.adapters.MillennialAdapter.java
com.adflake.adapters.MobClixAdapter.java
com.adflake.adapters.MobFoxAdapter.java
com.adflake.adapters.TodacellAdapter.java
com.adflake.obj.Custom.java
com.adflake.obj.Extra.java
com.adflake.obj.Ration.java
com.adflake.sampleapp.SampleActivity.java
com.adflake.util.AdFlakeUtil.java