package com.tagmae.tsgame_erwang;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Toast;

import com.google.gson.Gson;
import com.tagmae.tsgame_erwang.utils.Base64ImageUtil;
import com.tsgame.tsgame_niuniu.simcpux.bean.sharetypeBean;
import com.tsgame.tsgame_niuniu.util.QQIntentShareUtil;

import java.io.File;
import java.io.FileOutputStream;

/**
 * QQ分享助手类 - 不依赖QQ SDK，使用Intent实现
 */
public class QQIntentShareHelper {

    /**
     * 执行QQ分享
     *
     * @param context  上下文
     * @param jsonData 分享数据JSON字符串
     */
    public static void doQQShare(Context context, String jsonData) {
        try {
            // 初始化QQ分享工具
            QQIntentShareUtil qqIntentShareUtil = QQIntentShareUtil.getInstance(context);

            // 解析JSON数据
            Gson gson = new Gson();
            sharetypeBean bean = gson.fromJson(jsonData, sharetypeBean.class);

            // 获取分享类型和目标平台
            String type = bean.getType();
            String scene = bean.getSharefriend();


//
//            if (target == null || target.isEmpty()) {
//                target = "qq"; // 默认分享到QQ好友
//            }

            // 显示开始分享提示
            //Toast.makeText(context, "正在分享到QQ", Toast.LENGTH_SHORT).show();
            shareToQQ(context, qqIntentShareUtil, type, bean);
            // 根据目标平台执行不同的分享操作
//            if ("2".equals(scene)) {
//                // 分享到QQ空间
//                shareToQZone(context, qqIntentShareUtil, type, bean);
//            } else {
//                // 分享到QQ好友
//                shareToQQ(context, qqIntentShareUtil, type, bean);
//            }
        } catch (Exception e) {
            e.printStackTrace();
            //Toast.makeText(context, "QQ分享出错: " + e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }

    /**
     * 分享到QQ好友
     */
    private static void shareToQQ(Context context, QQIntentShareUtil qqIntentShareUtil, String type, sharetypeBean bean) {
        // 设置分享回调
        qqIntentShareUtil.setShareCallback(new QQIntentShareUtil.QQShareCallback() {
            @Override
            public void onSuccess() {
//                ((Activity) context).runOnUiThread(() ->
//                        Toast.makeText(context, "分享到QQ成功", Toast.LENGTH_SHORT).show()
//                );
            }

            @Override
            public void onError(int code, String msg) {
//                ((Activity) context).runOnUiThread(() ->
//                        Toast.makeText(context, "分享到QQ失败: " + msg, Toast.LENGTH_SHORT).show()
//                );
            }

            @Override
            public void onCancel() {
//                ((Activity) context).runOnUiThread(() ->
//                        Toast.makeText(context, "分享到QQ已取消", Toast.LENGTH_SHORT).show()
//                );
            }
        });

        // 根据分享类型执行不同的分享操作
        if ("1".equals(type)) {
            StringBuilder sb = new StringBuilder();
            String title = bean.getTitle();
            String description = bean.getDescription();
            if (!TextUtils.isEmpty(bean.getTitle())) {
                sb.append(title).append("\n\n");
            }
            if (!TextUtils.isEmpty(description)) {
                sb.append(description).append("\n\n");
            }
            String text = sb.toString().trim();
            // 纯文本分享
            qqIntentShareUtil.shareTextToQQ((Activity) context, text);
        } else if ("2".equals(type)) {
            // 图片分享
//            String description = bean.getDescription();
//            //captureAndShareToQQ((Activity) context);
//            //Base64ImageUtil.base64ToImageFile((Activity) context,description, null);
//            Bitmap bitmap = Base64ImageUtil.base64ToBitmap(description);
//            qqIntentShareUtil.shareBitmapToQQ((Activity) context,bitmap,false);
//            bitmap.recycle();

            // 图片分享 - 使用Canvas截图
            GlobalWebViewHelper.getCanvasBase64(new WebViewScreenshotUtil.CanvasToBase64Callback() {
                @Override
                public void onSuccess(String canvasBase64) {
                    // 使用Canvas截图的base64数据
                    Bitmap bitmap = Base64ImageUtil.base64ToBitmap(canvasBase64);
                    qqIntentShareUtil.shareBitmapToQQ((Activity) context,bitmap,false);
                    bitmap.recycle();
                }

                @Override
                public void onError(String error) {
                    // Canvas截图失败，回退到原有的图片数据
                    // String imagebitmapString = bean.getDescription();
                    // weChatShareUtil.shareImage(
                    //         (Activity) context,
                    //         imagebitmapString,  // 回退到原有数据
                    //         scene
                    // );
                }
            });
        } else {
            // 网页链接分享
            qqIntentShareUtil.shareWebPageToQQ(
                    (Activity) context,
                    bean.getTitle(),
                    bean.getDescription(),
                    "",
                    "",
                    false // 不是QQ空间
            );
        }
    }

    /**
     * 分享到QQ空间
     */
    private static void shareToQZone(Context context, QQIntentShareUtil qqIntentShareUtil, String type, sharetypeBean bean) {
        // 设置分享回调
        qqIntentShareUtil.setShareCallback(new QQIntentShareUtil.QQShareCallback() {
            @Override
            public void onSuccess() {
//                ((Activity) context).runOnUiThread(() ->
//                        Toast.makeText(context, "分享到QQ空间成功", Toast.LENGTH_SHORT).show()
//                );
            }

            @Override
            public void onError(int code, String msg) {
//                ((Activity) context).runOnUiThread(() ->
//                        Toast.makeText(context, "分享到QQ空间失败: " + msg, Toast.LENGTH_SHORT).show()
//                );
            }

            @Override
            public void onCancel() {
//                ((Activity) context).runOnUiThread(() ->
//                        Toast.makeText(context, "分享到QQ空间已取消", Toast.LENGTH_SHORT).show()
//                );
            }
        });

        // 根据分享类型执行不同的分享操作
        if ("1".equals(type)) {
            // 纯文本分享
            StringBuilder sb = new StringBuilder();
            String title = bean.getTitle();
            String description = bean.getDescription();
            if (!TextUtils.isEmpty(bean.getTitle())) {
                sb.append(title).append("\n\n");
            }
            if (!TextUtils.isEmpty(description)) {
                sb.append(description).append("\n\n");
            }
            String text = sb.toString().trim();
            qqIntentShareUtil.shareTextToQZone((Activity) context, text);
        } else if ("2".equals(type)) {
            // 图片分享
            String description = bean.getDescription();
            Bitmap bitmap = Base64ImageUtil.base64ToBitmap(description);
            if (bitmap != null) {
                qqIntentShareUtil.shareBitmapToQQ((Activity) context, bitmap, true); // true表示QQ空间
                bitmap.recycle();
            } else {
                // 如果图片处理失败，回退到纯文本分享
                String title = bean.getTitle();
                qqIntentShareUtil.shareTextToQZone((Activity) context, title != null ? title : "");
            }
        } else {
            // 网页链接分享
            qqIntentShareUtil.shareWebPageToQQ(
                    (Activity) context,
                    bean.getTitle(),
                    bean.getDescription(),
                    "",
                    "",
                    true // 是QQ空间
            );
        }
    }
}

