diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 93f7fd3..fc4fba9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -57,9 +57,9 @@ android:name=".view.TaskDetailActivity" android:screenOrientation="landscape" /> + android:name=".view.AlarmImageActivity" + android:screenOrientation="landscape" + android:theme="@style/ActivityNoTitleBar" /> diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 93f7fd3..fc4fba9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -57,9 +57,9 @@ android:name=".view.TaskDetailActivity" android:screenOrientation="landscape" /> + android:name=".view.AlarmImageActivity" + android:screenOrientation="landscape" + android:theme="@style/ActivityNoTitleBar" /> diff --git a/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt b/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt new file mode 100644 index 0000000..383a77b --- /dev/null +++ b/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt @@ -0,0 +1,74 @@ +package com.casic.br.ktd.view + +import android.os.Bundle +import android.util.Log +import android.view.View +import androidx.lifecycle.ViewModelProvider +import com.bumptech.glide.Glide +import com.casic.br.ktd.databinding.ActivityAlarmImageBinding +import com.casic.br.ktd.extensions.combineImagePath +import com.casic.br.ktd.utils.LoadingDialogHub +import com.casic.br.ktd.vm.AlarmViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.getScreenHeight +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.vm.LoadState + +class AlarmImageActivity : KotlinBaseActivity() { + + private val kTag = "VideoPlayerActivity" + private lateinit var alarmViewModel: AlarmViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val params = window.attributes + params.width = (getScreenWidth() * 0.8).toInt() + params.height = (getScreenHeight() * 0.8).toInt() + window.attributes = params + + alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] + val alarmCode = intent.getStringExtra(Constant.INTENT_PARAM) as String + alarmViewModel.getAlarmMedia(alarmCode, "", "", "", "", "") + alarmViewModel.alarmMediaModel.observe(this) { + if (it.code == 200) { + if (it.data.isNotEmpty()) { + val model = it.data[0] + if (model.alarmVideo.isNullOrEmpty()) { + binding.imageView.visibility = View.VISIBLE + + val imagePath = model.alarmPicture.combineImagePath() + Log.d(kTag, "initOnCreate => $imagePath") + + Glide.with(this).load(imagePath).into(binding.imageView) + } + } + } + } + } + + override fun initViewBinding(): ActivityAlarmImageBinding { + return ActivityAlarmImageBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + alarmViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> LoadingDialogHub.dismiss() + else -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重新操作".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 93f7fd3..fc4fba9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -57,9 +57,9 @@ android:name=".view.TaskDetailActivity" android:screenOrientation="landscape" /> + android:name=".view.AlarmImageActivity" + android:screenOrientation="landscape" + android:theme="@style/ActivityNoTitleBar" /> diff --git a/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt b/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt new file mode 100644 index 0000000..383a77b --- /dev/null +++ b/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt @@ -0,0 +1,74 @@ +package com.casic.br.ktd.view + +import android.os.Bundle +import android.util.Log +import android.view.View +import androidx.lifecycle.ViewModelProvider +import com.bumptech.glide.Glide +import com.casic.br.ktd.databinding.ActivityAlarmImageBinding +import com.casic.br.ktd.extensions.combineImagePath +import com.casic.br.ktd.utils.LoadingDialogHub +import com.casic.br.ktd.vm.AlarmViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.getScreenHeight +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.vm.LoadState + +class AlarmImageActivity : KotlinBaseActivity() { + + private val kTag = "VideoPlayerActivity" + private lateinit var alarmViewModel: AlarmViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val params = window.attributes + params.width = (getScreenWidth() * 0.8).toInt() + params.height = (getScreenHeight() * 0.8).toInt() + window.attributes = params + + alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] + val alarmCode = intent.getStringExtra(Constant.INTENT_PARAM) as String + alarmViewModel.getAlarmMedia(alarmCode, "", "", "", "", "") + alarmViewModel.alarmMediaModel.observe(this) { + if (it.code == 200) { + if (it.data.isNotEmpty()) { + val model = it.data[0] + if (model.alarmVideo.isNullOrEmpty()) { + binding.imageView.visibility = View.VISIBLE + + val imagePath = model.alarmPicture.combineImagePath() + Log.d(kTag, "initOnCreate => $imagePath") + + Glide.with(this).load(imagePath).into(binding.imageView) + } + } + } + } + } + + override fun initViewBinding(): ActivityAlarmImageBinding { + return ActivityAlarmImageBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + alarmViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> LoadingDialogHub.dismiss() + else -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重新操作".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt index e8719ca..5f9b912 100644 --- a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt @@ -180,10 +180,10 @@ TaskDetailAdapter.OnClickedListener { override fun onShowTextClicked(item: TaskDetailModel.DataModel.RowsModel) { if (item.alarmCode.isNullOrEmpty()) { - "报警视频或图片已丢失,无法查看".show(this@TaskDetailActivity) + "报警图片已丢失,无法查看".show(this@TaskDetailActivity) return } - navigatePageTo(item.alarmCode) + navigatePageTo(item.alarmCode) } }) } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 93f7fd3..fc4fba9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -57,9 +57,9 @@ android:name=".view.TaskDetailActivity" android:screenOrientation="landscape" /> + android:name=".view.AlarmImageActivity" + android:screenOrientation="landscape" + android:theme="@style/ActivityNoTitleBar" /> diff --git a/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt b/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt new file mode 100644 index 0000000..383a77b --- /dev/null +++ b/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt @@ -0,0 +1,74 @@ +package com.casic.br.ktd.view + +import android.os.Bundle +import android.util.Log +import android.view.View +import androidx.lifecycle.ViewModelProvider +import com.bumptech.glide.Glide +import com.casic.br.ktd.databinding.ActivityAlarmImageBinding +import com.casic.br.ktd.extensions.combineImagePath +import com.casic.br.ktd.utils.LoadingDialogHub +import com.casic.br.ktd.vm.AlarmViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.getScreenHeight +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.vm.LoadState + +class AlarmImageActivity : KotlinBaseActivity() { + + private val kTag = "VideoPlayerActivity" + private lateinit var alarmViewModel: AlarmViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val params = window.attributes + params.width = (getScreenWidth() * 0.8).toInt() + params.height = (getScreenHeight() * 0.8).toInt() + window.attributes = params + + alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] + val alarmCode = intent.getStringExtra(Constant.INTENT_PARAM) as String + alarmViewModel.getAlarmMedia(alarmCode, "", "", "", "", "") + alarmViewModel.alarmMediaModel.observe(this) { + if (it.code == 200) { + if (it.data.isNotEmpty()) { + val model = it.data[0] + if (model.alarmVideo.isNullOrEmpty()) { + binding.imageView.visibility = View.VISIBLE + + val imagePath = model.alarmPicture.combineImagePath() + Log.d(kTag, "initOnCreate => $imagePath") + + Glide.with(this).load(imagePath).into(binding.imageView) + } + } + } + } + } + + override fun initViewBinding(): ActivityAlarmImageBinding { + return ActivityAlarmImageBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + alarmViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> LoadingDialogHub.dismiss() + else -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重新操作".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt index e8719ca..5f9b912 100644 --- a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt @@ -180,10 +180,10 @@ TaskDetailAdapter.OnClickedListener { override fun onShowTextClicked(item: TaskDetailModel.DataModel.RowsModel) { if (item.alarmCode.isNullOrEmpty()) { - "报警视频或图片已丢失,无法查看".show(this@TaskDetailActivity) + "报警图片已丢失,无法查看".show(this@TaskDetailActivity) return } - navigatePageTo(item.alarmCode) + navigatePageTo(item.alarmCode) } }) } diff --git a/app/src/main/java/com/casic/br/ktd/view/VideoPlayerActivity.kt b/app/src/main/java/com/casic/br/ktd/view/VideoPlayerActivity.kt deleted file mode 100644 index bed0221..0000000 --- a/app/src/main/java/com/casic/br/ktd/view/VideoPlayerActivity.kt +++ /dev/null @@ -1,162 +0,0 @@ -package com.casic.br.ktd.view - -import android.content.res.Configuration -import android.os.Bundle -import android.util.Log -import android.view.View -import androidx.lifecycle.ViewModelProvider -import com.bumptech.glide.Glide -import com.casic.br.ktd.databinding.ActivityVideoPlayerBinding -import com.casic.br.ktd.extensions.combineImagePath -import com.casic.br.ktd.utils.LoadingDialogHub -import com.casic.br.ktd.vm.AlarmViewModel -import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.getScreenHeight -import com.pengxh.kt.lite.extensions.getScreenWidth -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.vm.LoadState -import com.shuyu.gsyvideoplayer.GSYVideoManager -import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder -import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack -import com.shuyu.gsyvideoplayer.utils.OrientationUtils - -class VideoPlayerActivity : KotlinBaseActivity() { - - private val kTag = "VideoPlayerActivity" - private lateinit var orientationUtils: OrientationUtils - private lateinit var alarmViewModel: AlarmViewModel - private var isPlay = false - private var isPause = false - - override fun initEvent() { - - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - val params = window.attributes - params.width = (getScreenWidth() * 0.8).toInt() - params.height = (getScreenHeight() * 0.8).toInt() - window.attributes = params - - orientationUtils = OrientationUtils(this, binding.videoPlayerView) - //初始化不打开外部的旋转 - orientationUtils.isEnable = false - - alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] - val alarmCode = intent.getStringExtra(Constant.INTENT_PARAM) as String - alarmViewModel.getAlarmMedia(alarmCode, "", "", "", "", "") - alarmViewModel.alarmMediaModel.observe(this) { - if (it.code == 200) { - if (it.data.isNotEmpty()) { - val model = it.data[0] - if (model.alarmVideo.isNullOrEmpty()) { - binding.imageView.visibility = View.VISIBLE - binding.videoPlayerView.visibility = View.GONE - - val imagePath = model.alarmPicture.combineImagePath() - Log.d(kTag, "initOnCreate => $imagePath") - - Glide.with(this).load(imagePath).into(binding.imageView) - } else { - binding.imageView.visibility = View.GONE - binding.videoPlayerView.visibility = View.VISIBLE - - val videoPath = model.alarmVideo.combineImagePath() - Log.d(kTag, "initOnCreate => $videoPath") - - val videoOption = GSYVideoOptionBuilder() - videoOption.setIsTouchWiget(true) - .setRotateViewAuto(false) - .setLockLand(false) - .setAutoFullWithSize(true) - .setShowFullAnimation(false) - .setNeedLockFull(true) - .setUrl(videoPath) - .setCacheWithPlay(false) - .setVideoTitle(model.alarmContent) - .setVideoAllCallBack(object : GSYSampleCallBack() { - override fun onPrepared(url: String, vararg objects: Any) { - super.onPrepared(url, *objects) - //开始播放了才能旋转和全屏 - orientationUtils.isEnable = true - isPlay = true - } - - override fun onQuitFullscreen(url: String, vararg objects: Any) { - super.onQuitFullscreen(url, *objects) - orientationUtils.backToProtVideo() - } - }).setLockClickListener { _, lock -> - orientationUtils.isEnable = !lock - }.build(binding.videoPlayerView) - binding.videoPlayerView.fullscreenButton.setOnClickListener { - //直接横屏 - orientationUtils.resolveByClick() - binding.videoPlayerView.startWindowFullscreen(this, true, true) - } - } - } - } - } - } - - override fun initViewBinding(): ActivityVideoPlayerBinding { - return ActivityVideoPlayerBinding.inflate(layoutInflater) - } - - override fun observeRequestState() { - alarmViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> LoadingDialogHub.dismiss() - else -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重新操作".show(this) - } - } - } - } - - override fun setupTopBarLayout() { - - } - - override fun onBackPressed() { - orientationUtils.backToProtVideo() - if (GSYVideoManager.backFromWindowFull(this)) { - return - } - super.onBackPressed() - } - - override fun onPause() { - binding.videoPlayerView.currentPlayer.onVideoPause() - super.onPause() - isPause = true - } - - override fun onResume() { - binding.videoPlayerView.currentPlayer.onVideoResume(false) - super.onResume() - isPause = false - } - - override fun onDestroy() { - if (isPlay) { - binding.videoPlayerView.currentPlayer.release() - } - orientationUtils.releaseListener() - super.onDestroy() - } - - override fun onConfigurationChanged(newConfig: Configuration) { - super.onConfigurationChanged(newConfig) - //如果旋转了就全屏 - if (isPlay && !isPause) { - binding.videoPlayerView.onConfigurationChanged( - this, newConfig, orientationUtils, true, true - ) - } - } -} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 93f7fd3..fc4fba9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -57,9 +57,9 @@ android:name=".view.TaskDetailActivity" android:screenOrientation="landscape" /> + android:name=".view.AlarmImageActivity" + android:screenOrientation="landscape" + android:theme="@style/ActivityNoTitleBar" /> diff --git a/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt b/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt new file mode 100644 index 0000000..383a77b --- /dev/null +++ b/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt @@ -0,0 +1,74 @@ +package com.casic.br.ktd.view + +import android.os.Bundle +import android.util.Log +import android.view.View +import androidx.lifecycle.ViewModelProvider +import com.bumptech.glide.Glide +import com.casic.br.ktd.databinding.ActivityAlarmImageBinding +import com.casic.br.ktd.extensions.combineImagePath +import com.casic.br.ktd.utils.LoadingDialogHub +import com.casic.br.ktd.vm.AlarmViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.getScreenHeight +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.vm.LoadState + +class AlarmImageActivity : KotlinBaseActivity() { + + private val kTag = "VideoPlayerActivity" + private lateinit var alarmViewModel: AlarmViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val params = window.attributes + params.width = (getScreenWidth() * 0.8).toInt() + params.height = (getScreenHeight() * 0.8).toInt() + window.attributes = params + + alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] + val alarmCode = intent.getStringExtra(Constant.INTENT_PARAM) as String + alarmViewModel.getAlarmMedia(alarmCode, "", "", "", "", "") + alarmViewModel.alarmMediaModel.observe(this) { + if (it.code == 200) { + if (it.data.isNotEmpty()) { + val model = it.data[0] + if (model.alarmVideo.isNullOrEmpty()) { + binding.imageView.visibility = View.VISIBLE + + val imagePath = model.alarmPicture.combineImagePath() + Log.d(kTag, "initOnCreate => $imagePath") + + Glide.with(this).load(imagePath).into(binding.imageView) + } + } + } + } + } + + override fun initViewBinding(): ActivityAlarmImageBinding { + return ActivityAlarmImageBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + alarmViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> LoadingDialogHub.dismiss() + else -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重新操作".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt index e8719ca..5f9b912 100644 --- a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt @@ -180,10 +180,10 @@ TaskDetailAdapter.OnClickedListener { override fun onShowTextClicked(item: TaskDetailModel.DataModel.RowsModel) { if (item.alarmCode.isNullOrEmpty()) { - "报警视频或图片已丢失,无法查看".show(this@TaskDetailActivity) + "报警图片已丢失,无法查看".show(this@TaskDetailActivity) return } - navigatePageTo(item.alarmCode) + navigatePageTo(item.alarmCode) } }) } diff --git a/app/src/main/java/com/casic/br/ktd/view/VideoPlayerActivity.kt b/app/src/main/java/com/casic/br/ktd/view/VideoPlayerActivity.kt deleted file mode 100644 index bed0221..0000000 --- a/app/src/main/java/com/casic/br/ktd/view/VideoPlayerActivity.kt +++ /dev/null @@ -1,162 +0,0 @@ -package com.casic.br.ktd.view - -import android.content.res.Configuration -import android.os.Bundle -import android.util.Log -import android.view.View -import androidx.lifecycle.ViewModelProvider -import com.bumptech.glide.Glide -import com.casic.br.ktd.databinding.ActivityVideoPlayerBinding -import com.casic.br.ktd.extensions.combineImagePath -import com.casic.br.ktd.utils.LoadingDialogHub -import com.casic.br.ktd.vm.AlarmViewModel -import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.getScreenHeight -import com.pengxh.kt.lite.extensions.getScreenWidth -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.vm.LoadState -import com.shuyu.gsyvideoplayer.GSYVideoManager -import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder -import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack -import com.shuyu.gsyvideoplayer.utils.OrientationUtils - -class VideoPlayerActivity : KotlinBaseActivity() { - - private val kTag = "VideoPlayerActivity" - private lateinit var orientationUtils: OrientationUtils - private lateinit var alarmViewModel: AlarmViewModel - private var isPlay = false - private var isPause = false - - override fun initEvent() { - - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - val params = window.attributes - params.width = (getScreenWidth() * 0.8).toInt() - params.height = (getScreenHeight() * 0.8).toInt() - window.attributes = params - - orientationUtils = OrientationUtils(this, binding.videoPlayerView) - //初始化不打开外部的旋转 - orientationUtils.isEnable = false - - alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] - val alarmCode = intent.getStringExtra(Constant.INTENT_PARAM) as String - alarmViewModel.getAlarmMedia(alarmCode, "", "", "", "", "") - alarmViewModel.alarmMediaModel.observe(this) { - if (it.code == 200) { - if (it.data.isNotEmpty()) { - val model = it.data[0] - if (model.alarmVideo.isNullOrEmpty()) { - binding.imageView.visibility = View.VISIBLE - binding.videoPlayerView.visibility = View.GONE - - val imagePath = model.alarmPicture.combineImagePath() - Log.d(kTag, "initOnCreate => $imagePath") - - Glide.with(this).load(imagePath).into(binding.imageView) - } else { - binding.imageView.visibility = View.GONE - binding.videoPlayerView.visibility = View.VISIBLE - - val videoPath = model.alarmVideo.combineImagePath() - Log.d(kTag, "initOnCreate => $videoPath") - - val videoOption = GSYVideoOptionBuilder() - videoOption.setIsTouchWiget(true) - .setRotateViewAuto(false) - .setLockLand(false) - .setAutoFullWithSize(true) - .setShowFullAnimation(false) - .setNeedLockFull(true) - .setUrl(videoPath) - .setCacheWithPlay(false) - .setVideoTitle(model.alarmContent) - .setVideoAllCallBack(object : GSYSampleCallBack() { - override fun onPrepared(url: String, vararg objects: Any) { - super.onPrepared(url, *objects) - //开始播放了才能旋转和全屏 - orientationUtils.isEnable = true - isPlay = true - } - - override fun onQuitFullscreen(url: String, vararg objects: Any) { - super.onQuitFullscreen(url, *objects) - orientationUtils.backToProtVideo() - } - }).setLockClickListener { _, lock -> - orientationUtils.isEnable = !lock - }.build(binding.videoPlayerView) - binding.videoPlayerView.fullscreenButton.setOnClickListener { - //直接横屏 - orientationUtils.resolveByClick() - binding.videoPlayerView.startWindowFullscreen(this, true, true) - } - } - } - } - } - } - - override fun initViewBinding(): ActivityVideoPlayerBinding { - return ActivityVideoPlayerBinding.inflate(layoutInflater) - } - - override fun observeRequestState() { - alarmViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> LoadingDialogHub.dismiss() - else -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重新操作".show(this) - } - } - } - } - - override fun setupTopBarLayout() { - - } - - override fun onBackPressed() { - orientationUtils.backToProtVideo() - if (GSYVideoManager.backFromWindowFull(this)) { - return - } - super.onBackPressed() - } - - override fun onPause() { - binding.videoPlayerView.currentPlayer.onVideoPause() - super.onPause() - isPause = true - } - - override fun onResume() { - binding.videoPlayerView.currentPlayer.onVideoResume(false) - super.onResume() - isPause = false - } - - override fun onDestroy() { - if (isPlay) { - binding.videoPlayerView.currentPlayer.release() - } - orientationUtils.releaseListener() - super.onDestroy() - } - - override fun onConfigurationChanged(newConfig: Configuration) { - super.onConfigurationChanged(newConfig) - //如果旋转了就全屏 - if (isPlay && !isPause) { - binding.videoPlayerView.onConfigurationChanged( - this, newConfig, orientationUtils, true, true - ) - } - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_alarm_image.xml b/app/src/main/res/layout/activity_alarm_image.xml new file mode 100644 index 0000000..e8e54fe --- /dev/null +++ b/app/src/main/res/layout/activity_alarm_image.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 93f7fd3..fc4fba9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -57,9 +57,9 @@ android:name=".view.TaskDetailActivity" android:screenOrientation="landscape" /> + android:name=".view.AlarmImageActivity" + android:screenOrientation="landscape" + android:theme="@style/ActivityNoTitleBar" /> diff --git a/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt b/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt new file mode 100644 index 0000000..383a77b --- /dev/null +++ b/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt @@ -0,0 +1,74 @@ +package com.casic.br.ktd.view + +import android.os.Bundle +import android.util.Log +import android.view.View +import androidx.lifecycle.ViewModelProvider +import com.bumptech.glide.Glide +import com.casic.br.ktd.databinding.ActivityAlarmImageBinding +import com.casic.br.ktd.extensions.combineImagePath +import com.casic.br.ktd.utils.LoadingDialogHub +import com.casic.br.ktd.vm.AlarmViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.getScreenHeight +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.vm.LoadState + +class AlarmImageActivity : KotlinBaseActivity() { + + private val kTag = "VideoPlayerActivity" + private lateinit var alarmViewModel: AlarmViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val params = window.attributes + params.width = (getScreenWidth() * 0.8).toInt() + params.height = (getScreenHeight() * 0.8).toInt() + window.attributes = params + + alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] + val alarmCode = intent.getStringExtra(Constant.INTENT_PARAM) as String + alarmViewModel.getAlarmMedia(alarmCode, "", "", "", "", "") + alarmViewModel.alarmMediaModel.observe(this) { + if (it.code == 200) { + if (it.data.isNotEmpty()) { + val model = it.data[0] + if (model.alarmVideo.isNullOrEmpty()) { + binding.imageView.visibility = View.VISIBLE + + val imagePath = model.alarmPicture.combineImagePath() + Log.d(kTag, "initOnCreate => $imagePath") + + Glide.with(this).load(imagePath).into(binding.imageView) + } + } + } + } + } + + override fun initViewBinding(): ActivityAlarmImageBinding { + return ActivityAlarmImageBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + alarmViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> LoadingDialogHub.dismiss() + else -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重新操作".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt index e8719ca..5f9b912 100644 --- a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt @@ -180,10 +180,10 @@ TaskDetailAdapter.OnClickedListener { override fun onShowTextClicked(item: TaskDetailModel.DataModel.RowsModel) { if (item.alarmCode.isNullOrEmpty()) { - "报警视频或图片已丢失,无法查看".show(this@TaskDetailActivity) + "报警图片已丢失,无法查看".show(this@TaskDetailActivity) return } - navigatePageTo(item.alarmCode) + navigatePageTo(item.alarmCode) } }) } diff --git a/app/src/main/java/com/casic/br/ktd/view/VideoPlayerActivity.kt b/app/src/main/java/com/casic/br/ktd/view/VideoPlayerActivity.kt deleted file mode 100644 index bed0221..0000000 --- a/app/src/main/java/com/casic/br/ktd/view/VideoPlayerActivity.kt +++ /dev/null @@ -1,162 +0,0 @@ -package com.casic.br.ktd.view - -import android.content.res.Configuration -import android.os.Bundle -import android.util.Log -import android.view.View -import androidx.lifecycle.ViewModelProvider -import com.bumptech.glide.Glide -import com.casic.br.ktd.databinding.ActivityVideoPlayerBinding -import com.casic.br.ktd.extensions.combineImagePath -import com.casic.br.ktd.utils.LoadingDialogHub -import com.casic.br.ktd.vm.AlarmViewModel -import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.getScreenHeight -import com.pengxh.kt.lite.extensions.getScreenWidth -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.vm.LoadState -import com.shuyu.gsyvideoplayer.GSYVideoManager -import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder -import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack -import com.shuyu.gsyvideoplayer.utils.OrientationUtils - -class VideoPlayerActivity : KotlinBaseActivity() { - - private val kTag = "VideoPlayerActivity" - private lateinit var orientationUtils: OrientationUtils - private lateinit var alarmViewModel: AlarmViewModel - private var isPlay = false - private var isPause = false - - override fun initEvent() { - - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - val params = window.attributes - params.width = (getScreenWidth() * 0.8).toInt() - params.height = (getScreenHeight() * 0.8).toInt() - window.attributes = params - - orientationUtils = OrientationUtils(this, binding.videoPlayerView) - //初始化不打开外部的旋转 - orientationUtils.isEnable = false - - alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] - val alarmCode = intent.getStringExtra(Constant.INTENT_PARAM) as String - alarmViewModel.getAlarmMedia(alarmCode, "", "", "", "", "") - alarmViewModel.alarmMediaModel.observe(this) { - if (it.code == 200) { - if (it.data.isNotEmpty()) { - val model = it.data[0] - if (model.alarmVideo.isNullOrEmpty()) { - binding.imageView.visibility = View.VISIBLE - binding.videoPlayerView.visibility = View.GONE - - val imagePath = model.alarmPicture.combineImagePath() - Log.d(kTag, "initOnCreate => $imagePath") - - Glide.with(this).load(imagePath).into(binding.imageView) - } else { - binding.imageView.visibility = View.GONE - binding.videoPlayerView.visibility = View.VISIBLE - - val videoPath = model.alarmVideo.combineImagePath() - Log.d(kTag, "initOnCreate => $videoPath") - - val videoOption = GSYVideoOptionBuilder() - videoOption.setIsTouchWiget(true) - .setRotateViewAuto(false) - .setLockLand(false) - .setAutoFullWithSize(true) - .setShowFullAnimation(false) - .setNeedLockFull(true) - .setUrl(videoPath) - .setCacheWithPlay(false) - .setVideoTitle(model.alarmContent) - .setVideoAllCallBack(object : GSYSampleCallBack() { - override fun onPrepared(url: String, vararg objects: Any) { - super.onPrepared(url, *objects) - //开始播放了才能旋转和全屏 - orientationUtils.isEnable = true - isPlay = true - } - - override fun onQuitFullscreen(url: String, vararg objects: Any) { - super.onQuitFullscreen(url, *objects) - orientationUtils.backToProtVideo() - } - }).setLockClickListener { _, lock -> - orientationUtils.isEnable = !lock - }.build(binding.videoPlayerView) - binding.videoPlayerView.fullscreenButton.setOnClickListener { - //直接横屏 - orientationUtils.resolveByClick() - binding.videoPlayerView.startWindowFullscreen(this, true, true) - } - } - } - } - } - } - - override fun initViewBinding(): ActivityVideoPlayerBinding { - return ActivityVideoPlayerBinding.inflate(layoutInflater) - } - - override fun observeRequestState() { - alarmViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> LoadingDialogHub.dismiss() - else -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重新操作".show(this) - } - } - } - } - - override fun setupTopBarLayout() { - - } - - override fun onBackPressed() { - orientationUtils.backToProtVideo() - if (GSYVideoManager.backFromWindowFull(this)) { - return - } - super.onBackPressed() - } - - override fun onPause() { - binding.videoPlayerView.currentPlayer.onVideoPause() - super.onPause() - isPause = true - } - - override fun onResume() { - binding.videoPlayerView.currentPlayer.onVideoResume(false) - super.onResume() - isPause = false - } - - override fun onDestroy() { - if (isPlay) { - binding.videoPlayerView.currentPlayer.release() - } - orientationUtils.releaseListener() - super.onDestroy() - } - - override fun onConfigurationChanged(newConfig: Configuration) { - super.onConfigurationChanged(newConfig) - //如果旋转了就全屏 - if (isPlay && !isPause) { - binding.videoPlayerView.onConfigurationChanged( - this, newConfig, orientationUtils, true, true - ) - } - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_alarm_image.xml b/app/src/main/res/layout/activity_alarm_image.xml new file mode 100644 index 0000000..e8e54fe --- /dev/null +++ b/app/src/main/res/layout/activity_alarm_image.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_inspection.xml b/app/src/main/res/layout/activity_inspection.xml index 2f21a33..3db5883 100644 --- a/app/src/main/res/layout/activity_inspection.xml +++ b/app/src/main/res/layout/activity_inspection.xml @@ -23,7 +23,7 @@ + android:name=".view.AlarmImageActivity" + android:screenOrientation="landscape" + android:theme="@style/ActivityNoTitleBar" /> diff --git a/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt b/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt new file mode 100644 index 0000000..383a77b --- /dev/null +++ b/app/src/main/java/com/casic/br/ktd/view/AlarmImageActivity.kt @@ -0,0 +1,74 @@ +package com.casic.br.ktd.view + +import android.os.Bundle +import android.util.Log +import android.view.View +import androidx.lifecycle.ViewModelProvider +import com.bumptech.glide.Glide +import com.casic.br.ktd.databinding.ActivityAlarmImageBinding +import com.casic.br.ktd.extensions.combineImagePath +import com.casic.br.ktd.utils.LoadingDialogHub +import com.casic.br.ktd.vm.AlarmViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.getScreenHeight +import com.pengxh.kt.lite.extensions.getScreenWidth +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.vm.LoadState + +class AlarmImageActivity : KotlinBaseActivity() { + + private val kTag = "VideoPlayerActivity" + private lateinit var alarmViewModel: AlarmViewModel + + override fun initEvent() { + + } + + override fun initOnCreate(savedInstanceState: Bundle?) { + val params = window.attributes + params.width = (getScreenWidth() * 0.8).toInt() + params.height = (getScreenHeight() * 0.8).toInt() + window.attributes = params + + alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] + val alarmCode = intent.getStringExtra(Constant.INTENT_PARAM) as String + alarmViewModel.getAlarmMedia(alarmCode, "", "", "", "", "") + alarmViewModel.alarmMediaModel.observe(this) { + if (it.code == 200) { + if (it.data.isNotEmpty()) { + val model = it.data[0] + if (model.alarmVideo.isNullOrEmpty()) { + binding.imageView.visibility = View.VISIBLE + + val imagePath = model.alarmPicture.combineImagePath() + Log.d(kTag, "initOnCreate => $imagePath") + + Glide.with(this).load(imagePath).into(binding.imageView) + } + } + } + } + } + + override fun initViewBinding(): ActivityAlarmImageBinding { + return ActivityAlarmImageBinding.inflate(layoutInflater) + } + + override fun observeRequestState() { + alarmViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") + LoadState.Success -> LoadingDialogHub.dismiss() + else -> { + LoadingDialogHub.dismiss() + "数据加载失败,请重新操作".show(this) + } + } + } + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt index e8719ca..5f9b912 100644 --- a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt @@ -180,10 +180,10 @@ TaskDetailAdapter.OnClickedListener { override fun onShowTextClicked(item: TaskDetailModel.DataModel.RowsModel) { if (item.alarmCode.isNullOrEmpty()) { - "报警视频或图片已丢失,无法查看".show(this@TaskDetailActivity) + "报警图片已丢失,无法查看".show(this@TaskDetailActivity) return } - navigatePageTo(item.alarmCode) + navigatePageTo(item.alarmCode) } }) } diff --git a/app/src/main/java/com/casic/br/ktd/view/VideoPlayerActivity.kt b/app/src/main/java/com/casic/br/ktd/view/VideoPlayerActivity.kt deleted file mode 100644 index bed0221..0000000 --- a/app/src/main/java/com/casic/br/ktd/view/VideoPlayerActivity.kt +++ /dev/null @@ -1,162 +0,0 @@ -package com.casic.br.ktd.view - -import android.content.res.Configuration -import android.os.Bundle -import android.util.Log -import android.view.View -import androidx.lifecycle.ViewModelProvider -import com.bumptech.glide.Glide -import com.casic.br.ktd.databinding.ActivityVideoPlayerBinding -import com.casic.br.ktd.extensions.combineImagePath -import com.casic.br.ktd.utils.LoadingDialogHub -import com.casic.br.ktd.vm.AlarmViewModel -import com.pengxh.kt.lite.base.KotlinBaseActivity -import com.pengxh.kt.lite.extensions.getScreenHeight -import com.pengxh.kt.lite.extensions.getScreenWidth -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.Constant -import com.pengxh.kt.lite.vm.LoadState -import com.shuyu.gsyvideoplayer.GSYVideoManager -import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder -import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack -import com.shuyu.gsyvideoplayer.utils.OrientationUtils - -class VideoPlayerActivity : KotlinBaseActivity() { - - private val kTag = "VideoPlayerActivity" - private lateinit var orientationUtils: OrientationUtils - private lateinit var alarmViewModel: AlarmViewModel - private var isPlay = false - private var isPause = false - - override fun initEvent() { - - } - - override fun initOnCreate(savedInstanceState: Bundle?) { - val params = window.attributes - params.width = (getScreenWidth() * 0.8).toInt() - params.height = (getScreenHeight() * 0.8).toInt() - window.attributes = params - - orientationUtils = OrientationUtils(this, binding.videoPlayerView) - //初始化不打开外部的旋转 - orientationUtils.isEnable = false - - alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] - val alarmCode = intent.getStringExtra(Constant.INTENT_PARAM) as String - alarmViewModel.getAlarmMedia(alarmCode, "", "", "", "", "") - alarmViewModel.alarmMediaModel.observe(this) { - if (it.code == 200) { - if (it.data.isNotEmpty()) { - val model = it.data[0] - if (model.alarmVideo.isNullOrEmpty()) { - binding.imageView.visibility = View.VISIBLE - binding.videoPlayerView.visibility = View.GONE - - val imagePath = model.alarmPicture.combineImagePath() - Log.d(kTag, "initOnCreate => $imagePath") - - Glide.with(this).load(imagePath).into(binding.imageView) - } else { - binding.imageView.visibility = View.GONE - binding.videoPlayerView.visibility = View.VISIBLE - - val videoPath = model.alarmVideo.combineImagePath() - Log.d(kTag, "initOnCreate => $videoPath") - - val videoOption = GSYVideoOptionBuilder() - videoOption.setIsTouchWiget(true) - .setRotateViewAuto(false) - .setLockLand(false) - .setAutoFullWithSize(true) - .setShowFullAnimation(false) - .setNeedLockFull(true) - .setUrl(videoPath) - .setCacheWithPlay(false) - .setVideoTitle(model.alarmContent) - .setVideoAllCallBack(object : GSYSampleCallBack() { - override fun onPrepared(url: String, vararg objects: Any) { - super.onPrepared(url, *objects) - //开始播放了才能旋转和全屏 - orientationUtils.isEnable = true - isPlay = true - } - - override fun onQuitFullscreen(url: String, vararg objects: Any) { - super.onQuitFullscreen(url, *objects) - orientationUtils.backToProtVideo() - } - }).setLockClickListener { _, lock -> - orientationUtils.isEnable = !lock - }.build(binding.videoPlayerView) - binding.videoPlayerView.fullscreenButton.setOnClickListener { - //直接横屏 - orientationUtils.resolveByClick() - binding.videoPlayerView.startWindowFullscreen(this, true, true) - } - } - } - } - } - } - - override fun initViewBinding(): ActivityVideoPlayerBinding { - return ActivityVideoPlayerBinding.inflate(layoutInflater) - } - - override fun observeRequestState() { - alarmViewModel.loadState.observe(this) { - when (it) { - LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中,请稍后...") - LoadState.Success -> LoadingDialogHub.dismiss() - else -> { - LoadingDialogHub.dismiss() - "数据加载失败,请重新操作".show(this) - } - } - } - } - - override fun setupTopBarLayout() { - - } - - override fun onBackPressed() { - orientationUtils.backToProtVideo() - if (GSYVideoManager.backFromWindowFull(this)) { - return - } - super.onBackPressed() - } - - override fun onPause() { - binding.videoPlayerView.currentPlayer.onVideoPause() - super.onPause() - isPause = true - } - - override fun onResume() { - binding.videoPlayerView.currentPlayer.onVideoResume(false) - super.onResume() - isPause = false - } - - override fun onDestroy() { - if (isPlay) { - binding.videoPlayerView.currentPlayer.release() - } - orientationUtils.releaseListener() - super.onDestroy() - } - - override fun onConfigurationChanged(newConfig: Configuration) { - super.onConfigurationChanged(newConfig) - //如果旋转了就全屏 - if (isPlay && !isPause) { - binding.videoPlayerView.onConfigurationChanged( - this, newConfig, orientationUtils, true, true - ) - } - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_alarm_image.xml b/app/src/main/res/layout/activity_alarm_image.xml new file mode 100644 index 0000000..e8e54fe --- /dev/null +++ b/app/src/main/res/layout/activity_alarm_image.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_inspection.xml b/app/src/main/res/layout/activity_inspection.xml index 2f21a33..3db5883 100644 --- a/app/src/main/res/layout/activity_inspection.xml +++ b/app/src/main/res/layout/activity_inspection.xml @@ -23,7 +23,7 @@ - - - - - - \ No newline at end of file