...
This commit is contained in:
parent
c8000d022c
commit
fd0ee96c04
@ -884,7 +884,7 @@ class CompletedFilesFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// [단계 2] 특수 폴더 정리 및 잔여 파일 trash 이동
|
// [단계 2] 특수 폴더 정리 및 잔여 파일 trash 이동
|
||||||
val subtitleExts = setOf("srt", "smi", "ass", "vtt", "txt")
|
val subtitleExts = setOf("srt", "smi", "ass", "vtt")
|
||||||
val protectedDirs = setOf("Images", "Videos", "Documents", "Etc", "trash", "Youtube")
|
val protectedDirs = setOf("Images", "Videos", "Documents", "Etc", "trash", "Youtube")
|
||||||
|
|
||||||
rootDir.listFiles()?.filter { it.isDirectory && !protectedDirs.contains(it.name) }?.forEach { folder ->
|
rootDir.listFiles()?.filter { it.isDirectory && !protectedDirs.contains(it.name) }?.forEach { folder ->
|
||||||
@ -901,11 +901,9 @@ class CompletedFilesFragment : Fragment() {
|
|||||||
videoFiles.forEach { videoFile ->
|
videoFiles.forEach { videoFile ->
|
||||||
if (videoFile.renameTo(File(videoTargetDir, videoFile.name))) {
|
if (videoFile.renameTo(File(videoTargetDir, videoFile.name))) {
|
||||||
movedCount++
|
movedCount++
|
||||||
val videoNameOnly = videoFile.nameWithoutExtension
|
|
||||||
potentialSubtitles.forEach { subFile ->
|
potentialSubtitles.forEach { subFile ->
|
||||||
// if (subFile.nameWithoutExtension.startsWith(videoNameOnly)) {
|
|
||||||
if (subFile.renameTo(File(videoTargetDir, subFile.name))) movedCount++
|
if (subFile.renameTo(File(videoTargetDir, subFile.name))) movedCount++
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1164,40 +1162,7 @@ class CompletedFilesAdapter(
|
|||||||
Glide.with(itemView.context).load(file).placeholder(android.R.drawable.ic_menu_report_image).into(ivThumb)
|
Glide.with(itemView.context).load(file).placeholder(android.R.drawable.ic_menu_report_image).into(ivThumb)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var localPlayer: NativePlayer? = null
|
|
||||||
val textureView = itemView.findViewById<TextureView>(R.id.previewTextureView)
|
|
||||||
ivThumb?.setOnTouchListener { v, event ->
|
|
||||||
when (event.action) {
|
|
||||||
MotionEvent.ACTION_DOWN -> {
|
|
||||||
// 💡 0.5초 뒤에도 누르고 있다면 재생 시작
|
|
||||||
v.postDelayed({
|
|
||||||
if (v.isPressed && extVideos.contains(file.extension.lowercase())) {
|
|
||||||
textureView.visibility = View.VISIBLE
|
|
||||||
localPlayer = NativePlayer().apply {
|
|
||||||
initialize()
|
|
||||||
val pfd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY)
|
|
||||||
setDataSource(pfd.detachFd(), -1)
|
|
||||||
onPreparedListener = {
|
|
||||||
seekTo(60.0) // 1분 지점
|
|
||||||
play(Surface(textureView.surfaceTexture))
|
|
||||||
}
|
|
||||||
prepareAsync()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 500)
|
|
||||||
}
|
|
||||||
|
|
||||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
|
||||||
// 💡 손을 떼면 즉시 뷰 숨기고 플레이어 파괴
|
|
||||||
v.isPressed = false
|
|
||||||
textureView.visibility = View.GONE
|
|
||||||
localPlayer?.stop()
|
|
||||||
localPlayer?.destroy()
|
|
||||||
localPlayer = null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
true // 이벤트를 소비하여 롱클릭/클릭 충돌 방지 (필요 시 조정)
|
|
||||||
}
|
|
||||||
itemView.setOnClickListener { onItemClick(file) }
|
itemView.setOnClickListener { onItemClick(file) }
|
||||||
itemView.setOnLongClickListener {
|
itemView.setOnLongClickListener {
|
||||||
if (file.name != "..") onItemLongClick(file)
|
if (file.name != "..") onItemLongClick(file)
|
||||||
|
|||||||
@ -327,7 +327,7 @@ class MyWallpaperService : WallpaperService() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val requiredSizeRatio = 0.4
|
val requiredSizeRatio = 0.5
|
||||||
|
|
||||||
private fun getVideoSize(file: File): Pair<Int, Int>? {
|
private fun getVideoSize(file: File): Pair<Int, Int>? {
|
||||||
val retriever = android.media.MediaMetadataRetriever()
|
val retriever = android.media.MediaMetadataRetriever()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user