221 lines
8.6 KiB
Java
221 lines
8.6 KiB
Java
package com.xscm.modulemain.dialog;
|
||
|
||
import static android.view.View.GONE;
|
||
import static android.view.View.VISIBLE;
|
||
import static com.blankj.utilcode.util.ActivityUtils.startActivity;
|
||
|
||
import android.content.ClipData;
|
||
import android.content.ClipboardManager;
|
||
import android.content.Context;
|
||
import android.content.Intent;
|
||
import android.graphics.Bitmap;
|
||
import android.util.Log;
|
||
import android.view.Gravity;
|
||
import android.view.View;
|
||
import android.view.Window;
|
||
import android.view.WindowManager;
|
||
|
||
import com.blankj.utilcode.util.ImageUtils;
|
||
import com.blankj.utilcode.util.ToastUtils;
|
||
import com.xscm.modulemain.activity.WebViewActivity;
|
||
import com.xscm.moduleutil.R;
|
||
import com.xscm.moduleutil.base.CommonAppContext;
|
||
import com.xscm.moduleutil.base.WebUrlConstants;
|
||
import com.xscm.moduleutil.bean.CircleListBean;
|
||
import com.xscm.moduleutil.databinding.RoomDialogShareBinding;
|
||
import com.xscm.moduleutil.utils.BaseBottomSheetDialog;
|
||
import com.xscm.moduleutil.utils.SpUtil;
|
||
import com.xscm.moduleutil.utils.wx.WeChatShareUtils;
|
||
import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;
|
||
|
||
|
||
/**
|
||
* 房间分享弹窗
|
||
*/
|
||
public class ShareDialog extends BaseBottomSheetDialog<RoomDialogShareBinding> {
|
||
public WeChatShareUtils weChatShareUtils;
|
||
private Context mContext;
|
||
private String mcontent;
|
||
private String murl;
|
||
private String ids;
|
||
private int types;//1:用户 2:房间;3:动态
|
||
private String mUserId;
|
||
private CircleListBean bean;
|
||
|
||
public interface OnShareDataListener {
|
||
void onShareDataLoaded(String id);
|
||
}
|
||
|
||
private OnShareDataListener listener;
|
||
|
||
public void setOnShareDataListener(OnShareDataListener listener) {
|
||
this.listener = listener;
|
||
}
|
||
|
||
private static final String TAG = "ShareDialog";
|
||
|
||
public ShareDialog(Context context, String content, String url, String id, int type,String userId,CircleListBean bean) {
|
||
super(context);
|
||
this.mcontent = content;
|
||
this.murl = url;
|
||
this.mContext = getContext();
|
||
this.ids = id;
|
||
this.types = type;
|
||
this.mUserId = userId;
|
||
this.bean = bean;
|
||
Log.i(TAG, "(Start)启动了===========================ShareDialog");
|
||
iniv();
|
||
}
|
||
|
||
private void iniv() {
|
||
if (types == 1) {//1是分享动态
|
||
|
||
} else if (types == 2) {//分享相册
|
||
mBinding.tvQq.setVisibility(GONE);
|
||
mBinding.tvQqq.setVisibility(GONE);
|
||
mBinding.rl.setVisibility(GONE);
|
||
}else if (types == 4){
|
||
mBinding.tvJub.setVisibility(GONE);
|
||
mBinding.tvCopy.setVisibility(GONE);
|
||
}
|
||
if (mUserId.equals(SpUtil.getUserId()+"")){
|
||
mBinding.shanc.setVisibility(VISIBLE);
|
||
}else {
|
||
mBinding.shanc.setVisibility(GONE);
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public int getLayout() {
|
||
return R.layout.room_dialog_share;
|
||
}
|
||
|
||
@Override
|
||
public void initView() {
|
||
Window window = getWindow();
|
||
WindowManager.LayoutParams lp = window.getAttributes();
|
||
lp.dimAmount = 0.4f;
|
||
window.setAttributes(lp);
|
||
window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
|
||
window.setGravity(Gravity.BOTTOM);
|
||
mBinding.tvQq.setOnClickListener(this::onClick);
|
||
mBinding.tvWx.setOnClickListener(this::onClick);
|
||
mBinding.tvWxq.setOnClickListener(this::onClick);
|
||
mBinding.tvQqq.setOnClickListener(this::onClick);
|
||
mBinding.tvClean.setOnClickListener(this::onClick);
|
||
mBinding.tvCopy.setOnClickListener(this::onClick);
|
||
mBinding.tvJub.setOnClickListener(this::onClick);
|
||
mBinding.shanc.setOnClickListener(this::onClick);
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
@Override
|
||
public void initData() {
|
||
weChatShareUtils = WeChatShareUtils.getInstance(getContext());
|
||
// if (mUserId.equals(SpUtil.getUserId()+"")){
|
||
// mBinding.shanc.setVisibility(GONE);
|
||
// }else {
|
||
// mBinding.shanc.setVisibility(VISIBLE);
|
||
// }
|
||
}
|
||
|
||
public void onClick(View view) {
|
||
int id = view.getId();
|
||
// String appName = CommonAppContext.getInstance().getResources().getString(R.string.app_name);
|
||
|
||
|
||
if (R.id.tv_qq == id) {
|
||
// AppLogUtil.reportAppLog(AppLogEvent.D0108, "share_way", "QQ分享");
|
||
// ShareUtil.shareWeb((Activity) view.getContext(), URLConstants.SHARE, String.format("我在%s玩呢,大家都在玩,快来展示您的精彩", appName)
|
||
// , appName, "", R.mipmap.ic_launcher_new, SHARE_MEDIA.QQ);
|
||
} else if (R.id.tv_wx == id) {
|
||
// AppLogUtil.reportAppLog(AppLogEvent.D0108, "share_way", "微信分享");
|
||
// ShareUtil.shareWeb((Activity) view.getContext(), URLConstants.SHARE, String.format("我在%s玩呢,大家都在玩,快来展示您的精彩", appName)
|
||
// , appName, "", R.mipmap.ic_launcher_new, SHARE_MEDIA.WEIXIN);
|
||
fun_handleShare(SendMessageToWX.Req.WXSceneSession);
|
||
} else if (R.id.tv_wxq == id) {
|
||
fun_handleShare1(SendMessageToWX.Req.WXSceneTimeline);
|
||
} else if (R.id.tv_qqq == id) {
|
||
|
||
} else if (R.id.shanc == id) {
|
||
if (listener != null) {
|
||
listener.onShareDataLoaded(ids);
|
||
}
|
||
} else if (R.id.tv_jub == id) {
|
||
String fromId = "";
|
||
if (types == 3) {
|
||
fromId = bean.getId()+"";
|
||
}else if (types == 1){
|
||
fromId = bean.getUser_id()+"";
|
||
}
|
||
Intent intent = new Intent(getContext(), WebViewActivity.class);
|
||
intent.putExtra("url", String.format(WebUrlConstants.INSTANCE.getWEB_REPORT_URL(), SpUtil.getToken(),types,fromId));
|
||
intent.putExtra("title", "举报");
|
||
startActivity(intent);
|
||
} else if (R.id.tv_copy == id) {
|
||
ClipboardManager clipboard = (ClipboardManager)mContext.getSystemService( Context.CLIPBOARD_SERVICE);
|
||
ClipData clip = ClipData.newPlainText("链接",bean.getShare_url() );
|
||
if (clipboard != null) {
|
||
clipboard.setPrimaryClip(clip);
|
||
com.hjq.toast.ToastUtils.show("复制成功");
|
||
} else {
|
||
com.hjq.toast.ToastUtils.show("复制失败");
|
||
}
|
||
}
|
||
|
||
dismiss();
|
||
}
|
||
|
||
// todo fun_handleShare 分享小程序类型 (只支持分享给微信好友)
|
||
private void fun_handleShare(int scene) {
|
||
if (weChatShareUtils.isSupportWX()) {
|
||
String appName = mContext.getPackageManager().getApplicationLabel(mContext.getApplicationInfo()).toString();
|
||
if (types == 2){
|
||
com.xscm.moduleutil.utils.ImageUtils.loadBitmap(murl, new com.xscm.moduleutil.utils.ImageUtils.onLoadBitmap() {
|
||
@Override
|
||
public void onReady(Bitmap resource) {
|
||
weChatShareUtils.sharePic(resource, scene);
|
||
}
|
||
});
|
||
}else {
|
||
String shortContent = mcontent.length() > 20 ? mcontent.substring(0, 20) : mcontent;
|
||
String desc = shortContent;
|
||
String title = appName;
|
||
String url = murl;
|
||
Bitmap bitmap = ImageUtils.drawable2Bitmap(mContext.getResources().getDrawable(R.mipmap.ic_launcher));
|
||
weChatShareUtils.shareUrl(url, title, bitmap, desc, scene);
|
||
}
|
||
} else {
|
||
ToastUtils.showShort("手机上微信版本不支持分享功能");
|
||
}
|
||
|
||
}
|
||
|
||
private void fun_handleShare1(int scene) {
|
||
if (weChatShareUtils.isSupportWX()) {
|
||
String appName = mContext.getPackageManager().getApplicationLabel(mContext.getApplicationInfo()).toString();
|
||
if (types == 2) {
|
||
com.xscm.moduleutil.utils.ImageUtils.loadBitmap(murl, new com.xscm.moduleutil.utils.ImageUtils.onLoadBitmap() {
|
||
@Override
|
||
public void onReady(Bitmap resource) {
|
||
weChatShareUtils.sharePic(resource, scene);
|
||
}
|
||
});
|
||
}else {
|
||
String shortContent = mcontent.length() > 20 ? mcontent.substring(0, 20) : mcontent;
|
||
String desc = shortContent;
|
||
String title = appName;
|
||
String url = murl;
|
||
// Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(),R.mipmap.ic_launcher);
|
||
Bitmap bitmap = ImageUtils.drawable2Bitmap(mContext.getResources().getDrawable(R.mipmap.ic_launcher));
|
||
weChatShareUtils.shareUrl(url, title, bitmap, desc, scene);
|
||
}
|
||
} else {
|
||
ToastUtils.showShort("手机上微信版本不支持分享功能");
|
||
}
|
||
}
|
||
}
|