NativeFeedsDemoActivity.java 5.64 KB
package cn.vlion.simple;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Log;
import android.util.TypedValue;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.google.gson.Gson;

import java.util.List;

import cn.vlion.ad.core.Config;
import cn.vlion.ad.moudle.natives.NativeAdStatusChangeListener;
import cn.vlion.ad.moudle.natives.NativeListener;
import cn.vlion.ad.moudle.natives.NativeManager;
import cn.vlion.ad.moudle.natives.model.NativeAdStateData;
import cn.vlion.ad.moudle.natives.model.NativeFeeds;
import cn.vlion.ad.moudle.natives.model.NativeFeedsData;
import cn.vlion.simple.util.ScreenUtil;

/**
 * Created by gujun on 2017/11/15.
 */

public class NativeFeedsDemoActivity extends AppCompatActivity {

    private static final String adId_Feeds = "357";
    private static final String TAG = "NativeFeedsDemoActivity";

    private ImageView icon, image;
    private TextView title, desc, rating;
    private Button click;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_native_feeds_demo);
        init();
        loadFeeds();
    }

    private void init() {
        icon = findViewById(R.id.icon);
        image = findViewById(R.id.image);
        title = findViewById(R.id.title);
        desc = findViewById(R.id.desc);
        rating = findViewById(R.id.rating);
        click = findViewById(R.id.click);
    }

    public void loadFeeds() {
        NativeManager.getInstance().requestFeeds(this, adId_Feeds, new NativeListener<NativeFeedsData>() {
            @Override
            public void onRequestSuccess(NativeFeedsData data) {
                Log.e("DemoView", "数据获取成功 " + "adId:" + data.getTagid() + "," + new Gson().toJson(data));
                addData(data);
            }

            @Override
            public void onRequestFailed(String adId, int code, String message) {
                Log.e("DemoView", "数据加载失败 : code = " + code + " , message = " + message + "," + "adId:" + adId);
            }
        });
    }

    private void addData(final NativeFeedsData data) {
        if (data == null || data.getNativead() == null) return;

        List<NativeFeeds.IconBean> icons = data.getNativead().getIcon();
        String iconUrl = icons == null || icons.size() <= 0 ? "" : icons.get(0).getUrl();
        if (!TextUtils.isEmpty(iconUrl))
            Glide.with(this).load(iconUrl).into(icon);

        List<NativeFeeds.ImgBean> images = data.getNativead().getImg();
        String imageUrl = images == null || images.size() <= 0 ? "" : images.get(0).getUrl();
        if (!TextUtils.isEmpty(imageUrl))
            Glide.with(this).load(imageUrl).into(image);
        int imageHeight = Integer.valueOf(images.get(0).getH());
        int imageWidth = Integer.valueOf(images.get(0).getW());
        int imageRealWidth = ScreenUtil.getScreenWidth(this) - dp2px(this, 20);
        image.getLayoutParams().width = imageRealWidth;
        image.getLayoutParams().height = imageRealWidth * imageHeight / imageWidth;

        title.setText(data.getNativead().getTitle());
        desc.setText(data.getNativead().getDesc());
        rating.setText(data.getNativead().getRating() == null ? "0分" : data.getNativead().getRating() + "分");
        click.setText(data.getNativead().getButton() == null ? "ad click" : data.getNativead().getButton());
        click.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //点击的调用
                boolean clickSuccess = NativeManager.getInstance().onClick(NativeFeedsDemoActivity.this, data, statusChangeListener);
                Log.e(TAG, "onClick: " + clickSuccess);
            }
        });

        //曝光的调用
        NativeManager.getInstance().onExposure(data);
    }

    public static int dp2px(Context context, float dpVal) {
        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
                dpVal, context.getResources().getDisplayMetrics());
    }

    private NativeAdStatusChangeListener statusChangeListener = new NativeAdStatusChangeListener() {
        @Override
        public void onAdStatusChange(NativeAdStateData stateData) {
            switch (stateData.getDownloadType()) {
                case Config.NATIVE_AD_CLICK_TYPE_DOWNLOAD_PENDING:
                    Log.e(TAG, "onAdStatusChange: adId:" + stateData.getAdId() + ",等待下载" + stateData.getDownloadProgress());
                    break;
                case Config.NATIVE_AD_CLICK_TYPE_DOWNLOAD_RUNNING:
                    Log.e(TAG, "onAdStatusChange: adId:" + stateData.getAdId() + ",正在下载" + stateData.getDownloadProgress());
                    break;
                case Config.NATIVE_AD_CLICK_TYPE_DOWNLOAD_FAILED:
                    Log.e(TAG, "onAdStatusChange: adId:" + stateData.getAdId() + ",下载失败" + stateData.getDownloadProgress());
                    break;
                case Config.NATIVE_AD_CLICK_TYPE_DOWNLOAD_SUCCESS:
                    Log.e(TAG, "onAdStatusChange: adId:" + stateData.getAdId() + ",成功" + stateData.getDownloadProgress());
                    break;
                case Config.NATIVE_AD_CLICK_TYPE_DOWNLOAD_PAUSED:
                    Log.e(TAG, "onAdStatusChange: adId:" + stateData.getAdId() + ",暂停" + stateData.getDownloadProgress());
                    break;
            }
        }
    };
}