lmw
2025-04-24 718f31c92e2029d05260810435a2c70cef6e6ce5
app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt
@@ -1,11 +1,18 @@
package com.sinata.xqmuse.ui.mine
import android.Manifest
import android.graphics.Bitmap
import android.os.Bundle
import android.os.Environment
import android.provider.MediaStore
import android.util.Log
import android.webkit.WebChromeClient
import android.webkit.WebSettings
import android.webkit.WebViewClient
import androidx.core.os.bundleOf
import androidx.core.view.drawToBitmap
import cn.sinata.xldutils.activity.BaseActivity
import cn.sinata.xldutils.utils.BitmapUtils
import com.github.zackratos.ultimatebar.UltimateBar
import com.share.utils.ShareUtils
import com.sinata.xqmuse.R
@@ -13,13 +20,23 @@
import com.sinata.xqmuse.network.Apis
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.request
import com.sinata.xqmuse.utils.Const
import com.sinata.xqmuse.utils.interfaces.StringCallback
import com.tbruyelle.rxpermissions2.RxPermissions
import com.umeng.socialize.bean.SHARE_MEDIA
import com.ypx.imagepicker.utils.PBitmapUtils
import kotlinx.android.synthetic.main.activity_share.*
import kotlinx.android.synthetic.main.layout_share_img.*
import kotlinx.android.synthetic.main.layout_share_img.view.*
import org.jetbrains.anko.backgroundColor
import org.jetbrains.anko.toast
import java.io.File
import java.io.FileOutputStream
class ShareActivity:BaseActivity() {
    private val userId by lazy { intent.getStringExtra("userId") }
    private var qrcode = ""
    private var poster = ""
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
@@ -49,11 +66,32 @@
            shareDialog.callback = object :StringCallback{
                override fun onResult(rst: String) {
                    if (rst == "wx"){
                        ShareUtils.share(this@ShareActivity,SHARE_MEDIA.WEIXIN,"分享内容","分享标题",Apis.SHARE_APP.format(userId),null,"")
                        ShareUtils.share(this@ShareActivity,SHARE_MEDIA.WEIXIN,Const.SHARE.SHARE_CONTENT,Const.SHARE.SHARE_TITLE,Apis.SHARE_APP.format(userId),null,"")
                    }else if (rst == "circle"){
                        ShareUtils.share(this@ShareActivity,SHARE_MEDIA.WEIXIN_CIRCLE,"分享内容","分享标题",Apis.SHARE_APP.format(userId),null,"")
                        ShareUtils.share(this@ShareActivity,SHARE_MEDIA.WEIXIN_CIRCLE,Const.SHARE.SHARE_CONTENT,Const.SHARE.SHARE_TITLE,Apis.SHARE_APP.format(userId),null,"")
                    }else{
                        RxPermissions(this@ShareActivity).request(Manifest.permission.WRITE_EXTERNAL_STORAGE).subscribe {
                            if (it)
                                try {
                                    toast("图片生成中…")
                                    val copyPath = PBitmapUtils.getPickerFileDirectory(this@ShareActivity).absolutePath  + "/" + System.currentTimeMillis() + ".png"
                                    val file = File(copyPath)
                                    if (!file.exists()) {
                                        file.createNewFile()
                                    }
                                    val fors = FileOutputStream(file)
                                    layout_share.drawToBitmap().compress(Bitmap.CompressFormat.PNG, 0, fors)
                                    fors.flush()
                                    fors.close()
                                    MediaStore.Images.Media.insertImage(this@ShareActivity.contentResolver, file.absolutePath, copyPath, null);
                                    toast("保存成功")
                                } catch (e: Exception) {
                                    Log.e(Const.Tag, e.message ?:"")
                                    toast("保存失败")
                                }
                            else
                                toast("缺少文件存储权限")
                        }
                    }
                }
            }
@@ -63,6 +101,8 @@
    private fun getShareInfo(){
        HttpManager.shareInfo().request(this){_,data->
            this.qrcode = data?.qrCode?:""
            this.poster = data?.poster?:""
            data?.apply {
                iv_code.setImageURI(qrCode)
                val sHead =
@@ -75,6 +115,9 @@
                    null
                )
                iv_share.setImageURI(poster)
                //分享view
                iv_poster.setImageURI(poster)
                iv_share_code.setImageURI(qrCode)
            }
        }
    }