package com.mooxygen.user.wxapi

import android.content.Intent
import android.os.Bundle
import com.narutohuo.xindazhou.core.log.ILog
import com.umeng.socialize.UMShareAPI
import com.umeng.socialize.weixin.view.WXCallbackActivity

/**
 * 微信分享回调 Activity
 * 
 * 按照友盟官方示例，直接继承 WXCallbackActivity
 * 
 * 注意：
 * - 包名必须是微信开放平台配置的包名（com.mooxygen.user.wxapi）
 * - 微信 SDK 要求此 Activity 必须在应用包名的 wxapi 子包下
 * - 虽然文件在 base-core 模块中，但包名使用微信开放平台配置的包名
 * - 友盟的 WXCallbackActivity 已经处理了所有回调逻辑，我们只需要继承即可
 * 
 * 为了确保回调被正确处理，我们重写 onActivityResult 并添加日志
 */
class WXEntryActivity : WXCallbackActivity() {
    
    private val tag = "WXEntryActivity"
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        ILog.d(tag, "onCreate: 微信回调 Activity 已启动")
    }
    
    override fun onNewIntent(intent: Intent?) {
        super.onNewIntent(intent)
        ILog.d(tag, "onNewIntent: 收到新的 Intent")
        setIntent(intent) // 更新 Intent，确保后续能获取到最新数据
    }
    
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        ILog.d(tag, "onActivityResult: requestCode=$requestCode, resultCode=$resultCode")
        
        // 友盟的 WXCallbackActivity 应该已经处理了回调
        // 但为了确保，我们再次调用 UMShareAPI.onActivityResult()
        // 这样可以确保回调被正确传递到 ShareProxyActivity
        try {
            UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data)
            ILog.d(tag, "onActivityResult: 已调用 UMShareAPI.onActivityResult()")
        } catch (e: Exception) {
            ILog.e(tag, "onActivityResult: 处理回调失败", e)
        }
    }
    
    override fun onDestroy() {
        super.onDestroy()
        ILog.d(tag, "onDestroy: 微信回调 Activity 已销毁")
    }
}

