Skip to content

Commit 2da8315

Browse files
author
tanpengcheng
committed
[fix] Fix Android 10 and blow version can't get media files.
1 parent 58cddae commit 2da8315

File tree

3 files changed

+10
-16
lines changed

3 files changed

+10
-16
lines changed

app/src/main/java/com/tans/tfiletransporter/ui/filetransport/BaseMediaFragment.kt

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.tans.tfiletransporter.ui.filetransport
22

3-
import android.os.Environment
43
import android.view.View
54
import androidx.core.content.ContextCompat
65
import androidx.core.view.ViewCompat
@@ -41,7 +40,6 @@ import kotlinx.coroutines.flow.filter
4140
import kotlinx.coroutines.flow.map
4241
import kotlinx.coroutines.launch
4342
import kotlinx.coroutines.withContext
44-
import java.io.File
4543

4644

4745
abstract class BaseMediaFragment(
@@ -57,10 +55,6 @@ abstract class BaseMediaFragment(
5755
(requireActivity() as FileTransportActivity).fileExplore
5856
}
5957

60-
private val androidRootDir: File by lazy {
61-
Environment.getExternalStorageDirectory()
62-
}
63-
6458
override fun CoroutineScope.firstLaunchInitDataCoroutine() {
6559
launch {
6660
refreshMediaItems()
@@ -206,9 +200,9 @@ abstract class BaseMediaFragment(
206200
launch(Dispatchers.IO) {
207201
val currentState = currentState()
208202
val files = when (mediaType) {
209-
MediaType.Image -> currentState.selectedImages.map { File(File(androidRootDir, it.relativePath), it.displayName) }
210-
MediaType.Video -> currentState.selectedVideos.map { File(File(androidRootDir, it.relativePath), it.displayName) }
211-
MediaType.Audio -> currentState.selectedAudios.map { File(File(androidRootDir, it.relativePath), it.displayName) }
203+
MediaType.Image -> currentState.selectedImages.mapNotNull { it.file }
204+
MediaType.Video -> currentState.selectedVideos.mapNotNull { it.file }
205+
MediaType.Audio -> currentState.selectedAudios.mapNotNull { it.file }
212206
}.filter { it.isFile }
213207
val senderFiles = files.map { SenderFile(it, it.toFileExploreFile()) }
214208
if (senderFiles.isNotEmpty()) {
@@ -246,15 +240,15 @@ abstract class BaseMediaFragment(
246240
withContext(Dispatchers.IO) {
247241
when (mediaType) {
248242
MediaType.Image -> {
249-
val images = queryImageFromMediaStore().sortedByDescending { it.dateModified }
243+
val images = queryImageFromMediaStore().sortedByDescending { it.dateModified }.filter { it.file != null }
250244
updateState { it.copy(selectedImages = emptyList(), images = images) }
251245
}
252246
MediaType.Video -> {
253-
val videos = queryVideoFromMediaStore().sortedByDescending { it.dateModified }
247+
val videos = queryVideoFromMediaStore().sortedByDescending { it.dateModified }.filter { it.file != null }
254248
updateState { it.copy(selectedVideos = emptyList(), videos = videos) }
255249
}
256250
MediaType.Audio -> {
257-
val audios = queryAudioFromMediaStore().sortedByDescending { it.dateModified }
251+
val audios = queryAudioFromMediaStore().sortedByDescending { it.dateModified }.filter { it.file != null }
258252
updateState { it.copy(selectedAudios = emptyList(), audios = audios) }
259253
}
260254
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
package com.tans.tfiletransporter.ui.filetransport
22

3-
class MyImagesFragment : BaseMediaFragment(mediaType = Companion.MediaType.Image)
3+
class MyImagesFragment : BaseMediaFragment(Companion.MediaType.Image)

gradle/libs.versions.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ androidJunit = "1.1.5"
88
espressoCore = "3.5.1"
99
appcompat = "1.6.1"
1010
material = "1.11.0"
11-
activity = "1.8.2"
11+
activity = "1.9.0"
1212
annotaion = "1.7.1"
1313
constraintlayout = "2.1.4"
1414
swiperefreshlayout = "1.1.0"
@@ -23,12 +23,12 @@ moshi = "1.15.1"
2323
netty = "4.1.86.Final"
2424
okio = "3.6.0"
2525
rxbinding = "4.0.0"
26-
camerax = "1.3.2"
26+
camerax = "1.3.3"
2727
barcodescan = "17.2.0"
2828
qrcodegen = "3.0.1"
2929
threetenabp = "1.4.6"
3030
glide = "4.16.0"
31-
tuiutils = "1.0.4"
31+
tuiutils = "1.0.5"
3232

3333
[libraries]
3434
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }

0 commit comments

Comments
 (0)