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
|
import com.sinata.xqmuse.dialog.ShareDialog
|
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)
|
setContentView(R.layout.activity_share)
|
UltimateBar.with(this)
|
.statusDark(true)
|
.create().immersionBar() //沉浸状态栏
|
val settings = webView.settings
|
settings.javaScriptEnabled = true
|
settings.javaScriptCanOpenWindowsAutomatically = true
|
settings.defaultTextEncodingName = "utf-8"
|
settings.domStorageEnabled = true
|
settings.setSupportZoom(true)
|
// settings.textZoom = 200
|
settings.useWideViewPort = true
|
settings.loadWithOverviewMode = true
|
settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING
|
webView.webChromeClient = object : WebChromeClient() {}
|
webView.webViewClient = object : WebViewClient() {}
|
webView.backgroundColor = 0
|
webView.background.alpha = 0
|
getShareInfo()
|
iv_back.setOnClickListener { finish() }
|
tv_action.setOnClickListener {
|
val shareDialog = ShareDialog()
|
shareDialog.arguments = bundleOf("isSave" to true)
|
shareDialog.callback = object :StringCallback{
|
override fun onResult(rst: String) {
|
if (rst == "wx"){
|
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,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("缺少文件存储权限")
|
}
|
}
|
}
|
}
|
shareDialog.show(supportFragmentManager,"share")
|
}
|
}
|
|
private fun getShareInfo(){
|
HttpManager.shareInfo().request(this){_,data->
|
this.qrcode = data?.qrCode?:""
|
this.poster = data?.poster?:""
|
data?.apply {
|
iv_code.setImageURI(qrCode)
|
val sHead =
|
"<html><head><meta name=\"viewport\" content=\"width=device-width, " + "initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes\" />" + "<style>img{max-width:100% !important;height:auto !important;}</style>" + "<style>body{max-width:100% !important;}</style>" + "</head><body>"
|
webView!!.loadDataWithBaseURL(
|
null,
|
sHead + rules,
|
"text/html",
|
"utf-8",
|
null
|
)
|
iv_share.setImageURI(poster)
|
//分享view
|
iv_poster.setImageURI(poster)
|
iv_share_code.setImageURI(qrCode)
|
}
|
}
|
}
|
|
}
|