package com.weikou.beibeivideo.ui.recommend;
|
|
import android.app.Activity;
|
import android.app.Notification;
|
import android.app.NotificationChannel;
|
import android.app.NotificationManager;
|
import android.content.Context;
|
import android.content.DialogInterface;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.graphics.BitmapFactory;
|
import android.graphics.Color;
|
import android.os.Build;
|
import android.os.Handler;
|
import android.os.Message;
|
import androidx.core.app.NotificationCompat;
|
import androidx.viewpager.widget.PagerAdapter;
|
import android.util.Log;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.ViewGroup;
|
import android.view.ViewGroup.LayoutParams;
|
import android.widget.ImageView;
|
import android.widget.ImageView.ScaleType;
|
import android.widget.Toast;
|
|
import com.bumptech.glide.Glide;
|
import com.lcjian.library.util.ManifestDataUtil;
|
import com.lcjian.library.util.glide.GlideRoundTransform;
|
import com.weikou.beibeivideo.entity.HomeAd;
|
import com.weikou.beibeivideo.ui.media.VideoDetailActivity2;
|
import com.weikou.beibeivideo.util.CustomShareDialog;
|
import com.weikou.beibeivideo.util.downutil.DownFiles;
|
import com.weikou.beibeivideo.R;
|
|
import org.json.JSONObject;
|
|
import java.util.Iterator;
|
import java.util.List;
|
|
public class RecommendTopAdapter extends PagerAdapter {
|
|
private List<HomeAd> mHomeAds;
|
|
private Activity mContext;
|
|
private boolean isReview;
|
|
public RecommendTopAdapter(List<HomeAd> homeAds, Activity context, boolean isReview) {
|
super();
|
this.mHomeAds = homeAds;
|
this.mContext = context;
|
this.isReview = isReview;
|
}
|
|
@Override
|
public int getCount() {
|
return mHomeAds == null ? 0 : mHomeAds.size();
|
}
|
|
@Override
|
public Object instantiateItem(ViewGroup container, final int position) {
|
ImageView view = new ImageView(container.getContext());
|
view.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
|
LayoutParams.MATCH_PARENT));
|
view.setScaleType(ScaleType.FIT_XY);
|
view.setOnClickListener(new OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
Intent intent = null;
|
final SharedPreferences sp = mContext.getSharedPreferences("user", Context.MODE_PRIVATE);
|
// final List<ApplicationInfo> list = MarketUtils.filterInstalledPkgs(context, context.getPackageName());
|
// if (isReview && (!sp.getBoolean("isReview", false))) {//去好评
|
// AppMarket.mateAppMarket(mContext);
|
// } else {
|
if (mHomeAds.get(position).getLinkType() == 1) {
|
intent = new Intent(v.getContext(),
|
VideoDetailActivity2.class);
|
intent.putExtra("video_info", mHomeAds.get(position)
|
.getVideo());
|
intent.putExtra("from", "homeAd");
|
} else if (mHomeAds.get(position).getLinkType() == 5) {
|
try {
|
JSONObject object = new JSONObject(mHomeAds
|
.get(position).getParams()
|
.replace("\\", ""));
|
String thumb = object.optString("thumb");
|
String title = object.optString("title");
|
String desc = object.optString("desc");
|
String path = object.optString("path");
|
String username = object.optString("username");
|
String url = object.optString("url");
|
|
CustomShareDialog.Builder builder = new CustomShareDialog.Builder(mContext);
|
builder.setMessage(desc);
|
builder.setUrl(url);
|
builder.setContentImage(thumb);
|
builder.setTitle(title);
|
builder.setPath(path);
|
builder.setUserName(username);
|
builder.setNegativeButton("取消分享", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog, int which) {
|
dialog.dismiss();
|
}
|
});
|
builder.create().show();
|
} catch (Exception e) {
|
|
}
|
|
} else {
|
try {
|
intent = new Intent(v.getContext(), Class
|
.forName(mHomeAds.get(position).getClazz()));
|
JSONObject object = new JSONObject(mHomeAds
|
.get(position).getParams()
|
.replace("\\", ""));
|
if (mHomeAds.get(position).getClazz().contains("FXBrowserActivity") && object.optString("url").endsWith(".apk")) {
|
startDownLoadFile(object.optString("url"));
|
return;
|
}
|
if (mHomeAds.get(position).getParams() != null) {
|
@SuppressWarnings("unchecked")
|
Iterator<String> its = object.keys();
|
while (its.hasNext()) {
|
String key = its.next();
|
String value = object.optString(key);
|
intent.putExtra(key, value);
|
intent.putExtra("isPush", true);
|
}
|
}
|
} catch (ClassNotFoundException e) {
|
e.printStackTrace();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
}
|
if (intent != null)
|
v.getContext().startActivity(intent);
|
}
|
|
// }
|
});
|
// imageLoader.displayImage(mHomeAds.get(position).getPicture(), view, options);
|
Glide.with(mContext).load(mHomeAds.get(position).getPicture()).transform(new GlideRoundTransform(mContext,6)).placeholder(R.drawable.shape_video_list_cover_placeholder).error(R.drawable.shape_video_list_cover_placeholder)
|
.into(view);
|
container.addView(view);
|
return view;
|
}
|
|
@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 mHomeAds.get(position).getTitle();
|
}
|
|
private NotificationManager manager;
|
private Notification notif;
|
private Notification.Builder oBuilder;
|
private NotificationCompat.Builder builder;
|
int j = -1;
|
|
private void startDownLoadFile(String url) {
|
new DownFiles(mContext, new DownFiles.IProgress() {
|
|
@Override
|
public void getProgress(int p) {
|
// stub
|
if (p > 99) {
|
handler.sendEmptyMessage(1);
|
Log.i("DownFiles", "getProgress下载进度:" + p);
|
} else {
|
if (manager == null) {
|
Toast.makeText(mContext, "文件已经开始下载",
|
Toast.LENGTH_SHORT).show();
|
manager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
|
String id = "UMENG_CHANNEL";
|
String description = ManifestDataUtil.getAppMetaData(mContext, id);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
int importance = NotificationManager.IMPORTANCE_HIGH;
|
NotificationChannel mChannel = new NotificationChannel(id, "123", importance);
|
mChannel.setDescription(description);
|
mChannel.enableLights(true);
|
mChannel.setLightColor(Color.RED);
|
mChannel.enableVibration(true);
|
mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
|
manager.createNotificationChannel(mChannel);
|
oBuilder = new Notification.Builder(mContext, id);
|
oBuilder.setContentTitle("影视大全")
|
.setSmallIcon(R.drawable.ic_launcher)
|
.setLargeIcon(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_launcher))
|
.setContentText("热门应用下载")
|
.setAutoCancel(true)
|
.build();
|
} else {
|
builder = new NotificationCompat.Builder(mContext);
|
builder.setContentTitle("影视大全")
|
.setContentText("热门应用下载")
|
.setSmallIcon(R.drawable.ic_launcher)
|
.setOngoing(true);//无效
|
}
|
}
|
|
Message msg = handler.obtainMessage();
|
if (j != p) {
|
msg.what = 0;
|
msg.arg1 = p;
|
handler.sendMessage(msg);
|
}
|
j = p;
|
}
|
}
|
}).execute(url);
|
}
|
|
private Handler handler = new Handler() {
|
@Override
|
public void handleMessage(Message msg) {
|
super.handleMessage(msg);
|
switch (msg.what) {
|
case 0:
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
oBuilder.setContentText(msg.arg1 + "%");
|
notif = oBuilder.build();
|
} else {
|
builder.setContentText(msg.arg1 + "%");
|
notif = builder.build();
|
}
|
manager.notify(0, notif);
|
break;
|
case 1:
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
oBuilder.setContentText("下载完成");
|
notif = oBuilder.build();
|
} else {
|
builder.setContentText("下载完成");
|
notif = builder.build();
|
}
|
manager.notify(0, notif);
|
j = 100;
|
manager.cancelAll();
|
break;
|
default:
|
break;
|
}
|
}
|
};
|
|
}
|