package com.tejia.lijin.app.ui.dialog;
|
|
import android.Manifest;
|
import android.app.Activity;
|
import android.app.Dialog;
|
import android.app.ProgressDialog;
|
import android.content.Context;
|
import android.graphics.Bitmap;
|
import android.graphics.drawable.Drawable;
|
import android.net.Uri;
|
import android.os.Build;
|
import android.os.Environment;
|
import android.os.Handler;
|
import android.os.Message;
|
import androidx.annotation.NonNull;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.RecyclerView;
|
import android.view.Gravity;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.view.ViewGroup.LayoutParams;
|
import android.view.WindowManager;
|
import android.widget.BaseAdapter;
|
import android.widget.CheckBox;
|
import android.widget.CompoundButton;
|
import android.widget.ImageView;
|
import android.widget.RadioButton;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.bumptech.glide.Glide;
|
import com.wpc.library.util.common.DimenUtils;
|
import com.wpc.library.util.common.FileUtils;
|
import com.wpc.library.util.common.StringUtils;
|
import com.wpc.library.widget.MyGridView;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.ShoppingApi;
|
import com.tejia.lijin.app.callBack.GeneralSingelCallback;
|
import com.tejia.lijin.app.entity.share.ShareImageEntity;
|
import com.tejia.lijin.app.util.PermissionsActivity;
|
import com.tejia.lijin.app.util.PermissionsChecker;
|
import com.tejia.lijin.app.util.Tools;
|
import com.tejia.lijin.app.util.share.ShareImageUtil;
|
import com.tejia.lijin.app.util.umengCustomEvent.GoodsCustomEvent;
|
import com.ysh.wpc.appupdate.download.DownLoadFile;
|
|
import java.io.File;
|
import java.io.Serializable;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class ShareGoodsImgNativeDialog extends Dialog {
|
|
public final static int PLATFORM_WX = 0;
|
public final static int PLATFORM_WX_CIRCLE = 1;
|
public final static int PLATFORM_QQ = 2;
|
public final static int PLATFORM_QZONE = 3;
|
public final static int PLATFORM_SINA = 4;
|
|
public ShareGoodsImgNativeDialog(Context context) {
|
super(context);
|
}
|
|
public ShareGoodsImgNativeDialog(Context context, int theme) {
|
super(context, theme);
|
}
|
|
|
public static class Builder {
|
private Activity context;
|
private String title;
|
private String message;
|
private String sinaMessage;
|
private String url;
|
private Bitmap bitmap;
|
private String shareId;
|
private boolean isSelectionGoods = false;
|
private ProgressDialog pd;
|
private String type;
|
private String imageurl;
|
private boolean isGoods = false;
|
private String positiveButtonText;
|
private String negativeButtonText;
|
private View contentView;
|
private OnClickListener positiveButtonClickListener;
|
private OnClickListener negativeButtonClickListener;
|
private boolean footmark = true;//是否带有app分享标识
|
private boolean selectAll = false;
|
|
private ArrayList<ShareImageEntity> shareImages = null;
|
|
private PermissionsChecker mPermissionsChecker; // 权限检测器
|
private GeneralSingelCallback singelCallback;//通知activity 点击了微信
|
private MultiShareImageAdapter mMultiShareImageAdapter;
|
private ShapeLoadingDialog loadingDialog;
|
private String markDesc;//标记简介
|
|
public void setGeneralSingelCallback(GeneralSingelCallback callback) {
|
this.singelCallback = callback;
|
}
|
|
static final String[] PERMISSIONS = new String[]{
|
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
private static final int REQUEST_CODE = 0; // 请求码
|
|
private void startPermissionsActivity() {
|
PermissionsActivity.startActivityForResult(context, REQUEST_CODE, PERMISSIONS);
|
}
|
|
public Builder(Activity context) {
|
this.context = context;
|
}
|
|
public Builder setFootMark(boolean checked) {
|
this.footmark = checked;
|
return this;
|
}
|
|
public Builder setMessage(String message) {
|
this.message = message;
|
return this;
|
}
|
|
public Builder setSinaMessage(String message) {
|
this.sinaMessage = message;
|
return this;
|
}
|
|
public Builder setUrl(String Url) {
|
this.url = Url;
|
return this;
|
}
|
|
public Builder setBitmap(Bitmap bitmap) {
|
this.bitmap = bitmap;
|
return this;
|
}
|
|
public Builder setShareId(String shareId) {
|
this.shareId = shareId;
|
return this;
|
}
|
|
public Builder isSelectionGoods(boolean isSelectionGoods) {
|
this.isSelectionGoods = isSelectionGoods;
|
return this;
|
}
|
|
public Builder setLoading(ProgressDialog pd) {
|
this.pd = pd;
|
return this;
|
}
|
|
public Builder setShareType(String type) {
|
this.type = type;
|
return this;
|
}
|
|
public Builder setSelectAll(boolean selectAll) {
|
this.selectAll = selectAll;
|
return this;
|
}
|
|
/**
|
* Set the Dialog message from resource
|
*
|
* @return
|
*/
|
public Builder setMessage(int message) {
|
this.message = (String) context.getText(message);
|
return this;
|
}
|
|
/**
|
* Set the Dialog title from resource
|
*
|
* @param title
|
* @return
|
*/
|
public Builder setTitle(int title) {
|
this.title = (String) context.getText(title);
|
return this;
|
}
|
|
/**
|
* Set the Dialog title from String
|
*
|
* @param title
|
* @return
|
*/
|
|
public Builder setTitle(String title) {
|
this.title = title;
|
return this;
|
}
|
|
public Builder setContentView(View v) {
|
this.contentView = v;
|
return this;
|
}
|
|
public Builder setContentImage(String imageurl) {
|
this.imageurl = imageurl;
|
return this;
|
}
|
|
/**
|
* Set the positive button resource and it's listener
|
*
|
* @param positiveButtonText
|
* @return
|
*/
|
public Builder setPositiveButton(int positiveButtonText,
|
OnClickListener listener) {
|
this.positiveButtonText = (String) context
|
.getText(positiveButtonText);
|
this.positiveButtonClickListener = listener;
|
return this;
|
}
|
|
public Builder setPositiveButton(String positiveButtonText,
|
OnClickListener listener) {
|
this.positiveButtonText = positiveButtonText;
|
this.positiveButtonClickListener = listener;
|
return this;
|
}
|
|
public Builder setNegativeButton(int negativeButtonText,
|
OnClickListener listener) {
|
this.negativeButtonText = (String) context
|
.getText(negativeButtonText);
|
this.negativeButtonClickListener = listener;
|
return this;
|
}
|
|
public Builder setNegativeButton(String negativeButtonText,
|
OnClickListener listener) {
|
this.negativeButtonText = negativeButtonText;
|
this.negativeButtonClickListener = listener;
|
return this;
|
}
|
|
public Builder setMarkDesc(String markDesc) {
|
this.markDesc = markDesc;
|
return this;
|
}
|
|
/**
|
* 分享多张图
|
*
|
* @param imageList
|
* @return
|
*/
|
public Builder setShareImageList(ArrayList<ShareImageEntity> imageList) {
|
if (this.shareImages == null || this.shareImages.size() == 0)
|
this.shareImages = imageList;
|
else if (shareImages.size() != imageList.size()) {
|
this.shareImages = imageList;
|
} else {
|
for (int i = 0; i < shareImages.size(); i++) {//同步选中状态
|
imageList.get(i).setChecked(shareImages.get(i).isChecked());
|
}
|
this.shareImages.clear();
|
this.shareImages.addAll(imageList);
|
}
|
if (this.shareImages.size() > 0)
|
this.shareImages.get(0).setChecked(true);
|
if (mMultiShareImageAdapter != null)
|
mMultiShareImageAdapter.notifyDataSetChanged();
|
return this;
|
}
|
|
|
public ShareGoodsImgNativeDialog create() {
|
mPermissionsChecker = new PermissionsChecker(context);
|
loadingDialog = new ShapeLoadingDialog.Builder(context).build();
|
// loadingDialog.show();
|
LayoutInflater inflater = (LayoutInflater) context
|
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
// instantiate the dialog with the custom Theme
|
WindowManager wm = (WindowManager) context
|
.getSystemService(Context.WINDOW_SERVICE);
|
|
int width = wm.getDefaultDisplay().getWidth();
|
final ShareGoodsImgNativeDialog dialog = new ShareGoodsImgNativeDialog(context,
|
R.style.Dialog);
|
|
View layout = inflater.inflate(R.layout.share_goods_single_img_bottom_dialog,
|
null);
|
|
MyGridView gv_share = layout.findViewById(R.id.gv_share);
|
if (!StringUtils.isEmpty(type))
|
gv_share.setNumColumns(5);
|
final List<ShareType> list = new ArrayList<>();
|
|
ShareType info1 = new ShareType();
|
info1.setName("微信好友");
|
info1.setPlatform(PLATFORM_WX);
|
info1.setImg(R.drawable.ic_link_share_wchat);
|
ShareType info2 = new ShareType();
|
info2.setName("朋友圈");
|
info2.setPlatform(PLATFORM_WX_CIRCLE);
|
info2.setImg(R.drawable.selector_share_platform_wx_circle);
|
list.add(info1);
|
list.add(info2);
|
ShareType info3 = new ShareType();
|
info3.setName("QQ好友");
|
info3.setPlatform(PLATFORM_QQ);
|
info3.setImg(R.drawable.ic_link_share_qq);
|
ShareType info4 = new ShareType();
|
info4.setName("QQ空间");
|
info4.setPlatform(PLATFORM_QZONE);
|
info4.setImg(R.drawable.ic_link_share_qqzone);
|
list.add(info3);
|
list.add(info4);
|
ShareType info = new ShareType();
|
info.setName("新浪微博");
|
info.setPlatform(PLATFORM_SINA);
|
info.setImg(R.drawable.ic_link_share_sina);
|
list.add(info);
|
final ShareDialogAdapter adapter = new ShareDialogAdapter(list);
|
|
TextView tv_mark = layout.findViewById(R.id.tv_mark);
|
if (!StringUtils.isEmpty(markDesc)) {
|
tv_mark.setText(markDesc);
|
}
|
|
|
View imageListView = layout.findViewById(R.id.ll_share_images_content);
|
//多张图片分享设置-开始
|
if (!footmark && "single".equalsIgnoreCase(type) && shareImages.size() > 0) {
|
imageListView.setVisibility(View.VISIBLE);
|
RecyclerView recyclerView = imageListView.findViewById(R.id.rl_share_goods);
|
|
|
LinearLayoutManager manager = new LinearLayoutManager(context);
|
manager.setOrientation(LinearLayoutManager.HORIZONTAL);
|
recyclerView.setLayoutManager(manager);
|
|
|
final RadioButton rb_single = imageListView.findViewById(R.id.rb_single);
|
final RadioButton rb_all = imageListView.findViewById(R.id.rb_all);
|
Drawable drawable_news = context.getResources().getDrawable(R.drawable.selector_publish_delete);
|
drawable_news.setBounds(0, 0, DimenUtils.dip2px(context, 15), DimenUtils.dip2px(context, 15));
|
rb_single.setCompoundDrawables(drawable_news, null, null, null);
|
drawable_news = context.getResources().getDrawable(R.drawable.selector_publish_delete);
|
drawable_news.setBounds(0, 0, DimenUtils.dip2px(context, 15), DimenUtils.dip2px(context, 15));
|
rb_all.setCompoundDrawables(drawable_news, null, null, null);
|
// rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
|
// @Override
|
// public void onCheckedChanged(RadioGroup group, int checkedId) {
|
// if (checkedId == R.id.rb_single) {
|
//
|
// } else if (checkedId == R.id.rb_all) {
|
//
|
// }
|
// }
|
// });
|
|
rb_single.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
for (int i = 1; i < shareImages.size(); i++) {
|
shareImages.get(i).setChecked(false);
|
}
|
mMultiShareImageAdapter.notifyDataSetChanged();
|
rb_single.setChecked(true);
|
rb_all.setChecked(false);
|
list.get(1).setValid(true);
|
adapter.notifyDataSetChanged();
|
}
|
});
|
|
rb_all.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
for (ShareImageEntity entity : shareImages) {
|
entity.setChecked(true);
|
}
|
mMultiShareImageAdapter.notifyDataSetChanged();
|
rb_single.setChecked(false);
|
rb_all.setChecked(true);
|
list.get(1).setValid(false);
|
adapter.notifyDataSetChanged();
|
}
|
});
|
|
|
//设置多图展示
|
mMultiShareImageAdapter = new MultiShareImageAdapter(context.getApplicationContext(), shareImages, new MutiImageCheckBoxClickListener() {
|
@Override
|
public void click() {
|
int checkCount = 0;
|
for (ShareImageEntity entity : shareImages) {
|
if (entity.isChecked()) {
|
checkCount++;
|
}
|
}
|
if (checkCount == shareImages.size()) {
|
rb_all.setChecked(true);
|
rb_single.setChecked(false);
|
} else if (checkCount == 1) {
|
rb_single.setChecked(true);
|
rb_all.setChecked(false);
|
} else {
|
rb_single.setChecked(false);
|
rb_all.setChecked(false);
|
}
|
if (checkCount == 1) {
|
list.get(1).setValid(true);
|
} else
|
list.get(1).setValid(false);
|
adapter.notifyDataSetChanged();
|
}
|
});
|
recyclerView.setAdapter(mMultiShareImageAdapter);
|
if (selectAll) {
|
rb_all.performClick();
|
}
|
|
} else {
|
imageListView.setVisibility(View.GONE);
|
}
|
|
|
//多张图片分享-结束
|
|
|
gv_share.setAdapter(adapter);
|
|
dialog.addContentView(layout, new LayoutParams(
|
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
|
// set the cancel button
|
layout.findViewById(R.id.tv_dialog_cancel)
|
.setOnClickListener(new View.OnClickListener() {
|
public void onClick(View v) {
|
dialog.dismiss();
|
}
|
});
|
dialog.setContentView(layout);
|
|
WindowManager.LayoutParams params = dialog.getWindow()
|
.getAttributes();
|
params.gravity = Gravity.BOTTOM;
|
params.width = width;
|
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
|
dialog.getWindow().setAttributes(params);
|
dialog.setCanceledOnTouchOutside(true);
|
|
return dialog;
|
}
|
|
class ShareType implements Serializable {
|
int img;
|
String name;
|
int platform;
|
boolean valid = true;
|
|
public int getPlatform() {
|
return platform;
|
}
|
|
public void setPlatform(int platform) {
|
this.platform = platform;
|
}
|
|
public int getImg() {
|
return img;
|
}
|
|
public void setImg(int img) {
|
this.img = img;
|
}
|
|
public void setValid(boolean valid) {
|
this.valid = valid;
|
}
|
|
public String getName() {
|
return name;
|
}
|
|
public void setName(String name) {
|
this.name = name;
|
}
|
}
|
|
class ShareDialogAdapter extends BaseAdapter {
|
|
private List<ShareType> mList;
|
|
public ShareDialogAdapter(List<ShareType> list) {
|
mList = list;
|
}
|
|
@Override
|
public int getCount() {
|
return mList.size() == 0 ? 0 : mList.size();
|
}
|
|
@Override
|
public long getItemId(int position) {
|
return position;
|
}
|
|
@Override
|
public Object getItem(int position) {
|
return mList.get(position);
|
}
|
|
@Override
|
public View getView(int position, View view, ViewGroup parent) {
|
view = LayoutInflater.from(context).inflate(R.layout.item_share_link, null);
|
final ShareType info = mList.get(position);
|
final TextView tv = view.findViewById(R.id.tv_share_type);
|
tv.setEnabled(info.valid);
|
Drawable drawable = context.getResources().getDrawable(info.getImg());
|
drawable.setBounds(0, 0, DimenUtils.dip2px(context, 40), DimenUtils.dip2px(context, 40));
|
tv.setCompoundDrawables(null, drawable, null, null);
|
tv.setText(info.getName());
|
|
tv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
new Thread(new Runnable() {
|
@Override
|
public void run() {
|
if (type.equalsIgnoreCase("single")) {
|
GoodsCustomEvent.goodsDetailShareQrcodeOne(context, info.getName());
|
} else {
|
GoodsCustomEvent.goodsDetailShareQrcodeMany(context, info.getName());
|
}
|
if (singelCallback != null) {
|
int shareCount = 0;
|
if (shareImages != null)
|
for (ShareImageEntity entity : shareImages)
|
if (entity.isChecked())
|
shareCount++;
|
singelCallback.onSuccess(info.getPlatform(), shareCount);//回调activity 替换二维码
|
} else
|
shareImgs(info.getPlatform());
|
}
|
}).start();
|
|
}
|
});
|
return view;
|
}
|
}
|
|
/**
|
* 多张图片分享 platform--0 微信好友
|
* platform--1 朋友圈
|
* platform--2 QQ
|
* platform--3 新浪
|
*
|
* @param platfrom
|
*/
|
private List<File> files = new ArrayList<>();
|
String description = "";
|
String link = "";
|
String PACKAGE_NAME_WEI_XIN = "com.tencent.mm";
|
/**
|
* 微信7.0版本号,兼容处理微信7.0版本分享到朋友圈不支持多图片的问题
|
*/
|
private static final int VERSION_CODE_FOR_WEI_XIN_VER7 = 1380;
|
|
|
/**
|
* 分享的临时变量
|
*/
|
private ArrayList<ShareImageEntity> shareTempImgEntity = null;
|
|
private Handler shareHandle = new Handler() {
|
@Override
|
public void handleMessage(Message msg) {
|
if (pd != null && pd.isShowing())
|
pd.dismiss();
|
if (shareTempImgEntity == null || shareTempImgEntity.size() == 0)
|
return;
|
final int what = msg.what;
|
new Thread(new Runnable() {
|
@Override
|
public void run() {
|
ArrayList<Uri> uriList = new ArrayList<>();
|
for (ShareImageEntity entity : shareTempImgEntity) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
Uri uri = Tools.getImageContentUri(context, new File(entity.getFilePath()));
|
uriList.add(uri);
|
} else {
|
uriList.add(Uri.fromFile(new File(entity.getFilePath())));
|
}
|
}
|
|
switch (what) {
|
case PLATFORM_WX:
|
ShareImageUtil.shareWXPictureByIntent(context, uriList);
|
break;
|
case PLATFORM_WX_CIRCLE:
|
ShareImageUtil.shareWXCirclePictureByIntent(context, uriList);
|
break;
|
case PLATFORM_QQ:
|
ShareImageUtil.shareQQPictureByIntent(context, uriList);
|
break;
|
case PLATFORM_QZONE:
|
ShareImageUtil.shareQQZonePictureByIntent(context, uriList);
|
break;
|
case PLATFORM_SINA:
|
ShareImageUtil.shareSinaPictureByIntent(context, uriList);
|
break;
|
}
|
|
umStatistichandler.sendEmptyMessage(1);
|
}
|
}).start();
|
super.handleMessage(msg);
|
}
|
};
|
|
/**
|
* 准备分享图片的素材
|
*/
|
private void prepareShareImages(int platform, ArrayList<ShareImageEntity> shareImages) {
|
if (pd != null)
|
if (pd.isShowing())
|
pd.dismiss();
|
else
|
pd.show();
|
|
if (footmark)
|
shareImages = null;
|
//分享的临时目录
|
String path = Environment.getExternalStorageDirectory()
|
+ "/rebateshare";
|
final File storageDir = new File(path);
|
if (storageDir.isDirectory()) {
|
try {
|
File files[] = storageDir.listFiles();
|
for (int i = 0; i < files.length; i++) {
|
// deleteFolderFile(files[i].getAbsolutePath());
|
files[i].delete();
|
}
|
if (!storageDir.isDirectory()) {
|
storageDir.delete();
|
} else {
|
if (storageDir.listFiles().length == 0) {
|
storageDir.delete();
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
files.clear();
|
shareTempImgEntity = null;
|
if (shareImages == null || shareImages.size() == 0) {//单图
|
//单图分享
|
File file = Tools.saveBitmap(context, bitmap);
|
if (shareTempImgEntity == null)
|
shareTempImgEntity = new ArrayList<>();
|
shareTempImgEntity.add(new ShareImageEntity(file.getPath()));
|
shareHandle.sendEmptyMessage(platform);
|
|
return;
|
} else {//多图
|
ArrayList<ShareImageEntity> tempShareImages = new ArrayList<ShareImageEntity>();
|
tempShareImages.addAll(shareImages);
|
//缓存图片到本地
|
for (int i = 0; i < tempShareImages.size(); i++) {
|
if (!tempShareImages.get(i).isChecked())
|
continue;
|
String fileName = storageDir.getPath() + "/" + System.currentTimeMillis() + "_" + (long) (Math.random() * 10000000000L) + ".jpg";
|
ShareImageEntity img = tempShareImages.get(i);
|
if (img.getBitmap() != null) {
|
File file = Tools.saveBitmap(context, bitmap);
|
if (shareTempImgEntity == null)
|
shareTempImgEntity = new ArrayList<>();
|
shareTempImgEntity.add(new ShareImageEntity(file.getPath()));
|
tempShareImages.remove(i--);
|
} else if (!StringUtils.isEmpty(img.getFilePath())) {
|
//保存图片到本地
|
try {
|
File f = new File(img.getFilePath());
|
if (f.exists() && f.length() > 0) {
|
File targetFile = new File(fileName);
|
FileUtils.copyFile(f, targetFile);
|
if (targetFile.length() > 0) {
|
if (shareTempImgEntity == null)
|
shareTempImgEntity = new ArrayList<>();
|
shareTempImgEntity.add(new ShareImageEntity(targetFile.getPath()));
|
}
|
}
|
} finally {
|
tempShareImages.remove(i--);
|
}
|
}
|
}
|
|
if (tempShareImages.size() == 0) {
|
shareHandle.sendEmptyMessage(platform);
|
} else {
|
//下载网络图片
|
List<String> imgUrlList = new ArrayList<>();
|
List<String> filePathList = new ArrayList<>();
|
for (ShareImageEntity entity : tempShareImages) {
|
if (!entity.isChecked())
|
continue;
|
String fileName = storageDir.getPath() + "/" + System.currentTimeMillis() + "_" + (long) (Math.random() * 10000000000L) + ".jpg";
|
filePathList.add(fileName);
|
imgUrlList.add(entity.getUrl());
|
}
|
|
if (filePathList.size() > 0) {
|
Toast.makeText(context, "正在下载网络图片", Toast.LENGTH_SHORT).show();
|
try {
|
final int p = platform;
|
new DownLoadFile().downloadMultiImages(imgUrlList, filePathList, context.getApplicationContext(), new DownLoadFile.FileDownLoadListener() {
|
@Override
|
public void finish(List<File> fileList) {
|
//完成下载
|
if (shareTempImgEntity == null)
|
shareTempImgEntity = new ArrayList<>();
|
if (fileList != null)
|
for (File f : fileList) {
|
shareTempImgEntity.add(new ShareImageEntity(f.getPath()));
|
}
|
shareHandle.sendEmptyMessage(p);
|
}
|
|
@Override
|
public void process(int count) {
|
|
}
|
});
|
} catch (Exception e) {
|
e.printStackTrace();
|
if (pd != null && pd.isShowing())
|
pd.dismiss();
|
}
|
} else {
|
shareHandle.sendEmptyMessage(platform);
|
}
|
}
|
}
|
|
}
|
|
public void shareImgs(final int platfrom) {
|
int wchatAvilibleValue = Tools.isWeixinAvilible(context);
|
int qqAvilibleValue = Tools.isQQAvilible(context);
|
int sinaAvilibleValue = Tools.isSinaAvilible(context);
|
if (((platfrom == PLATFORM_WX || platfrom == PLATFORM_WX_CIRCLE) && (wchatAvilibleValue == 1 || wchatAvilibleValue == 2))
|
|| (platfrom == PLATFORM_QQ && (qqAvilibleValue == 1 || qqAvilibleValue == 2))
|
|| (platfrom == PLATFORM_SINA && (sinaAvilibleValue == 1 || sinaAvilibleValue == 2))) {
|
context.runOnUiThread(new Runnable() {
|
@Override
|
public void run() {
|
Toast.makeText(context, "未检测到第三方应用", Toast.LENGTH_SHORT).show();
|
}
|
});
|
} else {
|
prepareShareImages(platfrom, shareImages);
|
}
|
}
|
|
Handler umStatistichandler = new Handler() {
|
@Override
|
public void handleMessage(Message msg) {
|
super.handleMessage(msg);
|
ShoppingApi.addShareCount(context, shareId, type, null);
|
}
|
};
|
|
class MultiShareImageAdapter extends RecyclerView.Adapter<ViewHolder> implements View.OnClickListener {
|
private Context context;
|
private List<ShareImageEntity> imgList;
|
private LayoutInflater inflater;
|
private MutiImageCheckBoxClickListener clickListener;
|
|
public MultiShareImageAdapter(Context context, List<ShareImageEntity> imgList, MutiImageCheckBoxClickListener clickListener) {
|
this.context = context;
|
this.imgList = imgList;
|
inflater = LayoutInflater.from(context);
|
this.clickListener = clickListener;
|
}
|
|
@NonNull
|
@Override
|
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
View view = LayoutInflater.from(context).inflate(R.layout.item_share_images_select, parent, false);
|
ViewHolder viewHolder = new ViewHolder(view);
|
view.setOnClickListener(this);
|
return viewHolder;
|
}
|
|
@Override
|
public void onBindViewHolder(final @NonNull ViewHolder holder, int position) {
|
final ShareImageEntity imgInfo = imgList.get(position);
|
if (position == 0) {
|
holder.checkBox.setEnabled(false);
|
holder.checkBox.setChecked(true);
|
imgList.get(position).setChecked(true);
|
} else {
|
holder.checkBox.setEnabled(true);
|
// holder.checkBox.setOnClickListener(new View.OnClickListener() {
|
// @Override
|
// public void onClick(View v) {
|
// if (!imgInfo.isChecked()) {
|
// imgInfo.setChecked(true);
|
// } else {
|
// imgInfo.setChecked(false);
|
// }
|
// if (clickListener != null) {
|
// clickListener.click();
|
// }
|
// }
|
// });
|
holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
@Override
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
int position = holder.getAdapterPosition();
|
if (isChecked) {
|
imgList.get(holder.getAdapterPosition()).setChecked(true);
|
} else
|
imgList.get(holder.getAdapterPosition()).setChecked(false);
|
|
if (clickListener != null) {
|
clickListener.click();
|
}
|
}
|
});
|
|
|
holder.iv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (holder.getLayoutPosition() == 0) {
|
return;
|
}
|
if (holder.checkBox.isChecked()) {
|
holder.checkBox.setChecked(false);
|
} else {
|
holder.checkBox.setChecked(true);
|
}
|
}
|
});
|
holder.checkBox.setEnabled(true);
|
if (imgInfo.isChecked()) {
|
holder.checkBox.setChecked(true);
|
} else
|
holder.checkBox.setChecked(false);
|
}
|
|
Drawable drawable = context.getResources().getDrawable(R.drawable.selector_check_1);
|
drawable.setBounds(0, 0, DimenUtils.dip2px(context, 15), DimenUtils.dip2px(context, 15));
|
holder.checkBox.setCompoundDrawables(drawable, null, null, null);
|
if (imgInfo.getBitmap() != null) {
|
holder.iv.setImageBitmap(imgInfo.getBitmap());
|
} else if (!StringUtils.isEmpty(imgInfo.getFilePath())) {
|
Glide.with(context).load(new File(imgInfo.getFilePath())).into(holder.iv);
|
} else {
|
Glide.with(context).load(imgInfo.getUrl()).into(holder.iv);
|
}
|
holder.itemView.setTag(position);
|
}
|
|
@Override
|
public int getItemCount() {
|
return imgList.size();
|
}
|
|
@Override
|
public void onClick(View v) {
|
|
}
|
}
|
|
interface MutiImageCheckBoxClickListener {
|
public void click();
|
}
|
|
class ViewHolder extends RecyclerView.ViewHolder {
|
ImageView iv;
|
CheckBox checkBox;
|
|
public ViewHolder(View itemView) {
|
super(itemView);
|
iv = itemView.findViewById(R.id.iv_picture);
|
checkBox = itemView.findViewById(R.id.cb_choice);
|
}
|
}
|
|
/**
|
* 多张图片选择器
|
*/
|
}
|
}
|