Files
yusheng-android/MainModule/src/main/java/com/xscm/modulemain/dialog/ShareDialog.java
2025-11-18 18:28:16 +08:00

221 lines
8.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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("手机上微信版本不支持分享功能");
}
}
}