取消intent传递class
This commit is contained in:
parent
ca7a7f9da6
commit
0c1980da94
@ -19,8 +19,8 @@ android {
|
|||||||
applicationId = "com.ux.video.file.filerecovery"
|
applicationId = "com.ux.video.file.filerecovery"
|
||||||
minSdk = 24
|
minSdk = 24
|
||||||
targetSdk = 36
|
targetSdk = 36
|
||||||
versionCode = 1
|
versionCode = 2
|
||||||
versionName = "1.0"
|
versionName = "1.1"
|
||||||
project.setProperty("archivesBaseName", "File Recovery Tool" + versionName + "(${versionCode})_$timestamp")
|
project.setProperty("archivesBaseName", "File Recovery Tool" + versionName + "(${versionCode})_$timestamp")
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,31 +24,6 @@ data class ResultDataFiles(
|
|||||||
val sizeString: String,
|
val sizeString: String,
|
||||||
val lastModified: Long, // 时间戳
|
val lastModified: Long, // 时间戳
|
||||||
) : Parcelable {
|
) : Parcelable {
|
||||||
// val targetFile: File
|
|
||||||
// get() = path.let { File(it) }
|
|
||||||
|
|
||||||
//尺寸
|
|
||||||
// val resolution: String
|
|
||||||
// get() = Common.getResolution(fileType, targetFile)
|
|
||||||
|
|
||||||
//是否为缩略图文件(宽高任一小于 256)
|
|
||||||
// val isThumbnail: Boolean
|
|
||||||
// get() {
|
|
||||||
// val parts = resolution.lowercase().split("*").mapNotNull {
|
|
||||||
// it.trim().toIntOrNull()
|
|
||||||
// }
|
|
||||||
// if (parts.size == 2) {
|
|
||||||
// val (width, height) = parts
|
|
||||||
// return width < 256 || height < 256
|
|
||||||
// }
|
|
||||||
// return false
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
//音视频时长
|
|
||||||
// val duration: Long
|
|
||||||
// get() {
|
|
||||||
// return Common.getMediaDuration(path.toString())
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,18 @@
|
|||||||
|
package com.ux.video.file.filerecovery.detail
|
||||||
|
|
||||||
|
import androidx.lifecycle.MutableLiveData
|
||||||
|
import com.ux.video.file.filerecovery.db.ResultData
|
||||||
|
import com.ux.video.file.filerecovery.db.ResultDataFiles
|
||||||
|
|
||||||
|
object ClickDataRepository {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
val clickData = MutableLiveData<ResultDataFiles>()
|
||||||
|
|
||||||
|
|
||||||
|
fun setClickItemData(data: ResultDataFiles) {
|
||||||
|
clickData.postValue(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -6,6 +6,7 @@ import android.os.Build
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
|
import androidx.activity.viewModels
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
@ -24,6 +25,7 @@ import com.ux.video.file.filerecovery.db.duration
|
|||||||
import com.ux.video.file.filerecovery.db.resolution
|
import com.ux.video.file.filerecovery.db.resolution
|
||||||
import com.ux.video.file.filerecovery.db.targetFile
|
import com.ux.video.file.filerecovery.db.targetFile
|
||||||
import com.ux.video.file.filerecovery.sort.RecoverOrDeleteManager
|
import com.ux.video.file.filerecovery.sort.RecoverOrDeleteManager
|
||||||
|
import com.ux.video.file.filerecovery.sort.SortingViewModel
|
||||||
import com.ux.video.file.filerecovery.success.RecoverySuccessActivity
|
import com.ux.video.file.filerecovery.success.RecoverySuccessActivity
|
||||||
import com.ux.video.file.filerecovery.utils.Common
|
import com.ux.video.file.filerecovery.utils.Common
|
||||||
import com.ux.video.file.filerecovery.utils.ExtendFunctions.dpToPx
|
import com.ux.video.file.filerecovery.utils.ExtendFunctions.dpToPx
|
||||||
@ -32,6 +34,7 @@ import com.ux.video.file.filerecovery.utils.ScanType
|
|||||||
import com.ux.video.file.filerecovery.video.PlayMediaManager
|
import com.ux.video.file.filerecovery.video.PlayMediaManager
|
||||||
import com.ux.video.file.filerecovery.video.VideoPlayActivity
|
import com.ux.video.file.filerecovery.video.VideoPlayActivity
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import kotlin.getValue
|
||||||
|
|
||||||
class DetailsActivity : BaseActivity<ActivityDetailsBinding>() {
|
class DetailsActivity : BaseActivity<ActivityDetailsBinding>() {
|
||||||
|
|
||||||
@ -40,40 +43,42 @@ class DetailsActivity : BaseActivity<ActivityDetailsBinding>() {
|
|||||||
val KEY_SHOW_SHARE = "show_share"
|
val KEY_SHOW_SHARE = "show_share"
|
||||||
}
|
}
|
||||||
|
|
||||||
private var playMediaManager: PlayMediaManager? = null
|
private var playMediaManager: PlayMediaManager? = null
|
||||||
|
|
||||||
private lateinit var fileType: FileType
|
private var fileType: FileType? = null
|
||||||
private var myData: ResultDataFiles? = null
|
private var myData: ResultDataFiles? = null
|
||||||
|
|
||||||
private var showShare = false
|
private var showShare = false
|
||||||
|
|
||||||
|
private val viewModel: DetailsViewModel by viewModels()
|
||||||
|
|
||||||
override fun inflateBinding(inflater: LayoutInflater): ActivityDetailsBinding =
|
override fun inflateBinding(inflater: LayoutInflater): ActivityDetailsBinding =
|
||||||
ActivityDetailsBinding.inflate(inflater)
|
ActivityDetailsBinding.inflate(inflater)
|
||||||
|
|
||||||
override fun initView() {
|
override fun initView() {
|
||||||
super.initView()
|
super.initView()
|
||||||
myData = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
// myData = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
intent.getParcelableExtra(KEY_CLICK_ITEM, ResultDataFiles::class.java)
|
// intent.getParcelableExtra(KEY_CLICK_ITEM, ResultDataFiles::class.java)
|
||||||
} else {
|
// } else {
|
||||||
@Suppress("DEPRECATION")
|
// @Suppress("DEPRECATION")
|
||||||
intent.getParcelableExtra(KEY_CLICK_ITEM)
|
// intent.getParcelableExtra(KEY_CLICK_ITEM)
|
||||||
|
// }
|
||||||
|
viewModel.clickData.observe(this){
|
||||||
|
myData = it
|
||||||
|
Common.showLog("------myData=${myData}")
|
||||||
|
myData?.apply {
|
||||||
|
initValue()
|
||||||
|
setView()
|
||||||
|
}?.fileType?.let {
|
||||||
|
fileType = it
|
||||||
|
Common.showLog("------fileType11=${fileType}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
val intExtra = intent.getIntExtra(Common.KEY_FILE_TYPE, FileType.PHOTO.value)
|
|
||||||
|
|
||||||
myData?.fileType.let {
|
|
||||||
if (it != null) {
|
|
||||||
fileType = it
|
|
||||||
Common.showLog("------fileType=${fileType}")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
showShare = intent.getBooleanExtra(KEY_SHOW_SHARE, false)
|
showShare = intent.getBooleanExtra(KEY_SHOW_SHARE, false)
|
||||||
setView()
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun initData() {
|
private fun initValue(){
|
||||||
super.initData()
|
|
||||||
binding.run {
|
binding.run {
|
||||||
imageViewBack.setOnClickListener { finish() }
|
imageViewBack.setOnClickListener { finish() }
|
||||||
myData?.let { resultPhotosFiles ->
|
myData?.let { resultPhotosFiles ->
|
||||||
@ -134,91 +139,91 @@ class DetailsActivity : BaseActivity<ActivityDetailsBinding>() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
myData?.let {
|
myData?.let {
|
||||||
|
|
||||||
when (it.fileType) {
|
when (it.fileType) {
|
||||||
FileType.PHOTO -> {
|
FileType.PHOTO -> {
|
||||||
layoutName.isVisible = true
|
layoutName.isVisible = true
|
||||||
layoutPath.isVisible = true
|
layoutPath.isVisible = true
|
||||||
layoutResolution.isVisible = true
|
layoutResolution.isVisible = true
|
||||||
layoutDate.isVisible = true
|
layoutDate.isVisible = true
|
||||||
frameImage.setBackgroundResource(0)
|
frameImage.setBackgroundResource(0)
|
||||||
|
|
||||||
|
|
||||||
layoutSeekbar.isVisible = false
|
layoutSeekbar.isVisible = false
|
||||||
layoutType.isVisible = false
|
layoutType.isVisible = false
|
||||||
layoutSize.isVisible = false
|
layoutSize.isVisible = false
|
||||||
layoutDuration.isVisible = false
|
layoutDuration.isVisible = false
|
||||||
|
|
||||||
imPlay.isVisible = false
|
imPlay.isVisible = false
|
||||||
|
|
||||||
myData?.targetFile()?.let { loadImage(image, it) }
|
myData?.targetFile()?.let { loadImage(image, it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
FileType.VIDEO -> {
|
FileType.VIDEO -> {
|
||||||
layoutName.isVisible = true
|
layoutName.isVisible = true
|
||||||
layoutPath.isVisible = true
|
layoutPath.isVisible = true
|
||||||
layoutResolution.isVisible = true
|
layoutResolution.isVisible = true
|
||||||
layoutDate.isVisible = true
|
layoutDate.isVisible = true
|
||||||
layoutDuration.isVisible = true
|
layoutDuration.isVisible = true
|
||||||
frameImage.setBackgroundResource(0)
|
frameImage.setBackgroundResource(0)
|
||||||
|
|
||||||
|
|
||||||
layoutSeekbar.isVisible = false
|
layoutSeekbar.isVisible = false
|
||||||
layoutType.isVisible = false
|
layoutType.isVisible = false
|
||||||
layoutSize.isVisible = false
|
layoutSize.isVisible = false
|
||||||
|
|
||||||
imPlay.isVisible = true
|
imPlay.isVisible = true
|
||||||
myData?.let { data ->
|
myData?.let { data ->
|
||||||
loadImage(image, data.targetFile())
|
loadImage(image, data.targetFile())
|
||||||
frameImage.setOnClickListener {
|
frameImage.setOnClickListener {
|
||||||
startActivity(
|
startActivity(
|
||||||
Intent(
|
Intent(
|
||||||
this@DetailsActivity,
|
this@DetailsActivity,
|
||||||
VideoPlayActivity::class.java
|
VideoPlayActivity::class.java
|
||||||
).apply {
|
).apply {
|
||||||
putExtra(VideoPlayActivity.KEY_DATA, data)
|
// putExtra(VideoPlayActivity.KEY_DATA, data)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FileType.AUDIO -> {
|
FileType.AUDIO -> {
|
||||||
Common.showLog("----------音频")
|
Common.showLog("----------音频")
|
||||||
layoutName.isVisible = true
|
layoutName.isVisible = true
|
||||||
layoutPath.isVisible = true
|
layoutPath.isVisible = true
|
||||||
layoutSize.isVisible = true
|
layoutSize.isVisible = true
|
||||||
layoutDate.isVisible = true
|
layoutDate.isVisible = true
|
||||||
layoutDuration.isVisible = true
|
layoutDuration.isVisible = true
|
||||||
layoutSeekbar.isVisible = true
|
layoutSeekbar.isVisible = true
|
||||||
imPlay.isVisible = true
|
imPlay.isVisible = true
|
||||||
frameImage.setBackgroundResource(R.drawable.bg_info_music_f2f2f7_8)
|
frameImage.setBackgroundResource(R.drawable.bg_info_music_f2f2f7_8)
|
||||||
|
|
||||||
loadCenterImage(image, R.drawable.image_info_music)
|
loadCenterImage(image, R.drawable.image_info_music)
|
||||||
|
|
||||||
initPlayAudio()
|
initPlayAudio()
|
||||||
layoutResolution.isVisible = false
|
layoutResolution.isVisible = false
|
||||||
layoutType.isVisible = false
|
layoutType.isVisible = false
|
||||||
}
|
}
|
||||||
|
|
||||||
FileType.DOCUMENT -> {
|
FileType.DOCUMENT -> {
|
||||||
layoutName.isVisible = true
|
layoutName.isVisible = true
|
||||||
layoutType.isVisible = true
|
layoutType.isVisible = true
|
||||||
layoutPath.isVisible = true
|
layoutPath.isVisible = true
|
||||||
layoutSize.isVisible = true
|
layoutSize.isVisible = true
|
||||||
layoutDate.isVisible = true
|
layoutDate.isVisible = true
|
||||||
|
|
||||||
frameImage.setBackgroundResource(R.drawable.bg_info_music_f2f2f7_8)
|
frameImage.setBackgroundResource(R.drawable.bg_info_music_f2f2f7_8)
|
||||||
myData?.targetFile()?.let {
|
myData?.targetFile()?.let {
|
||||||
loadCenterImage(image, Common.getFileIconRes(it))
|
loadCenterImage(image, Common.getFileIconRes(it))
|
||||||
}
|
}
|
||||||
imPlay.isVisible = false
|
imPlay.isVisible = false
|
||||||
layoutSeekbar.isVisible = false
|
layoutSeekbar.isVisible = false
|
||||||
layoutResolution.isVisible = false
|
layoutResolution.isVisible = false
|
||||||
layoutDuration.isVisible = false
|
layoutDuration.isVisible = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,7 +294,7 @@ class DetailsActivity : BaseActivity<ActivityDetailsBinding>() {
|
|||||||
startActivity(Intent(this@DetailsActivity, RecoverySuccessActivity::class.java).apply {
|
startActivity(Intent(this@DetailsActivity, RecoverySuccessActivity::class.java).apply {
|
||||||
putExtra(RecoverySuccessActivity.Companion.KEY_SUCCESS_COUNT, number)
|
putExtra(RecoverySuccessActivity.Companion.KEY_SUCCESS_COUNT, number)
|
||||||
putExtra(RecoverySuccessActivity.Companion.KEY_SUCCESS_TYPE, type)
|
putExtra(RecoverySuccessActivity.Companion.KEY_SUCCESS_TYPE, type)
|
||||||
putExtra(Common.KEY_FILE_TYPE, fileType.value)
|
putExtra(Common.KEY_FILE_TYPE, fileType?.value?: FileType.PHOTO.value)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,22 @@
|
|||||||
|
package com.ux.video.file.filerecovery.detail
|
||||||
|
|
||||||
|
import androidx.lifecycle.MutableLiveData
|
||||||
|
import androidx.lifecycle.ViewModel
|
||||||
|
import com.ux.video.file.filerecovery.db.ResultData
|
||||||
|
import com.ux.video.file.filerecovery.db.ResultDataFiles
|
||||||
|
import com.ux.video.file.filerecovery.result.ScanResultRepository
|
||||||
|
|
||||||
|
class DetailsViewModel : ViewModel() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
val clickData: MutableLiveData<ResultDataFiles> = ClickDataRepository.clickData
|
||||||
|
|
||||||
|
fun updateData(data: ResultDataFiles) {
|
||||||
|
ClickDataRepository.setClickItemData(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setClickItemData(data: ResultDataFiles) {
|
||||||
|
clickData.postValue(data)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -186,14 +186,15 @@ class RecoveredFragment : BaseFragment<FragmentRecoveryPhotoBinding>() {
|
|||||||
hideThumbnailsUpdate = { hide ->
|
hideThumbnailsUpdate = { hide ->
|
||||||
|
|
||||||
}) { item ->
|
}) { item ->
|
||||||
|
sharedViewModel.updateClickData(item)
|
||||||
|
// TODO:
|
||||||
startActivity(
|
startActivity(
|
||||||
Intent(
|
Intent(
|
||||||
requireContext(),
|
requireContext(),
|
||||||
DetailsActivity::class.java
|
DetailsActivity::class.java
|
||||||
).apply {
|
).apply {
|
||||||
putExtra(KEY_SCAN_TYPE, fileType.value)
|
putExtra(KEY_SCAN_TYPE, fileType.value)
|
||||||
putExtra(DetailsActivity.KEY_CLICK_ITEM, item)
|
// putExtra(DetailsActivity.KEY_CLICK_ITEM, item)
|
||||||
putExtra(DetailsActivity.KEY_SHOW_SHARE, true)
|
putExtra(DetailsActivity.KEY_SHOW_SHARE, true)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import androidx.lifecycle.LiveData
|
|||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import com.ux.video.file.filerecovery.db.ResultDataFiles
|
import com.ux.video.file.filerecovery.db.ResultDataFiles
|
||||||
|
import com.ux.video.file.filerecovery.detail.ClickDataRepository
|
||||||
import com.ux.video.file.filerecovery.utils.Common
|
import com.ux.video.file.filerecovery.utils.Common
|
||||||
import com.ux.video.file.filerecovery.utils.FileType
|
import com.ux.video.file.filerecovery.utils.FileType
|
||||||
|
|
||||||
@ -103,4 +104,9 @@ class RecoveryPhotoViewModel : ViewModel() {
|
|||||||
FileType.DOCUMENT -> _selectedDocumentsLiveData
|
FileType.DOCUMENT -> _selectedDocumentsLiveData
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun updateClickData(data: ResultDataFiles) {
|
||||||
|
ClickDataRepository.setClickItemData(data)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -16,6 +16,7 @@ import com.ux.video.file.filerecovery.base.BaseActivity
|
|||||||
import com.ux.video.file.filerecovery.databinding.ActivityPhotoSortingBinding
|
import com.ux.video.file.filerecovery.databinding.ActivityPhotoSortingBinding
|
||||||
import com.ux.video.file.filerecovery.db.ResultDataFiles
|
import com.ux.video.file.filerecovery.db.ResultDataFiles
|
||||||
import com.ux.video.file.filerecovery.db.isThumbnail
|
import com.ux.video.file.filerecovery.db.isThumbnail
|
||||||
|
import com.ux.video.file.filerecovery.detail.ClickDataRepository
|
||||||
import com.ux.video.file.filerecovery.detail.DetailsActivity
|
import com.ux.video.file.filerecovery.detail.DetailsActivity
|
||||||
import com.ux.video.file.filerecovery.success.RecoverySuccessActivity
|
import com.ux.video.file.filerecovery.success.RecoverySuccessActivity
|
||||||
import com.ux.video.file.filerecovery.utils.Common
|
import com.ux.video.file.filerecovery.utils.Common
|
||||||
@ -153,13 +154,14 @@ class SortingActivity : BaseActivity<ActivityPhotoSortingBinding>() {
|
|||||||
|
|
||||||
|
|
||||||
}) { item ->
|
}) { item ->
|
||||||
|
viewModel.updateClickData(item)
|
||||||
startActivity(
|
startActivity(
|
||||||
Intent(
|
Intent(
|
||||||
this@SortingActivity,
|
this@SortingActivity,
|
||||||
DetailsActivity::class.java
|
DetailsActivity::class.java
|
||||||
).apply {
|
).apply {
|
||||||
putExtra(Common.KEY_FILE_TYPE, item.fileType.value)
|
putExtra(Common.KEY_FILE_TYPE, item.fileType.value)
|
||||||
putExtra(DetailsActivity.KEY_CLICK_ITEM, item)
|
// putExtra(DetailsActivity.KEY_CLICK_ITEM, item)
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -172,13 +174,14 @@ class SortingActivity : BaseActivity<ActivityPhotoSortingBinding>() {
|
|||||||
{ actionPath, isAdd ->
|
{ actionPath, isAdd ->
|
||||||
viewModel.toggleSelection(isAdd, actionPath)
|
viewModel.toggleSelection(isAdd, actionPath)
|
||||||
}) { item ->
|
}) { item ->
|
||||||
|
viewModel.updateClickData(item)
|
||||||
startActivity(
|
startActivity(
|
||||||
Intent(
|
Intent(
|
||||||
this@SortingActivity,
|
this@SortingActivity,
|
||||||
DetailsActivity::class.java
|
DetailsActivity::class.java
|
||||||
).apply {
|
).apply {
|
||||||
putExtra(Common.KEY_FILE_TYPE, fileType.value)
|
putExtra(Common.KEY_FILE_TYPE, fileType.value)
|
||||||
putExtra(DetailsActivity.KEY_CLICK_ITEM, item)
|
// putExtra(DetailsActivity.KEY_CLICK_ITEM, item)
|
||||||
})
|
})
|
||||||
}.apply {
|
}.apply {
|
||||||
setData(sortByDateReverse)
|
setData(sortByDateReverse)
|
||||||
@ -1035,4 +1038,9 @@ class SortingActivity : BaseActivity<ActivityPhotoSortingBinding>() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun updateClickData(data: ResultDataFiles) {
|
||||||
|
ClickDataRepository.setClickItemData(data)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -5,6 +5,7 @@ import androidx.lifecycle.MutableLiveData
|
|||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import com.ux.video.file.filerecovery.db.ResultData
|
import com.ux.video.file.filerecovery.db.ResultData
|
||||||
import com.ux.video.file.filerecovery.db.ResultDataFiles
|
import com.ux.video.file.filerecovery.db.ResultDataFiles
|
||||||
|
import com.ux.video.file.filerecovery.detail.ClickDataRepository
|
||||||
import com.ux.video.file.filerecovery.result.ScanResultRepository
|
import com.ux.video.file.filerecovery.result.ScanResultRepository
|
||||||
import com.ux.video.file.filerecovery.utils.Common
|
import com.ux.video.file.filerecovery.utils.Common
|
||||||
|
|
||||||
@ -90,6 +91,8 @@ class SortingViewModel : ViewModel() {
|
|||||||
val current = _selectedLiveData.value
|
val current = _selectedLiveData.value
|
||||||
return current?.contains(resultDataFiles) == true
|
return current?.contains(resultDataFiles) == true
|
||||||
}
|
}
|
||||||
|
fun updateClickData(data: ResultDataFiles) {
|
||||||
|
ClickDataRepository.setClickItemData(data)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -6,6 +6,7 @@ import android.os.Build
|
|||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
|
import androidx.activity.viewModels
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.media3.common.MediaItem
|
import androidx.media3.common.MediaItem
|
||||||
import androidx.media3.common.Player
|
import androidx.media3.common.Player
|
||||||
@ -16,9 +17,11 @@ import com.ux.video.file.filerecovery.databinding.ActivityVideoPlayBinding
|
|||||||
import com.ux.video.file.filerecovery.sort.RecoverOrDeleteManager
|
import com.ux.video.file.filerecovery.sort.RecoverOrDeleteManager
|
||||||
import com.ux.video.file.filerecovery.db.ResultDataFiles
|
import com.ux.video.file.filerecovery.db.ResultDataFiles
|
||||||
import com.ux.video.file.filerecovery.db.targetFile
|
import com.ux.video.file.filerecovery.db.targetFile
|
||||||
|
import com.ux.video.file.filerecovery.detail.DetailsViewModel
|
||||||
import com.ux.video.file.filerecovery.success.RecoverySuccessActivity
|
import com.ux.video.file.filerecovery.success.RecoverySuccessActivity
|
||||||
import com.ux.video.file.filerecovery.utils.Common
|
import com.ux.video.file.filerecovery.utils.Common
|
||||||
import com.ux.video.file.filerecovery.utils.FileType
|
import com.ux.video.file.filerecovery.utils.FileType
|
||||||
|
import kotlin.getValue
|
||||||
|
|
||||||
class VideoPlayActivity : BaseActivity<ActivityVideoPlayBinding>() {
|
class VideoPlayActivity : BaseActivity<ActivityVideoPlayBinding>() {
|
||||||
|
|
||||||
@ -28,6 +31,7 @@ class VideoPlayActivity : BaseActivity<ActivityVideoPlayBinding>() {
|
|||||||
|
|
||||||
private lateinit var player: ExoPlayer
|
private lateinit var player: ExoPlayer
|
||||||
private var myData: ResultDataFiles? = null
|
private var myData: ResultDataFiles? = null
|
||||||
|
private val viewModel: VideoPlayViewModel by viewModels()
|
||||||
private val updateHandler = Handler(Looper.getMainLooper())
|
private val updateHandler = Handler(Looper.getMainLooper())
|
||||||
override fun inflateBinding(inflater: LayoutInflater): ActivityVideoPlayBinding =
|
override fun inflateBinding(inflater: LayoutInflater): ActivityVideoPlayBinding =
|
||||||
ActivityVideoPlayBinding.inflate(inflater)
|
ActivityVideoPlayBinding.inflate(inflater)
|
||||||
@ -40,86 +44,56 @@ class VideoPlayActivity : BaseActivity<ActivityVideoPlayBinding>() {
|
|||||||
|
|
||||||
override fun initData() {
|
override fun initData() {
|
||||||
super.initData()
|
super.initData()
|
||||||
myData = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
// myData = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
intent.getParcelableExtra(KEY_DATA, ResultDataFiles::class.java)
|
// intent.getParcelableExtra(KEY_DATA, ResultDataFiles::class.java)
|
||||||
} else {
|
// } else {
|
||||||
@Suppress("DEPRECATION")
|
// @Suppress("DEPRECATION")
|
||||||
intent.getParcelableExtra(KEY_DATA)
|
// intent.getParcelableExtra(KEY_DATA)
|
||||||
}
|
// }
|
||||||
// initPlayer()
|
viewModel.clickData.observe(this){
|
||||||
binding.run {
|
myData = it
|
||||||
myData?.let { resultPhotosFiles->
|
|
||||||
imageBack.setOnClickListener { finish() }
|
|
||||||
resultPhotosFiles.targetFile().let {
|
|
||||||
PlayMediaManager(context = this@VideoPlayActivity, mediaFile = it, playView = playerView,
|
|
||||||
seekBar = seekBar, playBtn = playImage, onUpdateProgress = { current,total->
|
|
||||||
textTimeCurrent.text = current
|
|
||||||
textTimeTotal.text = total
|
|
||||||
} )
|
|
||||||
}
|
|
||||||
|
|
||||||
// playImage.setOnClickListener {
|
binding.run {
|
||||||
// if (player.playbackState == Player.STATE_ENDED) {
|
myData?.let { resultPhotosFiles->
|
||||||
// player.seekTo(0)
|
imageBack.setOnClickListener { finish() }
|
||||||
// }
|
resultPhotosFiles.targetFile().let {
|
||||||
// if (!player.isPlaying) {
|
PlayMediaManager(context = this@VideoPlayActivity, mediaFile = it, playView = playerView,
|
||||||
// player.play()
|
seekBar = seekBar, playBtn = playImage, onUpdateProgress = { current,total->
|
||||||
// it.isSelected = true
|
textTimeCurrent.text = current
|
||||||
// } else {
|
textTimeTotal.text = total
|
||||||
// player.pause()
|
} )
|
||||||
// it.isSelected = false
|
}
|
||||||
// }
|
|
||||||
// }
|
layoutBottom.tvLeft.run {
|
||||||
// seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
|
text = resources.getString(R.string.delete)
|
||||||
// override fun onProgressChanged(
|
setOnClickListener {
|
||||||
// seekBar: SeekBar?,
|
RecoverOrDeleteManager.showConfirmDeleteDialog(
|
||||||
// progress: Int,
|
true,
|
||||||
// fromUser: Boolean
|
supportFragmentManager,
|
||||||
// ) {
|
lifecycleScope,
|
||||||
// if (fromUser) {
|
setOf(resultPhotosFiles)
|
||||||
// val newPosition = progress * player.duration / 100
|
) { count ->
|
||||||
// player.seekTo(newPosition)
|
complete(count, 1)
|
||||||
// }
|
}
|
||||||
// }
|
|
||||||
//
|
|
||||||
// override fun onStartTrackingTouch(seekBar: SeekBar?) {
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// override fun onStopTrackingTouch(seekBar: SeekBar?) {
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// })
|
|
||||||
// startProgressUpdater()
|
|
||||||
layoutBottom.tvLeft.run {
|
|
||||||
text = resources.getString(R.string.delete)
|
|
||||||
setOnClickListener {
|
|
||||||
RecoverOrDeleteManager.showConfirmDeleteDialog(
|
|
||||||
true,
|
|
||||||
supportFragmentManager,
|
|
||||||
lifecycleScope,
|
|
||||||
setOf(resultPhotosFiles)
|
|
||||||
) { count ->
|
|
||||||
complete(count, 1)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
layoutBottom.tvRight.run {
|
layoutBottom.tvRight.run {
|
||||||
text = resources.getString(R.string.recover)
|
text = resources.getString(R.string.recover)
|
||||||
setOnClickListener {
|
setOnClickListener {
|
||||||
RecoverOrDeleteManager.showRecoveringDialog(
|
RecoverOrDeleteManager.showRecoveringDialog(
|
||||||
supportFragmentManager,
|
supportFragmentManager,
|
||||||
lifecycleScope,
|
lifecycleScope,
|
||||||
setOf(resultPhotosFiles)
|
setOf(resultPhotosFiles)
|
||||||
) { count ->
|
) { count ->
|
||||||
complete(count, 0)
|
complete(count, 0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun startProgressUpdater() {
|
private fun startProgressUpdater() {
|
||||||
|
|||||||
@ -0,0 +1,23 @@
|
|||||||
|
package com.ux.video.file.filerecovery.video
|
||||||
|
|
||||||
|
import androidx.lifecycle.MutableLiveData
|
||||||
|
import androidx.lifecycle.ViewModel
|
||||||
|
import com.ux.video.file.filerecovery.db.ResultData
|
||||||
|
import com.ux.video.file.filerecovery.db.ResultDataFiles
|
||||||
|
import com.ux.video.file.filerecovery.detail.ClickDataRepository
|
||||||
|
import com.ux.video.file.filerecovery.result.ScanResultRepository
|
||||||
|
|
||||||
|
class VideoPlayViewModel : ViewModel() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
val clickData: MutableLiveData<ResultDataFiles> = ClickDataRepository.clickData
|
||||||
|
|
||||||
|
fun updateData(data: ResultDataFiles) {
|
||||||
|
ClickDataRepository.setClickItemData(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setClickItemData(data: ResultDataFiles) {
|
||||||
|
clickData.postValue(data)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user