package com.driver.emanagercar.ui.base.Local
|
|
import android.annotation.SuppressLint
|
import android.os.Bundle
|
import android.text.method.HideReturnsTransformationMethod
|
import android.text.method.PasswordTransformationMethod
|
import android.view.View
|
import android.webkit.*
|
import android.widget.EditText
|
import android.widget.ImageView
|
import android.widget.TextView
|
import cn.sinata.xldutils.utils.clickDelay
|
import cn.sinata.xldutils.utils.textColor
|
import com.kuanzhai.driver.R
|
import com.kuanzhai.driver.base.BaseEvent
|
import com.kuanzhai.driver.base.InnerJsInterface
|
import com.kuanzhai.driver.base.MyBaseActivity
|
import com.kuanzhai.driver.bean.AgreeBean
|
import com.kuanzhai.driver.netUtls.Api
|
import com.kuanzhai.driver.netUtls.callNet
|
import com.kuanzhai.driver.netUtls.getMapByAny
|
import com.kuanzhai.driver.ui.DialogUtil
|
import com.kuanzhai.driver.utils.Cache.CacheKey
|
import com.trello.rxlifecycle3.android.ActivityEvent
|
import io.reactivex.Observable
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
import io.reactivex.disposables.Disposable
|
import io.reactivex.schedulers.Schedulers
|
import kotlinx.android.synthetic.main.item_ys.view.*
|
import org.greenrobot.eventbus.EventBus
|
import java.util.concurrent.TimeUnit
|
|
abstract class BaseLoginActivity : MyBaseActivity() {
|
|
var maxTime = 60 //配置倒计时时间
|
|
|
/***
|
* 点击眼睛执行操作
|
*/
|
fun showEye(imageView: ImageView, editText: EditText) {
|
imageView.isSelected = !imageView.isSelected
|
if (imageView.isSelected) {
|
editText.transformationMethod = HideReturnsTransformationMethod.getInstance() //密码可见
|
// editText.inputType = InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
|
} else {
|
editText.transformationMethod = PasswordTransformationMethod.getInstance() //密码不可见
|
// editText.inputType = InputType.TYPE_TEXT_VARIATION_PASSWORD
|
}
|
editText.setSelection(editText.text.length)
|
}
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
showYsDialog()
|
}
|
|
private var timeDisposable: Disposable? = null
|
@SuppressLint("SetTextI18n")
|
public fun refreshTime(textView: TextView) {
|
if (null != timeDisposable && !timeDisposable!!.isDisposed) {
|
timeDisposable!!.dispose()
|
}
|
timeDisposable = Observable
|
.interval(1, TimeUnit.SECONDS)
|
.take(maxTime.toLong())
|
.subscribeOn(Schedulers.computation())
|
.observeOn(AndroidSchedulers.mainThread())
|
.compose(bindUntilEvent(ActivityEvent.DESTROY))
|
.subscribe { aLong ->
|
if (aLong == maxTime - 1.toLong()) {
|
textView.isEnabled = true
|
tvInit(textView)
|
// tv_code!!.text = "获取验证码"
|
} else {
|
textView.isEnabled = false
|
tvIniting(textView, (maxTime - 1 - aLong).toString())
|
// tv_code!!.text = (maxTime - 1 - aLong).toString() + "s后重新获取"
|
}
|
}
|
}
|
|
abstract fun tvInit(tv_code: TextView)
|
|
abstract fun tvIniting(tv_code: TextView, time: String)
|
|
|
public fun showYsDialog() {
|
var isAgreen = CacheKey.getKeyStr("isAgreen")
|
if (isAgreen.isEmpty()) {
|
CacheKey.putKeyStr("isAgreen", "1")
|
var dialog = DialogUtil.getDialog(this, R.layout.item_ys)
|
var view = DialogUtil.getView(dialog)
|
callys {
|
// view.tv_content.text = HtmlUtils.getTextFromHtmlAll(it)
|
setWebview(view.wv_content,it)
|
}
|
view.tv_none.setOnClickListener {
|
dialog.dismiss()
|
CacheKey.putKeyStr("isAgreen", "")
|
EventBus.getDefault().post(BaseEvent(BaseEvent.OUT_APP))
|
}
|
view.tv_agreet.clickDelay {
|
dialog.dismiss()
|
}
|
view.tv_yx.clickDelay {
|
view.tv_yx.textColor(this, R.color.white)
|
view.tv_yh.textColor(this, R.color.main_login_orange)
|
view.tv_yx.setBackgroundResource(R.drawable.bg_login_top_left)
|
view.tv_yh.setBackgroundResource(R.drawable.bg_logion_top_right)
|
callys {
|
setWebview(view.wv_content,it)
|
}
|
}
|
view.tv_yh.clickDelay {
|
view.tv_yx.textColor(this, R.color.main_login_orange)
|
view.tv_yh.textColor(this, R.color.white)
|
view.tv_yx.setBackgroundResource(R.drawable.bg_logion_top_left)
|
view.tv_yh.setBackgroundResource(R.drawable.bg_login_top_left_select)
|
callyh {
|
setWebview(view.wv_content,it)
|
}
|
}
|
|
}
|
}
|
|
|
fun callys(ok: (s: String) -> Unit) {
|
var map = getMapByAny()
|
map["type"] = 1
|
callNet(Api.queryByType, map) {
|
var data = gson.fromJson<AgreeBean>(it, AgreeBean::class.java)
|
ok(data.data.content)
|
}
|
}
|
|
fun callyh(ok: (s: String) -> Unit) {
|
var map = getMapByAny()
|
map["type"] = 2
|
callNet(Api.queryByType, map) {
|
var data = gson.fromJson<AgreeBean>(it, AgreeBean::class.java)
|
ok(data.data.content)
|
}
|
}
|
|
@SuppressLint("SetJavaScriptEnabled")
|
private fun setWebview(webView: WebView, url: 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")
|
if (url!!.startsWith("http")) {
|
webView.loadUrl(url)
|
} else {
|
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 + url, "text/html", "utf-8", null)
|
}
|
}
|
|
}
|