diff --git a/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt b/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt index 0f1b5e1..c0020ec 100644 --- a/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt +++ b/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt @@ -1,18 +1,32 @@ package com.casic.endoscope.view import android.os.Bundle -import com.casic.endoscope.R +import android.util.Log import com.casic.endoscope.databinding.ActivityAlbumBinding -import com.casic.endoscope.extensions.initImmersionBar +import com.casic.endoscope.extensions.createVideoFileDir +import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.createImageFileDir +import com.pengxh.kt.lite.extensions.getStatusBarHeight -class AlbumActivity: KotlinBaseActivity() { +class AlbumActivity : KotlinBaseActivity() { + + private val kTag = "AlbumActivity" + override fun initEvent() { - + } override fun initOnCreate(savedInstanceState: Bundle?) { - + val videoDir = createVideoFileDir() + videoDir.listFiles()?.forEach { + Log.d(kTag, "initOnCreate => ${it.name}") + } + + val imageDir = createImageFileDir() + imageDir.listFiles()?.forEach { + Log.d(kTag, "initOnCreate => ${it.name}") + } } override fun initViewBinding(): ActivityAlbumBinding { @@ -20,10 +34,14 @@ } override fun observeRequestState() { - + } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.white) + ImmersionBar.with(this).statusBarDarkFont(false).init() + //根据不同设备状态栏高度设置statusBarView高度 + val statusBarHeight = getStatusBarHeight() + binding.rootView.setPadding(0, statusBarHeight, 0, 0) + binding.rootView.requestLayout() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt b/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt index 0f1b5e1..c0020ec 100644 --- a/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt +++ b/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt @@ -1,18 +1,32 @@ package com.casic.endoscope.view import android.os.Bundle -import com.casic.endoscope.R +import android.util.Log import com.casic.endoscope.databinding.ActivityAlbumBinding -import com.casic.endoscope.extensions.initImmersionBar +import com.casic.endoscope.extensions.createVideoFileDir +import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.createImageFileDir +import com.pengxh.kt.lite.extensions.getStatusBarHeight -class AlbumActivity: KotlinBaseActivity() { +class AlbumActivity : KotlinBaseActivity() { + + private val kTag = "AlbumActivity" + override fun initEvent() { - + } override fun initOnCreate(savedInstanceState: Bundle?) { - + val videoDir = createVideoFileDir() + videoDir.listFiles()?.forEach { + Log.d(kTag, "initOnCreate => ${it.name}") + } + + val imageDir = createImageFileDir() + imageDir.listFiles()?.forEach { + Log.d(kTag, "initOnCreate => ${it.name}") + } } override fun initViewBinding(): ActivityAlbumBinding { @@ -20,10 +34,14 @@ } override fun observeRequestState() { - + } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.white) + ImmersionBar.with(this).statusBarDarkFont(false).init() + //根据不同设备状态栏高度设置statusBarView高度 + val statusBarHeight = getStatusBarHeight() + binding.rootView.setPadding(0, statusBarHeight, 0, 0) + binding.rootView.requestLayout() } } \ 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 cc38d90..8c1a5dd 100644 --- a/app/src/main/java/com/casic/endoscope/view/MainActivity.kt +++ b/app/src/main/java/com/casic/endoscope/view/MainActivity.kt @@ -9,6 +9,7 @@ import android.view.KeyEvent import android.view.MotionEvent import android.view.SurfaceHolder +import android.view.View import androidx.lifecycle.lifecycleScope import com.casic.endoscope.adapter.CameraPointAdapter import com.casic.endoscope.bean.CameraPointBean @@ -35,7 +36,6 @@ import com.pengxh.kt.lite.widget.SteeringWheelView import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext import java.text.SimpleDateFormat import java.util.Date import java.util.Locale @@ -113,22 +113,20 @@ //单张拍照 binding.imageButton.setOnClickListener { if (isPreviewSuccess) { - lifecycleScope.launch(Dispatchers.IO) { - val strJpeg = NET_DVR_JPEGPARA() - strJpeg.wPicQuality = 1 - strJpeg.wPicSize = 2 + val strJpeg = NET_DVR_JPEGPARA() + strJpeg.wPicQuality = 1 + strJpeg.wPicSize = 2 - val imagePath = "/${createImageFileDir()}/${timeFormat.format(Date())}.png" - hkSDK.NET_DVR_CaptureJPEGPicture( - returnUserId, selectChannel, strJpeg, imagePath - ) + val imagePath = "/${createImageFileDir()}/${timeFormat.format(Date())}.png" + hkSDK.NET_DVR_CaptureJPEGPicture( + returnUserId, selectChannel, strJpeg, imagePath + ) - if (MessageCodeHub.getErrorCode() == 0) { - withContext(Dispatchers.Main) { - "画面抓取成功".show(this@MainActivity) - } - } + if (MessageCodeHub.getErrorCode() == 0) { + "画面抓取成功".show(this@MainActivity) } + } else { + "摄像头预览未打开,无法拍照".show(this) } } @@ -137,26 +135,42 @@ if (isPreviewSuccess) { val videoPath = "/${createVideoFileDir()}/${timeFormat.format(Date())}.mp4" hkSDK.NET_DVR_SaveRealData(returnUserId, videoPath) + binding.videoStateView.visibility = View.VISIBLE + } else { + "摄像头预览未打开,无法录制视频".show(this) } } binding.videoButton.setOnLongClickListener { //停止视频抓取 hkSDK.NET_DVR_StopSaveRealData(returnUserId) + binding.videoStateView.visibility = View.INVISIBLE + "视频录制成功".show(this@MainActivity) true } //连续拍照 binding.multipleImageButton.setOnClickListener { + if (dataBeans.isEmpty()) { + "请先设置连续拍照步骤".show(this) + return@setOnClickListener + } if (isPreviewSuccess) { + } else { + "摄像头预览未打开,无法拍照".show(this) } } binding.addButton.setOnClickListener { + val step = if (dataBeans.isEmpty()) { + 0 + } else { + dataBeans.last().step + } AddCameraPointDialog.Builder() .setContext(this) - .setLastStep(dataBeans.last().step) + .setLastStep(step) .setNegativeButton("取消") .setPositiveButton("添加") .setOnDialogButtonClickListener(object : diff --git a/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt b/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt index 0f1b5e1..c0020ec 100644 --- a/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt +++ b/app/src/main/java/com/casic/endoscope/view/AlbumActivity.kt @@ -1,18 +1,32 @@ package com.casic.endoscope.view import android.os.Bundle -import com.casic.endoscope.R +import android.util.Log import com.casic.endoscope.databinding.ActivityAlbumBinding -import com.casic.endoscope.extensions.initImmersionBar +import com.casic.endoscope.extensions.createVideoFileDir +import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.createImageFileDir +import com.pengxh.kt.lite.extensions.getStatusBarHeight -class AlbumActivity: KotlinBaseActivity() { +class AlbumActivity : KotlinBaseActivity() { + + private val kTag = "AlbumActivity" + override fun initEvent() { - + } override fun initOnCreate(savedInstanceState: Bundle?) { - + val videoDir = createVideoFileDir() + videoDir.listFiles()?.forEach { + Log.d(kTag, "initOnCreate => ${it.name}") + } + + val imageDir = createImageFileDir() + imageDir.listFiles()?.forEach { + Log.d(kTag, "initOnCreate => ${it.name}") + } } override fun initViewBinding(): ActivityAlbumBinding { @@ -20,10 +34,14 @@ } override fun observeRequestState() { - + } override fun setupTopBarLayout() { - binding.rootView.initImmersionBar(this, true, R.color.white) + ImmersionBar.with(this).statusBarDarkFont(false).init() + //根据不同设备状态栏高度设置statusBarView高度 + val statusBarHeight = getStatusBarHeight() + binding.rootView.setPadding(0, statusBarHeight, 0, 0) + binding.rootView.requestLayout() } } \ 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 cc38d90..8c1a5dd 100644 --- a/app/src/main/java/com/casic/endoscope/view/MainActivity.kt +++ b/app/src/main/java/com/casic/endoscope/view/MainActivity.kt @@ -9,6 +9,7 @@ import android.view.KeyEvent import android.view.MotionEvent import android.view.SurfaceHolder +import android.view.View import androidx.lifecycle.lifecycleScope import com.casic.endoscope.adapter.CameraPointAdapter import com.casic.endoscope.bean.CameraPointBean @@ -35,7 +36,6 @@ import com.pengxh.kt.lite.widget.SteeringWheelView import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext import java.text.SimpleDateFormat import java.util.Date import java.util.Locale @@ -113,22 +113,20 @@ //单张拍照 binding.imageButton.setOnClickListener { if (isPreviewSuccess) { - lifecycleScope.launch(Dispatchers.IO) { - val strJpeg = NET_DVR_JPEGPARA() - strJpeg.wPicQuality = 1 - strJpeg.wPicSize = 2 + val strJpeg = NET_DVR_JPEGPARA() + strJpeg.wPicQuality = 1 + strJpeg.wPicSize = 2 - val imagePath = "/${createImageFileDir()}/${timeFormat.format(Date())}.png" - hkSDK.NET_DVR_CaptureJPEGPicture( - returnUserId, selectChannel, strJpeg, imagePath - ) + val imagePath = "/${createImageFileDir()}/${timeFormat.format(Date())}.png" + hkSDK.NET_DVR_CaptureJPEGPicture( + returnUserId, selectChannel, strJpeg, imagePath + ) - if (MessageCodeHub.getErrorCode() == 0) { - withContext(Dispatchers.Main) { - "画面抓取成功".show(this@MainActivity) - } - } + if (MessageCodeHub.getErrorCode() == 0) { + "画面抓取成功".show(this@MainActivity) } + } else { + "摄像头预览未打开,无法拍照".show(this) } } @@ -137,26 +135,42 @@ if (isPreviewSuccess) { val videoPath = "/${createVideoFileDir()}/${timeFormat.format(Date())}.mp4" hkSDK.NET_DVR_SaveRealData(returnUserId, videoPath) + binding.videoStateView.visibility = View.VISIBLE + } else { + "摄像头预览未打开,无法录制视频".show(this) } } binding.videoButton.setOnLongClickListener { //停止视频抓取 hkSDK.NET_DVR_StopSaveRealData(returnUserId) + binding.videoStateView.visibility = View.INVISIBLE + "视频录制成功".show(this@MainActivity) true } //连续拍照 binding.multipleImageButton.setOnClickListener { + if (dataBeans.isEmpty()) { + "请先设置连续拍照步骤".show(this) + return@setOnClickListener + } if (isPreviewSuccess) { + } else { + "摄像头预览未打开,无法拍照".show(this) } } binding.addButton.setOnClickListener { + val step = if (dataBeans.isEmpty()) { + 0 + } else { + dataBeans.last().step + } AddCameraPointDialog.Builder() .setContext(this) - .setLastStep(dataBeans.last().step) + .setLastStep(step) .setNegativeButton("取消") .setPositiveButton("添加") .setOnDialogButtonClickListener(object : diff --git a/app/src/main/res/layout/activity_album.xml b/app/src/main/res/layout/activity_album.xml index 6c46e40..38360ea 100644 --- a/app/src/main/res/layout/activity_album.xml +++ b/app/src/main/res/layout/activity_album.xml @@ -1,8 +1,60 @@ + + + + + + +