Skip to content

Commit e75d1f6

Browse files
committed
Fix crash issues on android 9.0
1 parent 6fbc3b7 commit e75d1f6

File tree

9 files changed

+36
-16
lines changed

9 files changed

+36
-16
lines changed

app/src/main/java/com/ismartcoding/plain/features/media/AudioMediaStoreHelper.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ object AudioMediaStoreHelper : BaseMediaContentHelper() {
2020
override val mediaType: MediaType = MediaType.AUDIO
2121

2222
override fun getProjection(): Array<String> {
23-
return arrayOf(
23+
val projection = mutableListOf(
2424
MediaStore.Audio.Media._ID,
2525
MediaStore.Audio.Media.TITLE,
2626
MediaStore.Audio.Media.ARTIST,
@@ -29,9 +29,16 @@ object AudioMediaStoreHelper : BaseMediaContentHelper() {
2929
MediaStore.Audio.Media.DATE_ADDED,
3030
MediaStore.Audio.Media.DATE_MODIFIED,
3131
MediaStore.Audio.Media.DATA,
32-
MediaStore.Audio.Media.BUCKET_ID,
3332
MediaStore.Audio.Media.ALBUM_ID,
3433
)
34+
35+
if (isQPlus()) {
36+
projection.add(
37+
MediaStore.Audio.Media.BUCKET_ID,
38+
)
39+
}
40+
41+
return projection.toTypedArray()
3542
}
3643

3744
override fun buildBaseWhere(filterFields: List<FilterField>): ContentWhere {
@@ -82,7 +89,9 @@ object AudioMediaStoreHelper : BaseMediaContentHelper() {
8289
val createdAt = cursor.getTimeSecondsValue(MediaStore.Audio.Media.DATE_ADDED, cache)
8390
val updatedAt = cursor.getTimeSecondsValue(MediaStore.Audio.Media.DATE_MODIFIED, cache)
8491
val path = cursor.getStringValue(MediaStore.Audio.Media.DATA, cache)
85-
val bucketId = cursor.getStringValue(MediaStore.Audio.Media.BUCKET_ID, cache)
92+
val bucketId = if (isQPlus()) {
93+
cursor.getStringValue(MediaStore.Audio.Media.BUCKET_ID, cache)
94+
} else ""
8695
val albumId = cursor.getStringValue(MediaStore.Audio.Media.ALBUM_ID, cache)
8796
DAudio(id, title, artist, path, duration, size, bucketId, albumId, createdAt, updatedAt)
8897
} ?: emptyList()

app/src/main/java/com/ismartcoding/plain/features/media/VideoMediaStoreHelper.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ object VideoMediaStoreHelper : BaseMediaContentHelper() {
2222
override val mediaType: MediaType = MediaType.VIDEO
2323

2424
override fun getProjection(): Array<String> {
25-
return arrayOf(
26-
MediaStore.Video.Media._ID,
25+
val projection = mutableListOf(
26+
MediaStore.Video.Media._ID,
2727
MediaStore.Video.Media.TITLE,
2828
MediaStore.Video.Media.DATA,
2929
MediaStore.Video.Media.SIZE,
@@ -32,9 +32,13 @@ object VideoMediaStoreHelper : BaseMediaContentHelper() {
3232
MediaStore.Video.Media.DATE_MODIFIED,
3333
MediaStore.Video.Media.WIDTH,
3434
MediaStore.Video.Media.HEIGHT,
35-
MediaStore.Video.Media.ORIENTATION,
3635
MediaStore.Video.Media.BUCKET_ID,
3736
)
37+
if (isQPlus()) {
38+
projection.add(MediaStore.Video.Media.ORIENTATION)
39+
}
40+
41+
return projection.toTypedArray()
3842
}
3943

4044
override fun buildBaseWhere(filterFields: List<FilterField>): ContentWhere {
@@ -68,7 +72,7 @@ object VideoMediaStoreHelper : BaseMediaContentHelper() {
6872
val updatedAt = cursor.getTimeSecondsValue(MediaStore.Video.Media.DATE_MODIFIED, cache)
6973
val width = cursor.getIntValue(MediaStore.Video.Media.WIDTH, cache)
7074
val height = cursor.getIntValue(MediaStore.Video.Media.HEIGHT, cache)
71-
val rotation = cursor.getIntValue(MediaStore.Video.Media.ORIENTATION, cache)
75+
val rotation = if (isQPlus()) cursor.getIntValue(MediaStore.Video.Media.ORIENTATION, cache) else 0
7276
val path = cursor.getStringValue(MediaStore.Video.Media.DATA, cache)
7377
val bucketId = cursor.getStringValue(MediaStore.Video.Media.BUCKET_ID, cache)
7478
DVideo(id, title, path, duration, size, width, height, rotation, bucketId, createdAt, updatedAt)

app/src/main/java/com/ismartcoding/plain/ui/base/MediaTopBar.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import androidx.compose.ui.platform.LocalContext
99
import androidx.compose.ui.res.stringResource
1010
import androidx.compose.ui.unit.dp
1111
import androidx.navigation.NavHostController
12+
import com.ismartcoding.lib.isQPlus
1213
import com.ismartcoding.plain.R
1314
import com.ismartcoding.plain.data.DMediaBucket
1415
import com.ismartcoding.plain.data.IData
@@ -77,10 +78,11 @@ fun <T : IData> MediaTopBar(
7778
ActionButtonSearch {
7879
mediaVM.enterSearchMode()
7980
}
80-
ActionButtonFolders {
81-
mediaVM.showFoldersDialog.value = true
81+
if (isQPlus()) {
82+
ActionButtonFolders {
83+
mediaVM.showFoldersDialog.value = true
84+
}
8285
}
83-
8486
ActionButtonCast {
8587
castVM.showCastDialog.value = true
8688
}

app/src/main/java/com/ismartcoding/plain/ui/models/MediaFoldersViewModel.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import androidx.compose.runtime.mutableStateOf
55
import androidx.compose.runtime.toMutableStateList
66
import androidx.lifecycle.ViewModel
77
import androidx.lifecycle.viewModelScope
8+
import com.ismartcoding.lib.isQPlus
89
import com.ismartcoding.plain.R
910
import com.ismartcoding.plain.data.DMediaBucket
1011
import com.ismartcoding.plain.enums.DataType
@@ -48,7 +49,11 @@ class MediaFoldersViewModel : ViewModel() {
4849
}
4950

5051
DataType.AUDIO -> {
51-
AudioMediaStoreHelper.getBucketsAsync(context)
52+
if (isQPlus()) {
53+
AudioMediaStoreHelper.getBucketsAsync(context)
54+
} else {
55+
emptyList()
56+
}
5257
}
5358

5459
else -> {

app/src/main/java/com/ismartcoding/plain/ui/page/MediaFoldersBottomSheet.kt renamed to app/src/main/java/com/ismartcoding/plain/ui/page/root/MediaFoldersBottomSheet.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.ismartcoding.plain.ui.page
1+
package com.ismartcoding.plain.ui.page.root
22

33
import androidx.compose.animation.AnimatedVisibility
44
import androidx.compose.animation.fadeIn

app/src/main/java/com/ismartcoding/plain/ui/page/root/contents/TabContentAudio.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ import com.ismartcoding.plain.ui.models.CastViewModel
5959
import com.ismartcoding.plain.ui.models.MediaFoldersViewModel
6060
import com.ismartcoding.plain.ui.models.TagsViewModel
6161
import com.ismartcoding.plain.ui.models.VTabData
62-
import com.ismartcoding.plain.ui.page.MediaFoldersBottomSheet
62+
import com.ismartcoding.plain.ui.page.root.MediaFoldersBottomSheet
6363
import com.ismartcoding.plain.ui.page.audio.AudioPageState
6464
import com.ismartcoding.plain.ui.page.audio.components.AudioListItem
6565
import com.ismartcoding.plain.ui.page.audio.components.AudioPlayerBar

app/src/main/java/com/ismartcoding/plain/ui/page/root/contents/TabContentImages.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ import com.ismartcoding.plain.ui.models.ImagesViewModel
6363
import com.ismartcoding.plain.ui.models.MediaFoldersViewModel
6464
import com.ismartcoding.plain.ui.models.TagsViewModel
6565
import com.ismartcoding.plain.ui.models.VTabData
66-
import com.ismartcoding.plain.ui.page.MediaFoldersBottomSheet
66+
import com.ismartcoding.plain.ui.page.root.MediaFoldersBottomSheet
6767
import com.ismartcoding.plain.ui.page.images.ImagesPageState
6868
import com.ismartcoding.plain.ui.page.images.ViewImageBottomSheet
6969
import com.ismartcoding.plain.ui.page.tags.TagsBottomSheet

app/src/main/java/com/ismartcoding/plain/ui/page/root/contents/TabContentVideos.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ import com.ismartcoding.plain.ui.models.MediaFoldersViewModel
6363
import com.ismartcoding.plain.ui.models.TagsViewModel
6464
import com.ismartcoding.plain.ui.models.VTabData
6565
import com.ismartcoding.plain.ui.models.VideosViewModel
66-
import com.ismartcoding.plain.ui.page.MediaFoldersBottomSheet
66+
import com.ismartcoding.plain.ui.page.root.MediaFoldersBottomSheet
6767
import com.ismartcoding.plain.ui.page.tags.TagsBottomSheet
6868
import com.ismartcoding.plain.ui.page.videos.VideosPageState
6969
import com.ismartcoding.plain.ui.page.videos.ViewVideoBottomSheet

lib/src/main/java/com/ismartcoding/lib/helpers/PhoneHelper.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ object PhoneHelper {
1414
fun getDeviceName(context: Context): String {
1515
var name = ""
1616
try {
17-
name = Settings.Secure.getString(context.contentResolver, "bluetooth_name")
17+
name = Settings.Secure.getString(context.contentResolver, "bluetooth_name") ?: ""
1818
} catch (e: Exception) {
1919
LogCat.e(e.toString())
2020
}

0 commit comments

Comments
 (0)