[6.4.0] add func of auth cert show
This commit is contained in:
@@ -12,7 +12,6 @@ import android.os.Build
|
||||
import android.os.Process
|
||||
import android.text.Html
|
||||
import android.util.AttributeSet
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
@@ -89,6 +88,7 @@ import com.mogo.eagle.core.utilcode.kotlin.lifecycleOwner
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.kotlin.scope
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.LogLevel
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
@@ -204,7 +204,8 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
|
||||
// 高精地图是否已缓存
|
||||
private var isHDCached = false
|
||||
private var isClickCheckedCbSsl = false//是否已经点击且选中证书认证按钮
|
||||
//是否已经点击且选中证书认证按钮
|
||||
private var isCertCheck = false
|
||||
private var isFirstDownLoadCertHint = false
|
||||
|
||||
init {
|
||||
@@ -1293,14 +1294,13 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
//是否启用证书认证
|
||||
cbSsl.isChecked =
|
||||
SharedPrefsMgr.getInstance().getBoolean(
|
||||
MoGoConfig.AUTOPILOT_CERTIFICATION,
|
||||
MoGoConfig.AUTOPILOT_CERTIFICATION_DEFAULT_VALUE
|
||||
)
|
||||
val check = SharedPrefsMgr.getInstance().getBoolean(
|
||||
"${MoGoConfig.AUTOPILOT_CERTIFICATION}-${DebugConfig.getNetMode()}",
|
||||
MoGoConfig.AUTOPILOT_CERTIFICATION_DEFAULT_VALUE
|
||||
)
|
||||
isCertCheck = check
|
||||
cbSsl.isChecked = check
|
||||
cbSsl.setOnCheckedChangeListener { _, isChecked ->
|
||||
isClickCheckedCbSsl = isChecked
|
||||
// 下载证书
|
||||
if (isChecked) {
|
||||
if (CallerCloudCertManager.getRootCrtF().isNullOrEmpty()) {
|
||||
if (!isFirstDownLoadCertHint) {
|
||||
@@ -1308,25 +1308,31 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
ToastUtils.showShort("证书文件不存在,正在下载")
|
||||
}
|
||||
cbSsl.isChecked = false
|
||||
//下载证书
|
||||
CallerCloudCertManager.certFileDownLoad { errorMsg ->
|
||||
ThreadUtils.runOnUiThread {
|
||||
isCertCheck = false
|
||||
ToastUtils.showShort(errorMsg)
|
||||
}
|
||||
}
|
||||
}else{
|
||||
isCertCheck = true
|
||||
}
|
||||
}else{
|
||||
isCertCheck = false
|
||||
}
|
||||
SharedPrefsMgr.getInstance()
|
||||
.putBoolean(MoGoConfig.AUTOPILOT_CERTIFICATION, cbSsl.isChecked)
|
||||
.putBoolean("${MoGoConfig.AUTOPILOT_CERTIFICATION}-${DebugConfig.getNetMode()}", cbSsl.isChecked)
|
||||
}
|
||||
}
|
||||
|
||||
override fun authCrtFile(device: String, root: String) {
|
||||
super.authCrtFile(device, root)
|
||||
ThreadUtils.runOnUiThread {
|
||||
if (isClickCheckedCbSsl) {
|
||||
if (isCertCheck) {
|
||||
cbSsl.isChecked = true
|
||||
SharedPrefsMgr.getInstance()
|
||||
.putBoolean(MoGoConfig.AUTOPILOT_CERTIFICATION, true)
|
||||
.putBoolean("${MoGoConfig.AUTOPILOT_CERTIFICATION}-${DebugConfig.getNetMode()}", true)
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
tvCertFile.text = Html.fromHtml(
|
||||
@@ -2504,6 +2510,6 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
paramIndexes = [0]
|
||||
)
|
||||
private fun invokeCronetResult(json: String) {
|
||||
Log.d("CronetNetwork", json)
|
||||
CallerLogger.d(SceneConstant.M_HMI + "CronetNetwork", json)
|
||||
}
|
||||
}
|
||||
@@ -48,6 +48,9 @@ class StatusSummaryAdapter(private val ctx: Context, var data: ArrayList<StatusS
|
||||
4 -> {
|
||||
ivFuncView.setImageResource(R.drawable.controller)
|
||||
}
|
||||
5 -> {
|
||||
ivFuncView.setImageResource(R.drawable.ssl_check)
|
||||
}
|
||||
}
|
||||
if (entity.isException) {
|
||||
tvStatusDesc.setTextColor(Color.parseColor("#FF4444"))
|
||||
|
||||
@@ -2,19 +2,26 @@ package com.mogo.eagle.core.function.hmi.ui.setting
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.FrameLayout
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.commons.module.status.IMogoStatusChangedListener
|
||||
import com.mogo.commons.module.status.MogoStatusManager
|
||||
import com.mogo.commons.module.status.StatusDescriptor
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.data.constants.MoGoConfig
|
||||
import com.mogo.eagle.core.data.status.StatusSummaryEntity
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener
|
||||
import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener
|
||||
import com.mogo.eagle.core.function.api.telematic.IConnectStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
|
||||
import com.mogo.eagle.core.function.call.cloud.CallerCloudCertManager
|
||||
import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicStatusListenerManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
@@ -26,7 +33,7 @@ import com.zhjt.mogo.adas.data.AdasConstants
|
||||
/**
|
||||
* 状态汇总View控件
|
||||
*/
|
||||
class StatusSummaryView@JvmOverloads constructor(
|
||||
class StatusSummaryView @JvmOverloads constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
@@ -35,8 +42,9 @@ class StatusSummaryView@JvmOverloads constructor(
|
||||
attrs,
|
||||
defStyleAttr
|
||||
), IConnectStatusListener, IMogoStatusChangedListener,
|
||||
IMoGoDevaToolsListener, IMoGoAutopilotStatusListener {
|
||||
companion object{
|
||||
IMoGoDevaToolsListener, IMoGoAutopilotStatusListener, IMoGoAutopilotCarConfigListener,
|
||||
IMoGoCloudListener {
|
||||
companion object {
|
||||
private const val TAG = "SummaryStatusView"
|
||||
}
|
||||
|
||||
@@ -50,6 +58,13 @@ class StatusSummaryView@JvmOverloads constructor(
|
||||
it.add(StatusSummaryEntity(2))
|
||||
it.add(StatusSummaryEntity(3))
|
||||
it.add(StatusSummaryEntity(4, "域控未连接", true))
|
||||
it.add(
|
||||
StatusSummaryEntity(
|
||||
5,
|
||||
CallerAutopilotCarConfigListenerManager.getCertFileResult(),
|
||||
CallerCloudCertManager.getRootCrtF().isNullOrEmpty()
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,6 +82,8 @@ class StatusSummaryView@JvmOverloads constructor(
|
||||
MogoStatusManager.getInstance()
|
||||
.registerStatusChangedListener(TAG, StatusDescriptor.CLOUD_SOCKET, this)
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
CallerAutopilotCarConfigListenerManager.addListener(TAG, this)
|
||||
CallerCloudListenerManager.addListener(TAG, this)
|
||||
}
|
||||
|
||||
private fun initView() {
|
||||
@@ -81,9 +98,10 @@ class StatusSummaryView@JvmOverloads constructor(
|
||||
it.layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
|
||||
it.addItemDecoration(
|
||||
CommonDividerItemDecoration.Builder()
|
||||
.spanCountTBCare(false)
|
||||
.horizontalInnerSpace(10.PX)
|
||||
.build())
|
||||
.spanCountTBCare(false)
|
||||
.horizontalInnerSpace(10.PX)
|
||||
.build()
|
||||
)
|
||||
StatusSummaryAdapter(context, data).apply {
|
||||
adapter = this
|
||||
it.adapter = this
|
||||
@@ -108,6 +126,8 @@ class StatusSummaryView@JvmOverloads constructor(
|
||||
MogoStatusManager.getInstance()
|
||||
.unregisterStatusChangedListener(TAG, StatusDescriptor.CLOUD_SOCKET, this)
|
||||
CallerAutoPilotStatusListenerManager.removeListener(TAG)
|
||||
CallerAutopilotCarConfigListenerManager.removeListener(TAG)
|
||||
CallerCloudListenerManager.removeListener(TAG)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -168,30 +188,39 @@ class StatusSummaryView@JvmOverloads constructor(
|
||||
AdasConstants.IpcConnectionStatus.DISCONNECTED -> {
|
||||
pair = Pair("域控未连接", true)
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.CONNECTED -> {
|
||||
pair = Pair("域控已连接", false)
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.CONNECTING -> {
|
||||
pair = Pair("域控连接中", true)
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.RECONNECTING_TIMER, AdasConstants.IpcConnectionStatus.RECONNECTING_NETWORK -> {
|
||||
pair = Pair("域控重连中", true)
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.CONNECT_EXCEPTION -> {
|
||||
pair = Pair("域控连接异常", true)
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.ILLEGAL_ADDRESS -> {
|
||||
pair = Pair("非法域控地址", true)
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.SEARCH_ADDRESS -> {
|
||||
pair = Pair("正在搜索域控地址", true)
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.NOT_FOUND_ADDRESS -> {
|
||||
pair = Pair("找不到可用的域控地址", true)
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.HEARTBEAT_TIMEOUT -> {
|
||||
pair = Pair("域控心跳超时", true)
|
||||
}
|
||||
|
||||
AdasConstants.IpcConnectionStatus.SERVER_DISCONNECTED -> {
|
||||
pair = Pair("域控主动断开连接", true)
|
||||
}
|
||||
@@ -203,4 +232,41 @@ class StatusSummaryView@JvmOverloads constructor(
|
||||
adapter?.notifyItemChanged(4)
|
||||
}
|
||||
}
|
||||
|
||||
override fun authCrtFile(device: String, root: String) {
|
||||
super.authCrtFile(device, root)
|
||||
UiThreadHandler.post {
|
||||
if (data.size < 6) return@post
|
||||
data[5].desc = "本机证书已下载"
|
||||
data[5].isException = false
|
||||
adapter?.notifyItemChanged(5)
|
||||
}
|
||||
}
|
||||
|
||||
override fun authCrtError(errorMsg: String) {
|
||||
super.authCrtError(errorMsg)
|
||||
UiThreadHandler.post {
|
||||
if (data.size < 6) return@post
|
||||
data[5].desc = "本机证书下载异常:$errorMsg"
|
||||
data[5].isException = true
|
||||
adapter?.notifyItemChanged(5)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCertificationResult(msg: String) {
|
||||
super.onCertificationResult(msg)
|
||||
if (!SharedPrefsMgr.getInstance().getBoolean(
|
||||
"${MoGoConfig.AUTOPILOT_CERTIFICATION}-${DebugConfig.getNetMode()}",
|
||||
MoGoConfig.AUTOPILOT_CERTIFICATION_DEFAULT_VALUE
|
||||
)
|
||||
) {
|
||||
return
|
||||
}
|
||||
UiThreadHandler.post {
|
||||
if (data.size < 6) return@post
|
||||
data[5].desc = msg
|
||||
data[5].isException = !msg.contains("成功校验")
|
||||
adapter?.notifyItemChanged(5)
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 988 B |
Reference in New Issue
Block a user