diff --git a/app/src/main/java/com/casic/detector/common/view/MainActivity.kt b/app/src/main/java/com/casic/detector/common/view/MainActivity.kt index d28d330..17f00a2 100644 --- a/app/src/main/java/com/casic/detector/common/view/MainActivity.kt +++ b/app/src/main/java/com/casic/detector/common/view/MainActivity.kt @@ -9,6 +9,8 @@ import android.media.AudioAttributes import android.media.SoundPool import android.os.Bundle +import android.os.Handler +import android.os.Message import android.util.Log import android.view.KeyEvent import android.view.View @@ -42,6 +44,7 @@ import com.casic.detector.common.extensions.hexToString import com.casic.detector.common.extensions.initImmersionBar import com.casic.detector.common.extensions.isNumber +import com.casic.detector.common.extensions.toDegree import com.casic.detector.common.extensions.toHex import com.casic.detector.common.model.TaskDetailLocalModel import com.casic.detector.common.model.TaskModel @@ -70,6 +73,8 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.SaveKeyValues +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.pengxh.kt.lite.widget.TitleBarView import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import com.pengxh.kt.lite.widget.dialog.AlertInputDialog import com.pengxh.kt.lite.widget.dialog.AlertMessageDialog @@ -80,7 +85,13 @@ import java.io.File import java.io.OutputStream -class MainActivity : KotlinBaseActivity(), OnSerialPortDataListener { +class MainActivity : KotlinBaseActivity(), OnSerialPortDataListener, + Handler.Callback { + + //TODO 此代码正式版删除 + companion object { + var weakReferenceHandler: WeakReferenceHandler? = null + } private val kTag = "MainActivity" private val context = this @@ -114,13 +125,11 @@ } override fun initOnCreate(savedInstanceState: Bundle?) { + weakReferenceHandler = WeakReferenceHandler(this) // startService(Intent(this, NtripConnectService::class.java)) - soundResourceId = soundPool.load(this, R.raw.ring3, 1) - //地图初始化 initMapConfig(savedInstanceState) - //右上角菜单 samplePopupWindow.setPopupMenuItem(LocaleConstant.POPUP_TITLES) samplePopupWindow.setBackgroundDrawable(null) @@ -205,31 +214,39 @@ } override fun initEvent() { - binding.rightImageView.setOnClickListener { - if (isFreeTask) { - AlertMessageDialog.Builder().setContext(this).setTitle("温馨提示") - .setMessage("正在自由巡检任务中,请完成此次任务之后再使用此功能") - .setPositiveButton("好的").setOnDialogButtonClickListener(object : - AlertMessageDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { + binding.titleView.setOnClickListener(object : TitleBarView.OnClickListener { + override fun onLeftClick() { + } + + override fun onRightClick() { + if (isFreeTask) { + AlertMessageDialog.Builder() + .setContext(context) + .setTitle("温馨提示") + .setMessage("正在自由巡检任务中,请完成此次任务之后再使用此功能") + .setPositiveButton("好的").setOnDialogButtonClickListener(object : + AlertMessageDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + + } + }).build().show() + } else { + lifecycleScope.launch(Dispatchers.Main) { + val markers = withContext(Dispatchers.IO) { + DataBaseManager.get.queryMarkerByState("0") } - }).build().show() - } else { - lifecycleScope.launch(Dispatchers.Main) { - val markers = withContext(Dispatchers.IO) { - DataBaseManager.get.queryMarkerByState("0") + //如果有需要补全的标识器,Popup右侧会有小圆点提示 + if (markers.isNotEmpty()) { + samplePopupWindow.setShowPosition(4) + } + samplePopupWindow.showAsDropDown( + binding.titleView, binding.titleView.width, (-17).dp2px(context) + ) } - //如果有需要补全的标识器,Popup右侧会有小圆点提示 - if (markers.isNotEmpty()) { - samplePopupWindow.setShowPosition(4) - } - val x = - binding.rightImageView.width - samplePopupWindow.width - 1.dp2px(context) - samplePopupWindow.showAsDropDown(binding.rightImageView, x, 1.dp2px(context)) } } - } + }) samplePopupWindow.setOnPopupWindowClickListener(object : SamplePopupWindow.OnPopupWindowClickListener { @@ -398,9 +415,9 @@ } else { "0" } -// navigatePageTo(flag) - //TODO 审计版本 - navigatePageTo() + navigatePageTo(flag) + //TODO 章丘审计版本 +// navigatePageTo() } } @@ -430,6 +447,19 @@ } } + //TODO 此代码正式版删除 + override fun handleMessage(msg: Message): Boolean { + if (msg.what == 2024090301) { + val gps = msg.obj as String + //转为度分秒 + val lngLat = gps.split(",") + val lng = lngLat[0].toDouble().toDegree() + val lat = lngLat[1].toDouble().toDegree() + binding.nativeGpsView.text = "$lng, $lat" + } + return true + } + private val rtkConfigLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { if (it.resultCode == Activity.RESULT_OK) { @@ -554,6 +584,8 @@ aMap.myLocationStyle = locationStyle//设置定位蓝点的Style aMap.isMyLocationEnabled = true//设置是否显示定位小蓝点 aMap.setOnMyLocationChangeListener { + //TODO 此代码正式版删除 + binding.gdGpsView.text = "${it.longitude}, ${it.latitude}" //经纬度逆编码 locationTool.antiCodingLocation(it) { address -> binding.currentLocationView.text = address @@ -700,7 +732,7 @@ override fun onCancelClick() { markers.forEach { if (it.id.toString() == item.title) { - navigatePageTo(it.toJson()) + navigatePageTo(it.markerId) } } }