取消intent传递class
This commit is contained in:
parent
ca7a7f9da6
commit
0c1980da94
@ -19,8 +19,8 @@ android {
|
||||
applicationId = "com.ux.video.file.filerecovery"
|
||||
minSdk = 24
|
||||
targetSdk = 36
|
||||
versionCode = 1
|
||||
versionName = "1.0"
|
||||
versionCode = 2
|
||||
versionName = "1.1"
|
||||
project.setProperty("archivesBaseName", "File Recovery Tool" + versionName + "(${versionCode})_$timestamp")
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
@ -24,31 +24,6 @@ data class ResultDataFiles(
|
||||
val sizeString: String,
|
||||
val lastModified: Long, // 时间戳
|
||||
) : 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.ViewGroup
|
||||
import android.widget.ImageView
|
||||
import androidx.activity.viewModels
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
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.targetFile
|
||||
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.utils.Common
|
||||
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.VideoPlayActivity
|
||||
import java.io.File
|
||||
import kotlin.getValue
|
||||
|
||||
class DetailsActivity : BaseActivity<ActivityDetailsBinding>() {
|
||||
|
||||
@ -42,38 +45,40 @@ class DetailsActivity : BaseActivity<ActivityDetailsBinding>() {
|
||||
|
||||
private var playMediaManager: PlayMediaManager? = null
|
||||
|
||||
private lateinit var fileType: FileType
|
||||
private var fileType: FileType? = null
|
||||
private var myData: ResultDataFiles? = null
|
||||
|
||||
private var showShare = false
|
||||
|
||||
private val viewModel: DetailsViewModel by viewModels()
|
||||
|
||||
override fun inflateBinding(inflater: LayoutInflater): ActivityDetailsBinding =
|
||||
ActivityDetailsBinding.inflate(inflater)
|
||||
|
||||
override fun initView() {
|
||||
super.initView()
|
||||
myData = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
intent.getParcelableExtra(KEY_CLICK_ITEM, ResultDataFiles::class.java)
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
intent.getParcelableExtra(KEY_CLICK_ITEM)
|
||||
}
|
||||
val intExtra = intent.getIntExtra(Common.KEY_FILE_TYPE, FileType.PHOTO.value)
|
||||
|
||||
myData?.fileType.let {
|
||||
if (it != null) {
|
||||
// myData = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
// intent.getParcelableExtra(KEY_CLICK_ITEM, ResultDataFiles::class.java)
|
||||
// } else {
|
||||
// @Suppress("DEPRECATION")
|
||||
// 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("------fileType=${fileType}")
|
||||
Common.showLog("------fileType11=${fileType}")
|
||||
}
|
||||
}
|
||||
showShare = intent.getBooleanExtra(KEY_SHOW_SHARE, false)
|
||||
setView()
|
||||
|
||||
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
super.initData()
|
||||
private fun initValue(){
|
||||
binding.run {
|
||||
imageViewBack.setOnClickListener { finish() }
|
||||
myData?.let { resultPhotosFiles ->
|
||||
@ -177,7 +182,7 @@ class DetailsActivity : BaseActivity<ActivityDetailsBinding>() {
|
||||
this@DetailsActivity,
|
||||
VideoPlayActivity::class.java
|
||||
).apply {
|
||||
putExtra(VideoPlayActivity.KEY_DATA, data)
|
||||
// putExtra(VideoPlayActivity.KEY_DATA, data)
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -289,7 +294,7 @@ class DetailsActivity : BaseActivity<ActivityDetailsBinding>() {
|
||||
startActivity(Intent(this@DetailsActivity, RecoverySuccessActivity::class.java).apply {
|
||||
putExtra(RecoverySuccessActivity.Companion.KEY_SUCCESS_COUNT, number)
|
||||
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 ->
|
||||
|
||||
}) { item ->
|
||||
|
||||
sharedViewModel.updateClickData(item)
|
||||
// TODO:
|
||||
startActivity(
|
||||
Intent(
|
||||
requireContext(),
|
||||
DetailsActivity::class.java
|
||||
).apply {
|
||||
putExtra(KEY_SCAN_TYPE, fileType.value)
|
||||
putExtra(DetailsActivity.KEY_CLICK_ITEM, item)
|
||||
// putExtra(DetailsActivity.KEY_CLICK_ITEM, item)
|
||||
putExtra(DetailsActivity.KEY_SHOW_SHARE, true)
|
||||
})
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
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.FileType
|
||||
|
||||
@ -103,4 +104,9 @@ class RecoveryPhotoViewModel : ViewModel() {
|
||||
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.db.ResultDataFiles
|
||||
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.success.RecoverySuccessActivity
|
||||
import com.ux.video.file.filerecovery.utils.Common
|
||||
@ -153,13 +154,14 @@ class SortingActivity : BaseActivity<ActivityPhotoSortingBinding>() {
|
||||
|
||||
|
||||
}) { item ->
|
||||
viewModel.updateClickData(item)
|
||||
startActivity(
|
||||
Intent(
|
||||
this@SortingActivity,
|
||||
DetailsActivity::class.java
|
||||
).apply {
|
||||
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 ->
|
||||
viewModel.toggleSelection(isAdd, actionPath)
|
||||
}) { item ->
|
||||
viewModel.updateClickData(item)
|
||||
startActivity(
|
||||
Intent(
|
||||
this@SortingActivity,
|
||||
DetailsActivity::class.java
|
||||
).apply {
|
||||
putExtra(Common.KEY_FILE_TYPE, fileType.value)
|
||||
putExtra(DetailsActivity.KEY_CLICK_ITEM, item)
|
||||
// putExtra(DetailsActivity.KEY_CLICK_ITEM, item)
|
||||
})
|
||||
}.apply {
|
||||
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 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
|
||||
import com.ux.video.file.filerecovery.utils.Common
|
||||
|
||||
@ -90,6 +91,8 @@ class SortingViewModel : ViewModel() {
|
||||
val current = _selectedLiveData.value
|
||||
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.Looper
|
||||
import android.view.LayoutInflater
|
||||
import androidx.activity.viewModels
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.media3.common.MediaItem
|
||||
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.db.ResultDataFiles
|
||||
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.utils.Common
|
||||
import com.ux.video.file.filerecovery.utils.FileType
|
||||
import kotlin.getValue
|
||||
|
||||
class VideoPlayActivity : BaseActivity<ActivityVideoPlayBinding>() {
|
||||
|
||||
@ -28,6 +31,7 @@ class VideoPlayActivity : BaseActivity<ActivityVideoPlayBinding>() {
|
||||
|
||||
private lateinit var player: ExoPlayer
|
||||
private var myData: ResultDataFiles? = null
|
||||
private val viewModel: VideoPlayViewModel by viewModels()
|
||||
private val updateHandler = Handler(Looper.getMainLooper())
|
||||
override fun inflateBinding(inflater: LayoutInflater): ActivityVideoPlayBinding =
|
||||
ActivityVideoPlayBinding.inflate(inflater)
|
||||
@ -40,13 +44,15 @@ class VideoPlayActivity : BaseActivity<ActivityVideoPlayBinding>() {
|
||||
|
||||
override fun initData() {
|
||||
super.initData()
|
||||
myData = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
intent.getParcelableExtra(KEY_DATA, ResultDataFiles::class.java)
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
intent.getParcelableExtra(KEY_DATA)
|
||||
}
|
||||
// initPlayer()
|
||||
// myData = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
// intent.getParcelableExtra(KEY_DATA, ResultDataFiles::class.java)
|
||||
// } else {
|
||||
// @Suppress("DEPRECATION")
|
||||
// intent.getParcelableExtra(KEY_DATA)
|
||||
// }
|
||||
viewModel.clickData.observe(this){
|
||||
myData = it
|
||||
|
||||
binding.run {
|
||||
myData?.let { resultPhotosFiles->
|
||||
imageBack.setOnClickListener { finish() }
|
||||
@ -58,40 +64,6 @@ class VideoPlayActivity : BaseActivity<ActivityVideoPlayBinding>() {
|
||||
} )
|
||||
}
|
||||
|
||||
// playImage.setOnClickListener {
|
||||
// if (player.playbackState == Player.STATE_ENDED) {
|
||||
// player.seekTo(0)
|
||||
// }
|
||||
// if (!player.isPlaying) {
|
||||
// player.play()
|
||||
// it.isSelected = true
|
||||
// } else {
|
||||
// player.pause()
|
||||
// it.isSelected = false
|
||||
// }
|
||||
// }
|
||||
// seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
|
||||
// override fun onProgressChanged(
|
||||
// seekBar: SeekBar?,
|
||||
// progress: Int,
|
||||
// fromUser: Boolean
|
||||
// ) {
|
||||
// if (fromUser) {
|
||||
// val newPosition = progress * player.duration / 100
|
||||
// player.seekTo(newPosition)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// override fun onStartTrackingTouch(seekBar: SeekBar?) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// override fun onStopTrackingTouch(seekBar: SeekBar?) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// })
|
||||
// startProgressUpdater()
|
||||
layoutBottom.tvLeft.run {
|
||||
text = resources.getString(R.string.delete)
|
||||
setOnClickListener {
|
||||
@ -122,6 +94,8 @@ class VideoPlayActivity : BaseActivity<ActivityVideoPlayBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun startProgressUpdater() {
|
||||
updateHandler.post(object : Runnable {
|
||||
override fun run() {
|
||||
|
||||
@ -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