| | |
| | | package com.sinata.xqmuse.ui.mine |
| | | |
| | | import androidx.recyclerview.widget.GridLayoutManager |
| | | import android.webkit.WebChromeClient |
| | | import android.webkit.WebSettings |
| | | import android.webkit.WebViewClient |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.utils.SpanBuilder |
| | | import cn.sinata.xldutils.visible |
| | | import com.sinata.xqmuse.R |
| | | import com.sinata.xqmuse.network.HttpManager |
| | | import com.sinata.xqmuse.network.request |
| | | import com.sinata.xqmuse.ui.TransparentStatusBarActivity |
| | | import com.sinata.xqmuse.ui.course.adapter.MedalAdapter |
| | | import kotlinx.android.synthetic.main.activity_level.* |
| | | import org.jetbrains.anko.backgroundColor |
| | | |
| | | class LevelActivity : TransparentStatusBarActivity() { |
| | | override fun setContentView() = R.layout.activity_level |
| | | |
| | | private val count by lazy { intent.getIntExtra("count",0) } |
| | | |
| | | private val level = arrayListOf("新人","青铜达人","白银达人","黄金达人","钻石达人","大师达人","王者达人") |
| | | private val levelCount = arrayListOf(0,10,30,60,90,120,240) |
| | | private val gotList = arrayListOf<String>() |
| | | private val adapter = MedalAdapter(gotList) |
| | | |
| | | override fun initClick() { |
| | | iv_back.setOnClickListener { finish() } |
| | | tv_rule.setOnClickListener { |
| | | |
| | | } |
| | | } |
| | | |
| | | override fun initView() { |
| | | val levelS = "LV%d.%s".format(getLevel(),level[getLevel()-1]) |
| | | tv_level.text = SpanBuilder(levelS).size(levelS.indexOf("."),levelS.length,16).build() |
| | | tv_count.text = "打卡次数:${count}" |
| | | if (getLevel() != 7){ |
| | | tv_next.visible() |
| | | tv_next.text = "再打卡%d次,可升级%s".format(levelCount[getLevel()]-count,level[getLevel()]) |
| | | } |
| | | rv_medal.layoutManager = GridLayoutManager(this,4) |
| | | rv_medal.adapter = adapter |
| | | gotList.addAll(level.take(getLevel())) |
| | | adapter.notifyDataSetChanged() |
| | | titleBar.gone() |
| | | 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 |
| | | getInfo() |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 1 新人 |
| | | 2 青铜达人:打卡10次。 |
| | | 3 白银达人:打卡30次。 |
| | | 4 黄金达人:打卡60次。 |
| | | 5 钻石达人:打卡90次。 |
| | | 6 大师达人:打卡120次。 |
| | | 7 王者达人:打卡240次。 |
| | | */ |
| | | private fun getLevel() = when(count){ |
| | | in 0..9-> 1 |
| | | in 10..29-> 2 |
| | | in 30..59-> 3 |
| | | in 60..89-> 4 |
| | | in 90..119-> 5 |
| | | in 120..239-> 6 |
| | | else -> 7 |
| | | private fun getInfo() { |
| | | HttpManager.healingLevel().request(this) { _, data -> |
| | | iv_level.setImageURI(data?.levelIcon) |
| | | val s = "当前等级 ${data?.growthValue}/${data?.nextLevel}" |
| | | tv_current.text = SpanBuilder(s).bold(4,s.indexOf("/")).build() |
| | | tv_next.text = "你离下一等级还差${data?.differenceLevel}经验值,加油!" |
| | | 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 + data?.content, |
| | | "text/html", |
| | | "utf-8", |
| | | null |
| | | ) |
| | | mProgressBar.progress = (data?.growthValue?:0)*100/(data?.nextLevel?:100) |
| | | } |
| | | } |
| | | } |