diff --git a/app/src/main/java/com/casic/endoscope/view/MainActivity.kt b/app/src/main/java/com/casic/endoscope/view/MainActivity.kt index d0cad31..cc38d90 100644 --- a/app/src/main/java/com/casic/endoscope/view/MainActivity.kt +++ b/app/src/main/java/com/casic/endoscope/view/MainActivity.kt @@ -20,6 +20,7 @@ import com.casic.endoscope.utils.ProjectConstant import com.casic.endoscope.utils.hk.MessageCodeHub import com.casic.endoscope.utils.hk.SDKGuider +import com.casic.endoscope.widgets.AddCameraPointDialog import com.gyf.immersionbar.ImmersionBar import com.hikvision.netsdk.HCNetSDK import com.hikvision.netsdk.NET_DVR_JPEGPARA @@ -68,7 +69,6 @@ private var timer: Timer? = null private var timerTask: TimerTask? = null private var seconds = 0L - private var step = 1 private var dataBeans: MutableList = ArrayList() private var selectedItems: MutableList = ArrayList() private lateinit var weakReferenceHandler: WeakReferenceHandler @@ -110,6 +110,7 @@ navigatePageTo() } + //单张拍照 binding.imageButton.setOnClickListener { if (isPreviewSuccess) { lifecycleScope.launch(Dispatchers.IO) { @@ -131,6 +132,7 @@ } } + //视频录制 binding.videoButton.setOnClickListener { if (isPreviewSuccess) { val videoPath = "/${createVideoFileDir()}/${timeFormat.format(Date())}.mp4" @@ -144,10 +146,31 @@ true } + //连续拍照 + binding.multipleImageButton.setOnClickListener { + if (isPreviewSuccess) { + + } + } + binding.addButton.setOnClickListener { - DataBaseManager.get.cacheCameraPoint(step++, 0, 0) - dataBeans = DataBaseManager.get.loadAllCameraPoint() - dataAdapter.setRefreshData(dataBeans) + AddCameraPointDialog.Builder() + .setContext(this) + .setLastStep(dataBeans.last().step) + .setNegativeButton("取消") + .setPositiveButton("添加") + .setOnDialogButtonClickListener(object : + AddCameraPointDialog.OnDialogButtonClickListener { + override fun onConfirmClick(step: Int, hAngle: Int, vAngle: Int) { + DataBaseManager.get.cacheCameraPoint(step, hAngle, vAngle) + dataBeans = DataBaseManager.get.loadAllCameraPoint() + dataAdapter.setRefreshData(dataBeans) + } + + override fun onCancelClick() { + + } + }).build().show() } binding.deleteButton.setOnClickListener { @@ -159,10 +182,6 @@ dataBeans = DataBaseManager.get.loadAllCameraPoint() dataAdapter.setRefreshData(dataBeans) selectedItems.clear() - if (dataBeans.isEmpty()) { - //步骤清空后,重置步骤序号 - step = 1 - } } binding.steeringWheelView.setOnWheelTouchListener(object : diff --git a/app/src/main/java/com/casic/endoscope/view/MainActivity.kt b/app/src/main/java/com/casic/endoscope/view/MainActivity.kt index d0cad31..cc38d90 100644 --- a/app/src/main/java/com/casic/endoscope/view/MainActivity.kt +++ b/app/src/main/java/com/casic/endoscope/view/MainActivity.kt @@ -20,6 +20,7 @@ import com.casic.endoscope.utils.ProjectConstant import com.casic.endoscope.utils.hk.MessageCodeHub import com.casic.endoscope.utils.hk.SDKGuider +import com.casic.endoscope.widgets.AddCameraPointDialog import com.gyf.immersionbar.ImmersionBar import com.hikvision.netsdk.HCNetSDK import com.hikvision.netsdk.NET_DVR_JPEGPARA @@ -68,7 +69,6 @@ private var timer: Timer? = null private var timerTask: TimerTask? = null private var seconds = 0L - private var step = 1 private var dataBeans: MutableList = ArrayList() private var selectedItems: MutableList = ArrayList() private lateinit var weakReferenceHandler: WeakReferenceHandler @@ -110,6 +110,7 @@ navigatePageTo() } + //单张拍照 binding.imageButton.setOnClickListener { if (isPreviewSuccess) { lifecycleScope.launch(Dispatchers.IO) { @@ -131,6 +132,7 @@ } } + //视频录制 binding.videoButton.setOnClickListener { if (isPreviewSuccess) { val videoPath = "/${createVideoFileDir()}/${timeFormat.format(Date())}.mp4" @@ -144,10 +146,31 @@ true } + //连续拍照 + binding.multipleImageButton.setOnClickListener { + if (isPreviewSuccess) { + + } + } + binding.addButton.setOnClickListener { - DataBaseManager.get.cacheCameraPoint(step++, 0, 0) - dataBeans = DataBaseManager.get.loadAllCameraPoint() - dataAdapter.setRefreshData(dataBeans) + AddCameraPointDialog.Builder() + .setContext(this) + .setLastStep(dataBeans.last().step) + .setNegativeButton("取消") + .setPositiveButton("添加") + .setOnDialogButtonClickListener(object : + AddCameraPointDialog.OnDialogButtonClickListener { + override fun onConfirmClick(step: Int, hAngle: Int, vAngle: Int) { + DataBaseManager.get.cacheCameraPoint(step, hAngle, vAngle) + dataBeans = DataBaseManager.get.loadAllCameraPoint() + dataAdapter.setRefreshData(dataBeans) + } + + override fun onCancelClick() { + + } + }).build().show() } binding.deleteButton.setOnClickListener { @@ -159,10 +182,6 @@ dataBeans = DataBaseManager.get.loadAllCameraPoint() dataAdapter.setRefreshData(dataBeans) selectedItems.clear() - if (dataBeans.isEmpty()) { - //步骤清空后,重置步骤序号 - step = 1 - } } binding.steeringWheelView.setOnWheelTouchListener(object : diff --git a/app/src/main/java/com/casic/endoscope/widgets/AddCameraPointDialog.kt b/app/src/main/java/com/casic/endoscope/widgets/AddCameraPointDialog.kt new file mode 100644 index 0000000..9401648 --- /dev/null +++ b/app/src/main/java/com/casic/endoscope/widgets/AddCameraPointDialog.kt @@ -0,0 +1,107 @@ +package com.casic.endoscope.widgets + +import android.app.Dialog +import android.content.Context +import android.os.Bundle +import android.view.View +import com.casic.endoscope.R +import com.casic.endoscope.databinding.DialogAddCameraPointBinding +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.initDialogLayoutParams +import com.pengxh.kt.lite.extensions.show + +class AddCameraPointDialog private constructor(builder: Builder) : Dialog( + builder.context, R.style.UserDefinedDialogStyle +) { + private val kTag = "AddCameraPointDialog" + private val ctx = builder.context + private var step = builder.step + private val positiveBtn = builder.positiveBtn + private val negativeBtn = builder.negativeBtn + private val listener = builder.listener + + class Builder { + lateinit var context: Context + var step = 1 + lateinit var positiveBtn: String + lateinit var negativeBtn: String + lateinit var listener: OnDialogButtonClickListener + + fun setContext(context: Context): Builder { + this.context = context + return this + } + + fun setLastStep(step: Int): Builder { + this.step = step + return this + } + + fun setPositiveButton(name: String): Builder { + positiveBtn = name + return this + } + + fun setNegativeButton(name: String): Builder { + negativeBtn = name + return this + } + + fun setOnDialogButtonClickListener(listener: OnDialogButtonClickListener): Builder { + this.listener = listener + return this + } + + fun build(): AddCameraPointDialog { + return AddCameraPointDialog(this) + } + } + + private val binding: DialogAddCameraPointBinding by binding() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + this.initDialogLayoutParams(0.3f) + setContentView(R.layout.dialog_add_camera_point) + setCanceledOnTouchOutside(false) + initView() + } + + private fun initView() { + //默认继续排序 + binding.continueStepView.isChecked = true + + binding.cancelButton.text = negativeBtn + binding.cancelButton.setOnClickListener { + listener.onCancelClick() + dismiss() + } + + binding.confirmButton.text = positiveBtn + binding.confirmButton.setOnClickListener(View.OnClickListener { + val hAngle: String = binding.hAngleView.text.toString().trim() + if (hAngle.isBlank()) { + "水平角度输入错误,请检查!".show(ctx) + return@OnClickListener + } + + val vAngle: String = binding.vAngleView.text.toString().trim() + if (vAngle.isBlank()) { + "垂直角度输入错误,请检查!".show(ctx) + return@OnClickListener + } + if (binding.continueStepView.isChecked) { + listener.onConfirmClick(++step, hAngle.toInt(), vAngle.toInt()) + } else { + listener.onConfirmClick(1, hAngle.toInt(), vAngle.toInt()) + } + dismiss() + }) + } + + interface OnDialogButtonClickListener { + fun onConfirmClick(step: Int, hAngle: Int, vAngle: Int) + + fun onCancelClick() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/endoscope/view/MainActivity.kt b/app/src/main/java/com/casic/endoscope/view/MainActivity.kt index d0cad31..cc38d90 100644 --- a/app/src/main/java/com/casic/endoscope/view/MainActivity.kt +++ b/app/src/main/java/com/casic/endoscope/view/MainActivity.kt @@ -20,6 +20,7 @@ import com.casic.endoscope.utils.ProjectConstant import com.casic.endoscope.utils.hk.MessageCodeHub import com.casic.endoscope.utils.hk.SDKGuider +import com.casic.endoscope.widgets.AddCameraPointDialog import com.gyf.immersionbar.ImmersionBar import com.hikvision.netsdk.HCNetSDK import com.hikvision.netsdk.NET_DVR_JPEGPARA @@ -68,7 +69,6 @@ private var timer: Timer? = null private var timerTask: TimerTask? = null private var seconds = 0L - private var step = 1 private var dataBeans: MutableList = ArrayList() private var selectedItems: MutableList = ArrayList() private lateinit var weakReferenceHandler: WeakReferenceHandler @@ -110,6 +110,7 @@ navigatePageTo() } + //单张拍照 binding.imageButton.setOnClickListener { if (isPreviewSuccess) { lifecycleScope.launch(Dispatchers.IO) { @@ -131,6 +132,7 @@ } } + //视频录制 binding.videoButton.setOnClickListener { if (isPreviewSuccess) { val videoPath = "/${createVideoFileDir()}/${timeFormat.format(Date())}.mp4" @@ -144,10 +146,31 @@ true } + //连续拍照 + binding.multipleImageButton.setOnClickListener { + if (isPreviewSuccess) { + + } + } + binding.addButton.setOnClickListener { - DataBaseManager.get.cacheCameraPoint(step++, 0, 0) - dataBeans = DataBaseManager.get.loadAllCameraPoint() - dataAdapter.setRefreshData(dataBeans) + AddCameraPointDialog.Builder() + .setContext(this) + .setLastStep(dataBeans.last().step) + .setNegativeButton("取消") + .setPositiveButton("添加") + .setOnDialogButtonClickListener(object : + AddCameraPointDialog.OnDialogButtonClickListener { + override fun onConfirmClick(step: Int, hAngle: Int, vAngle: Int) { + DataBaseManager.get.cacheCameraPoint(step, hAngle, vAngle) + dataBeans = DataBaseManager.get.loadAllCameraPoint() + dataAdapter.setRefreshData(dataBeans) + } + + override fun onCancelClick() { + + } + }).build().show() } binding.deleteButton.setOnClickListener { @@ -159,10 +182,6 @@ dataBeans = DataBaseManager.get.loadAllCameraPoint() dataAdapter.setRefreshData(dataBeans) selectedItems.clear() - if (dataBeans.isEmpty()) { - //步骤清空后,重置步骤序号 - step = 1 - } } binding.steeringWheelView.setOnWheelTouchListener(object : diff --git a/app/src/main/java/com/casic/endoscope/widgets/AddCameraPointDialog.kt b/app/src/main/java/com/casic/endoscope/widgets/AddCameraPointDialog.kt new file mode 100644 index 0000000..9401648 --- /dev/null +++ b/app/src/main/java/com/casic/endoscope/widgets/AddCameraPointDialog.kt @@ -0,0 +1,107 @@ +package com.casic.endoscope.widgets + +import android.app.Dialog +import android.content.Context +import android.os.Bundle +import android.view.View +import com.casic.endoscope.R +import com.casic.endoscope.databinding.DialogAddCameraPointBinding +import com.pengxh.kt.lite.extensions.binding +import com.pengxh.kt.lite.extensions.initDialogLayoutParams +import com.pengxh.kt.lite.extensions.show + +class AddCameraPointDialog private constructor(builder: Builder) : Dialog( + builder.context, R.style.UserDefinedDialogStyle +) { + private val kTag = "AddCameraPointDialog" + private val ctx = builder.context + private var step = builder.step + private val positiveBtn = builder.positiveBtn + private val negativeBtn = builder.negativeBtn + private val listener = builder.listener + + class Builder { + lateinit var context: Context + var step = 1 + lateinit var positiveBtn: String + lateinit var negativeBtn: String + lateinit var listener: OnDialogButtonClickListener + + fun setContext(context: Context): Builder { + this.context = context + return this + } + + fun setLastStep(step: Int): Builder { + this.step = step + return this + } + + fun setPositiveButton(name: String): Builder { + positiveBtn = name + return this + } + + fun setNegativeButton(name: String): Builder { + negativeBtn = name + return this + } + + fun setOnDialogButtonClickListener(listener: OnDialogButtonClickListener): Builder { + this.listener = listener + return this + } + + fun build(): AddCameraPointDialog { + return AddCameraPointDialog(this) + } + } + + private val binding: DialogAddCameraPointBinding by binding() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + this.initDialogLayoutParams(0.3f) + setContentView(R.layout.dialog_add_camera_point) + setCanceledOnTouchOutside(false) + initView() + } + + private fun initView() { + //默认继续排序 + binding.continueStepView.isChecked = true + + binding.cancelButton.text = negativeBtn + binding.cancelButton.setOnClickListener { + listener.onCancelClick() + dismiss() + } + + binding.confirmButton.text = positiveBtn + binding.confirmButton.setOnClickListener(View.OnClickListener { + val hAngle: String = binding.hAngleView.text.toString().trim() + if (hAngle.isBlank()) { + "水平角度输入错误,请检查!".show(ctx) + return@OnClickListener + } + + val vAngle: String = binding.vAngleView.text.toString().trim() + if (vAngle.isBlank()) { + "垂直角度输入错误,请检查!".show(ctx) + return@OnClickListener + } + if (binding.continueStepView.isChecked) { + listener.onConfirmClick(++step, hAngle.toInt(), vAngle.toInt()) + } else { + listener.onConfirmClick(1, hAngle.toInt(), vAngle.toInt()) + } + dismiss() + }) + } + + interface OnDialogButtonClickListener { + fun onConfirmClick(step: Int, hAngle: Int, vAngle: Int) + + fun onCancelClick() + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_add_camera_point.xml b/app/src/main/res/layout/dialog_add_camera_point.xml new file mode 100644 index 0000000..f8a3743 --- /dev/null +++ b/app/src/main/res/layout/dialog_add_camera_point.xml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +