package com.weikou.wpc.superad.banner.adapter;
|
|
import android.app.AlertDialog;
|
import android.app.Dialog;
|
import android.content.Context;
|
import android.content.DialogInterface;
|
import android.content.Intent;
|
import android.graphics.drawable.Drawable;
|
import android.os.Bundle;
|
import android.support.annotation.NonNull;
|
import android.support.annotation.Nullable;
|
import android.support.v4.view.PagerAdapter;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.ViewGroup;
|
import android.widget.RelativeLayout;
|
|
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.request.target.SimpleTarget;
|
import com.bumptech.glide.request.transition.Transition;
|
import com.loopj.android.http.JsonHttpResponseHandler;
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
import com.weikou.wpc.superad.BrowserActivity;
|
import com.weikou.wpc.superad.api.BannerAPI;
|
import com.weikou.wpc.superad.api.BannerConstant;
|
import com.weikou.wpc.superad.banner.Superbanner;
|
import com.weikou.wpc.superad.banner.entity.BannerContent;
|
import com.weikou.wpc.superad.service.DownLoadFileService;
|
import com.weikou.wpc.superad.util.PxUtils;
|
import com.weikou.wpc.superad.widget.BannerLayout;
|
|
import java.util.HashMap;
|
import java.util.List;
|
|
public class BannerAdapter extends PagerAdapter {
|
|
HashMap<String, String> map = new HashMap<>();
|
private Context context;
|
private List<BannerContent> list;
|
private boolean delete;
|
|
public BannerAdapter(List<BannerContent> list, Context context,
|
boolean delete, int height) {
|
super();
|
this.delete = delete;
|
this.context = context;
|
this.list = list;
|
bannerHeight = height;
|
}
|
|
@Override
|
public int getCount() {
|
return list == null ? 0 : list.size();
|
}
|
|
public void getPosition() {
|
|
}
|
|
public void setBannerHeight(int height) {
|
bannerHeight = height;
|
}
|
|
private int bannerHeight = 0;
|
|
@Override
|
public Object instantiateItem(final ViewGroup container, final int position) {
|
final BannerLayout bannerView = new BannerLayout(container.getContext());
|
BannerContent info = list.get(position);
|
final BannerContent mInfo = info;
|
if (info.getType() == 1) {
|
if (bannerHeight > 0) {
|
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(
|
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
bannerView.iv_banner_full_img.setLayoutParams(params2);
|
} else {
|
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(
|
ViewGroup.LayoutParams.MATCH_PARENT, PxUtils.dpToPx(60,
|
context));
|
bannerView.iv_banner_full_img.setLayoutParams(params2);
|
}
|
bannerView.ll_img_and_text.setVisibility(View.GONE);
|
bannerView.rl_only_img.setVisibility(View.VISIBLE);
|
if (delete) {
|
bannerView.iv_banner_close.setVisibility(View.VISIBLE);
|
} else {
|
bannerView.iv_banner_close.setVisibility(View.GONE);
|
}
|
// SimpleTarget<Bitmap> target = new SimpleTarget<Bitmap>() {
|
// @Override
|
// public void onResourceReady(
|
// Bitmap bitmap,
|
// @SuppressWarnings("rawtypes") GlideAnimation glideAnimation) {
|
// bannerView.iv_banner_full_img.setImageBitmap(bitmap);
|
// }
|
// };
|
try {
|
if (info.getImg().contains("http:")) {
|
// Glide.with(context).load(info.getImg() + "").asBitmap().fitCenter()
|
// .into(target);
|
ImageLoader.getInstance().displayImage(info.getImg() + "", bannerView.iv_banner_full_img);
|
} else {
|
// Glide.with(context)
|
// .load(BannerConstant.HOST + info.getImg() + "")
|
// .asBitmap().fitCenter().into(target);
|
ImageLoader.getInstance().displayImage(BannerConstant.HOST + info.getImg() + "", bannerView.iv_banner_full_img);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
} else if (info.getType() == 2) {
|
bannerView.ll_img_and_text.setVisibility(View.VISIBLE);
|
bannerView.rl_only_img.setVisibility(View.GONE);
|
if (delete) {
|
bannerView.iv_banner_close.setVisibility(View.VISIBLE);
|
} else {
|
bannerView.iv_banner_close.setVisibility(View.GONE);
|
}
|
// Glide.with(context).load(info.getIcon() + "").crossFade()
|
// .into(bannerView.iv_img);
|
bannerView.tv_title.setText(info.getTitle() + "");
|
bannerView.tv_description.setText(info.getDesc());
|
if (!(info.getDownimg() != null || info.getDownimg().length() == 0)) {
|
bannerView.iv_banner_download.setVisibility(View.VISIBLE);
|
Glide.with(context).load(info.getDownimg())
|
.into(bannerView.iv_banner_download);
|
} else {
|
bannerView.iv_banner_download.setVisibility(View.GONE);
|
}
|
|
|
SimpleTarget<Drawable> target = new SimpleTarget<Drawable>() {
|
|
@Override
|
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
|
bannerView.iv_img.setImageDrawable(resource);
|
}
|
};
|
Glide.with(context).load(info.getImg() + "").into(target);
|
}
|
|
bannerView.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
if (mInfo.isNotify()) {
|
DialogInterface.OnClickListener dialogOnclicListener = new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog, int which) {
|
|
switch (which) {
|
case Dialog.BUTTON_POSITIVE:
|
if (map.get(mInfo.getId()) == null
|
|| map.get(mInfo.getId()) == "") {
|
updateInfo("3", mInfo);
|
map.put(mInfo.getId(), "asda");
|
}
|
if (mInfo.getLinkType() == 1) {// ����
|
try {
|
Intent intent = new Intent(context,
|
DownLoadFileService.class);
|
context.stopService(intent);
|
} catch (Exception e) {
|
}
|
try {
|
Bundle bundle = new Bundle();
|
bundle.putString("downloadurl",
|
mInfo.getLinkUrl());
|
Intent intent = new Intent(context,
|
DownLoadFileService.class);
|
intent.putExtras(bundle);
|
context.startService(intent);
|
} catch (Exception e) {
|
}
|
} else if (mInfo.getLinkType() == 2) {// ��ҳ
|
Intent intent = new Intent(context,
|
BrowserActivity.class);
|
intent.putExtra("url", mInfo.getLinkUrl());
|
context.startActivity(intent);
|
}
|
break;
|
case Dialog.BUTTON_NEGATIVE:
|
break;
|
}
|
}
|
};
|
// dialog参数设置
|
AlertDialog.Builder builder = new AlertDialog.Builder(
|
context); // 先得到构造器
|
builder.setTitle("插件下载提示"); // 设置标题
|
builder.setMessage("是否确认下载插件?"); // 设置内容
|
builder.setPositiveButton("确认", dialogOnclicListener);
|
builder.setNegativeButton("取消", dialogOnclicListener);
|
builder.create().show();
|
} else {
|
|
if (map.get(mInfo.getId()) == null
|
|| map.get(mInfo.getId()) == "") {
|
updateInfo("3", mInfo);
|
map.put(mInfo.getId(), "asda");
|
}
|
if (mInfo.getLinkType() == 1) {// ����
|
try {
|
Intent intent = new Intent(context,
|
DownLoadFileService.class);
|
context.stopService(intent);
|
} catch (Exception e) {
|
}
|
try {
|
Bundle bundle = new Bundle();
|
bundle.putString("downloadurl", mInfo.getLinkUrl());
|
Intent intent = new Intent(context,
|
DownLoadFileService.class);
|
intent.putExtras(bundle);
|
context.startService(intent);
|
} catch (Exception e) {
|
}
|
} else if (mInfo.getLinkType() == 2) {// ��ҳ
|
Intent intent = new Intent(context,
|
BrowserActivity.class);
|
intent.putExtra("url", mInfo.getLinkUrl());
|
context.startActivity(intent);
|
}
|
}
|
}
|
});
|
bannerView.iv_banner_close.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
container.removeAllViews();
|
}
|
});
|
|
container.addView(bannerView);
|
return bannerView;
|
}
|
|
@Override
|
public void destroyItem(ViewGroup container, int position, Object object) {
|
container.removeView((View) object);
|
}
|
|
@Override
|
public boolean isViewFromObject(View view, Object object) {
|
return view == object;
|
}
|
|
@Override
|
public CharSequence getPageTitle(int position) {
|
return "";
|
// return mHomeAds.get(position).getTitle();
|
}
|
|
/**
|
* 更新网络请求
|
*/
|
private void updateInfo(String type, BannerContent info) {
|
BannerAPI.updateInfo(context, type, info.getId(), Superbanner.bannerid,
|
new JsonHttpResponseHandler());
|
}
|
}
|