package com.fangxinxing.xxfxx.ui.mine
|
|
import android.Manifest
|
import android.annotation.SuppressLint
|
import android.content.ClipData
|
import android.content.ClipboardManager
|
import android.graphics.Bitmap
|
import android.os.Environment
|
import android.provider.MediaStore
|
import android.text.TextUtils
|
import android.view.View
|
import android.webkit.*
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import cn.sinata.xldutils.utils.*
|
import com.fangxinxing.xxfxx.FilterDateRangeDialog
|
import com.fangxinxing.xxfxx.R
|
import com.fangxinxing.xxfxx.base.InnerJsInterface
|
import com.fangxinxing.xxfxx.base.MyBaseActivity
|
import com.fangxinxing.xxfxx.bean.IncomeBean
|
import com.fangxinxing.xxfxx.bean.ShareBean
|
import com.fangxinxing.xxfxx.bean.StringBean
|
import com.fangxinxing.xxfxx.netUtls.Api
|
import com.fangxinxing.xxfxx.netUtls.callNet
|
import com.fangxinxing.xxfxx.netUtls.callNetGet
|
import com.fangxinxing.xxfxx.netUtls.getMapByAny
|
import com.fangxinxing.xxfxx.utils.clickDelay
|
import com.fangxinxing.xxfxx.utils.visible
|
import com.fangxinxing.xxfxx.ui.DialogUtil
|
import com.fangxinxing.xxfxx.ui.adapter.ShareIncomeAdapter
|
import com.fangxinxing.xxfxx.utils.ImageUtils
|
import com.tbruyelle.rxpermissions2.RxPermissions
|
import kotlinx.android.synthetic.main.activity_order_count.*
|
import kotlinx.android.synthetic.main.dialog_h5.view.*
|
import kotlinx.android.synthetic.main.dialog_share_code.view.*
|
import org.jetbrains.anko.toast
|
import java.io.File
|
import java.io.FileOutputStream
|
|
class ShareIncomeActivity : MyBaseActivity() {
|
override fun setContentView() {
|
setContentView(R.layout.activity_order_count)
|
}
|
|
private var page = 1
|
private val adapter = ShareIncomeAdapter()
|
private var codeImage:Bitmap? = null
|
|
override fun initView() {
|
setTitleText("推广收入统计")
|
setRightText("推广说明")
|
tv_1.text = "推广总收入"
|
tv_2.text = "当日推广收入"
|
tv_3.text = "本月推广收入"
|
tv_4.text = "推广收入数据明细"
|
tv_total.text = "合计推广收入:"
|
tv_share.visible()
|
rv_list.layoutManager = LinearLayoutManager(this)
|
rv_list.adapter = adapter
|
smart_refresh_layout.setOnRefreshListener {
|
page = 1
|
getData()
|
}
|
smart_refresh_layout.setOnLoadMoreListener {
|
page++
|
getData()
|
}
|
smart_refresh_layout.autoRefresh()
|
}
|
|
private fun getData() {
|
val map = getMapByAny()
|
map["pageNumber"] = page
|
map["pageSize"] = 20
|
val date = tv_data.text.toString()
|
if (date.isNotEmpty())
|
map["time"] = date
|
callNet(Api.queryOrderPromotionFromDriver,map){
|
val orderCountBean = gson.fromJson<IncomeBean>(it, IncomeBean::class.java)
|
tv_order_num.text = "¥%.2f".format(orderCountBean.data.allOrderMoney)
|
tv_order_today.text = "¥%.2f".format(orderCountBean.data.todayOrderMoney)
|
tv_order_month.text = "¥%.2f".format(orderCountBean.data.monthOrderMoney)
|
val s = "合计推广收入:¥%.2f".format(orderCountBean.data.searchMoney)
|
tv_total.text = SpanBuilder.content(s).colorSpan(this,7,s.length,R.color.main_yellow_shen).build()
|
if (page == 1){
|
adapter.data.clear()
|
smart_refresh_layout.finishRefresh()
|
}else if (orderCountBean.data.driverOrderDataNextVos.records.isEmpty())
|
smart_refresh_layout.finishLoadMoreWithNoMoreData()
|
else
|
smart_refresh_layout.finishLoadMore()
|
adapter.data.addAll(orderCountBean.data.driverOrderDataNextVos.records)
|
adapter.notifyDataSetChanged()
|
}
|
}
|
|
override fun setOnclick() {
|
tv_data.clickDelay {
|
val idCardDateRangeDialog = FilterDateRangeDialog()
|
idCardDateRangeDialog.setCallback(object : FilterDateRangeDialog.Callback{
|
override fun onOk(s: String) {
|
tv_data.text = s
|
smart_refresh_layout.autoRefresh()
|
}
|
})
|
idCardDateRangeDialog.show(supportFragmentManager,"date")
|
}
|
setRightButton {
|
val map = getMapByAny()
|
callNet(Api.getPromotionInfo,map){
|
val stringBean = gson.fromJson<StringBean>(it, StringBean::class.java)
|
val dialog = DialogUtil.getDialog(this, R.layout.dialog_h5)
|
val view = DialogUtil.getView(dialog)
|
setWebview(view.webView,stringBean.data)
|
view.iv_close.setOnClickListener {
|
dialog.dismiss()
|
}
|
}
|
}
|
tv_share.clickDelay {
|
callNetGet(this,
|
Api.personCode,HashMap()){
|
val stringBean = gson.fromJson<ShareBean>(it, ShareBean::class.java)
|
val dialog = DialogUtil.getDialog(this, R.layout.dialog_share_code)
|
val view = DialogUtil.getView(dialog)
|
view.tv_line.text = stringBean.data.url_link
|
codeImage = ImageUtils.base64ToBitmap(stringBean.data.img)
|
view.iv_code.setImageBitmap(codeImage)
|
view.bg.setOnClickListener {
|
dialog.dismiss()
|
codeImage?.recycle()
|
codeImage = null
|
}
|
view.tv_copy.setOnClickListener {
|
val clipboard: ClipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
|
val clip: ClipData = ClipData.newPlainText("label", stringBean.data.url_link)
|
clipboard.setPrimaryClip(clip)
|
toast("复制成功")
|
dialog.dismiss()
|
codeImage?.recycle()
|
codeImage = null
|
}
|
view.tv_save.setOnClickListener {
|
val rx = 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)
|
codeImage!!.compress(Bitmap.CompressFormat.PNG, 0, fors)
|
fors.flush()
|
fors.close()
|
MediaStore.Images.Media.insertImage(this.contentResolver, file.absolutePath, copyPath, null);
|
toast("保存成功")
|
dialog.dismiss()
|
codeImage?.recycle()
|
codeImage = null
|
} catch (e: Exception) {
|
toast("保存失败")
|
}
|
}else
|
toast("缺少文件访问权限")
|
}
|
|
}
|
}
|
}
|
}
|
|
|
|
@SuppressLint("SetJavaScriptEnabled")
|
private fun setWebview(webView:WebView,content:String) {
|
val settings = webView!!.settings
|
settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
|
settings.defaultTextEncodingName = "utf-8" //设置编码格式
|
settings.useWideViewPort = true //设置此属性,可任意比例缩放
|
settings.loadWithOverviewMode = true // 页面支持缩放:
|
settings.builtInZoomControls = true
|
settings.useWideViewPort = false //将图片调整到适合webview的大小
|
settings.setSupportZoom(false) //支持缩放
|
settings.supportMultipleWindows() //多窗口
|
settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK //关闭webview中缓存
|
settings.allowFileAccess = true //设置可以访问文件
|
settings.setNeedInitialFocus(true) //当webview调用requestFocus时为webview设置节点
|
settings.javaScriptCanOpenWindowsAutomatically = true //支持通过JS打开新窗口
|
settings.loadsImagesAutomatically = true //支持自动加载图片
|
settings.javaScriptEnabled = true
|
settings.domStorageEnabled = true
|
webView.isScrollContainer = false
|
webView.isScrollbarFadingEnabled = false
|
webView.scrollBarStyle = View.SCROLLBARS_OUTSIDE_OVERLAY
|
webView.addJavascriptInterface(InnerJsInterface(), "HTMLOUT")
|
webView.webChromeClient = object : WebChromeClient() {
|
override fun onReceivedTitle(
|
view: WebView?,
|
title: String?
|
) {
|
super.onReceivedTitle(view, title)
|
setTitle(title)
|
}
|
}
|
webView.webViewClient = object : WebViewClient() {
|
override fun onPageFinished(
|
view: WebView?,
|
url: String?
|
) {
|
super.onPageFinished(view, url)
|
webView.loadUrl("javascript:HTMLOUT.processHTML(document.documentElement.outerHTML);")
|
}
|
|
override fun onPageStarted(
|
view: WebView?,
|
url: String?,
|
favicon: Bitmap?
|
) {
|
super.onPageStarted(view, url, favicon)
|
}
|
|
override fun shouldOverrideUrlLoading(
|
view: WebView?,
|
url: String?
|
): Boolean {
|
Utils.systemErr(url)
|
if (!TextUtils.isEmpty(url)) {
|
webView!!.loadUrl(url)
|
}
|
return true
|
}
|
|
override fun shouldInterceptRequest(
|
view: WebView?,
|
request: WebResourceRequest?
|
): WebResourceResponse? {
|
return super.shouldInterceptRequest(view, request)
|
}
|
}
|
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 + content, "text/html", "utf-8", null)
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
codeImage?.recycle()
|
codeImage = null
|
}
|
}
|