package com.fangxinxing.xxfxx.ui.mine import android.Manifest import android.app.Activity import android.graphics.Bitmap import android.os.Environment import android.provider.MediaStore import android.util.Log import androidx.core.view.drawToBitmap import com.fangxinxing.xxfxx.R import com.fangxinxing.xxfxx.base.MyBaseActivity import com.fangxinxing.xxfxx.bean.ShareBean import com.fangxinxing.xxfxx.netUtls.Api import com.fangxinxing.xxfxx.netUtls.callNetGet import com.fangxinxing.xxfxx.ui.DialogUtil import com.fangxinxing.xxfxx.utils.Cache.CacheKey import com.fangxinxing.xxfxx.utils.ImageUtils import com.fangxinxing.xxfxx.utils.QRCodeUtil import com.scwang.smartrefresh.layout.util.SmartUtil.dp2px import com.tbruyelle.rxpermissions2.RxPermissions import com.umeng.socialize.ShareAction import com.umeng.socialize.ShareContent import com.umeng.socialize.UMShareListener import com.umeng.socialize.bean.SHARE_MEDIA import com.umeng.socialize.media.UMImage import com.umeng.socialize.media.UMWeb import kotlinx.android.synthetic.main.activity_qr_code.* import kotlinx.android.synthetic.main.pop_share.view.* import org.jetbrains.anko.toast import java.io.File import java.io.FileOutputStream import java.util.HashMap class QrCodeActivity : MyBaseActivity() { override fun setContentView() { setContentView(R.layout.activity_qr_code) } private var codeImage:Bitmap? = null override fun initView() { setTitleText("二维码") // tv_Right.text = "分享二维码" // var bit = QRCodeUtil.createQRCodeBitmap("driverId:"+CacheKey.getUserId(), dp2px(220f), dp2px(220f)) // iv_qr_code.setImageBitmap(bit) callNetGet(this, Api.personCode, HashMap()){ val stringBean = gson.fromJson(it, ShareBean::class.java) codeImage = ImageUtils.base64ToBitmap(stringBean.data.img) iv_mini_code.setImageBitmap(codeImage) } } override fun setOnclick() { // tv_Right.setOnClickListener { // showShareDialog() // } iv_qr_code.setOnLongClickListener { try { var bit = QRCodeUtil.createQRCodeBitmap("driverId:"+ CacheKey.getUserId(), dp2px(220f), dp2px(220f)) val copyPath = getExternalFilesDir(Environment.DIRECTORY_DCIM)!!.absolutePath + "/" + System.currentTimeMillis() + ".png" val file = File(copyPath) if (!file.exists()) { file.createNewFile() } val fors = FileOutputStream(file) bit!!.compress(Bitmap.CompressFormat.PNG, 0, fors) fors.flush() fors.close() MediaStore.Images.Media.insertImage(this.contentResolver, file.absolutePath, copyPath, null); // val uri: Uri = Uri.fromFile(file) // context.sendBroadcast(Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri)) toast("保存成功") } catch (e: Exception) { toast("保存失败") } return@setOnLongClickListener false } iv_mini_code.setOnLongClickListener { val rrx = RxPermissions(this).request(Manifest.permission.WRITE_EXTERNAL_STORAGE).subscribe { if (it) try { val copyPath = getExternalFilesDir(Environment.DIRECTORY_DCIM)!!.absolutePath + "/" + System.currentTimeMillis() + ".png" val file = File(copyPath) if (!file.exists()) { file.createNewFile() } val fors = FileOutputStream(file) iv_mini_code.drawToBitmap()?.compress(Bitmap.CompressFormat.PNG, 0, fors) fors.flush() fors.close() MediaStore.Images.Media.insertImage(this.contentResolver, file.absolutePath, copyPath, null); toast("保存成功") } catch (e: Exception) { toast("保存失败") } } return@setOnLongClickListener false } } var content = "放心行司机端是一款为网约车和出租车量身打造的打车应用" var shareUrl = Api.strShareDriver+"?driverId=" fun showShareDialog() { var dialog = DialogUtil.getDialog(mContext, R.layout.pop_share) var view = DialogUtil.getView(dialog) view.tv_item_right_share.setOnClickListener { dialog!!.dismiss() } view.view_close_share.setOnClickListener { dialog!!.dismiss() } view.ll_wechat.setOnClickListener { share( this, content, "放心行司机端", shareUrl+ CacheKey.getUserId(), UMImage(mContext, R.drawable.icon), SHARE_MEDIA.WEIXIN ) dialog!!.dismiss() } view.ll_wechat_q.setOnClickListener { share( this, content, "放心行司机端", shareUrl+ CacheKey.getUserId(), UMImage(mContext, R.drawable.icon), SHARE_MEDIA.WEIXIN_CIRCLE ) dialog!!.dismiss() } view.ll_qq_share.setOnClickListener { share( this, content, "放心行司机端", shareUrl+ CacheKey.getUserId(), UMImage(mContext, R.drawable.icon), SHARE_MEDIA.QQ ) dialog!!.dismiss() } } open fun share( context: Activity, content: String?, title: String?, tagUrl: String?, image: UMImage?, platform: SHARE_MEDIA? ) { val web = UMWeb(tagUrl, title, content, image) val shareContent = ShareContent() shareContent.mMedia = web ShareAction(context).setPlatform(platform) .setShareContent(shareContent) .setCallback(object : UMShareListener { override fun onResult(p0: SHARE_MEDIA?) { Log.d("TAG", p0.toString()) } override fun onCancel(p0: SHARE_MEDIA?) { } override fun onError(p0: SHARE_MEDIA?, p1: Throwable?) { Log.d("TAG", p1!!.message.toString()) } override fun onStart(p0: SHARE_MEDIA?) { } }) .share() } override fun onDestroy() { super.onDestroy() codeImage?.recycle() codeImage = null } }