Explorar el Código

cursor sort order

cursor sort order
Milan Jurkulak hace 3 años
padre
commit
40b0a74af6

+ 5 - 4
app/src/main/kotlin/org/mjdev/tvapp/base/helpers/cursor/AudioCursor.kt

@@ -15,8 +15,9 @@ class AudioCursor(
     context: Context,
     val contentResolver: ContentResolver = context.contentResolver
 ) : CachingCursor(
-    context,
-    AudioItem.URI,
-    AudioItem.MEDIA_PROJECTION,
-    transform = { AudioItem(contentResolver, it) }
+    context = context,
+    uri = AudioItem.URI,
+    projection = AudioItem.MEDIA_PROJECTION,
+    transform = { AudioItem(contentResolver, it) },
+    sortOrder = AudioItem.SORT_ORDER_DATE_DESC,
 )

+ 5 - 0
app/src/main/kotlin/org/mjdev/tvapp/base/helpers/cursor/AudioItem.kt

@@ -20,6 +20,7 @@ import org.mjdev.tvapp.base.interfaces.ItemWithTitle
 import org.mjdev.tvapp.base.interfaces.ItemWithUri
 import timber.log.Timber
 
+@Suppress("unused")
 class AudioItem(
     private val contentResolver: ContentResolver,
     c: Cursor
@@ -57,11 +58,15 @@ class AudioItem(
         }
 
     companion object {
+        const val SORT_ORDER_DATE_DESC: String = MediaStore.Audio.Media.DATE_ADDED + " DESC"
+        const val SORT_ORDER_DATE_ASC: String = MediaStore.Audio.Media.DATE_ADDED + " ASC"
+
         val URI: Uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
         val MEDIA_PROJECTION = arrayOf(
             MediaStore.Audio.Media._ID,
             MediaStore.Audio.Media.TITLE,
             MediaStore.Audio.Media.DATA,
+            MediaStore.Audio.Media.DATE_ADDED,
             // todo more columns
         )
     }

+ 5 - 4
app/src/main/kotlin/org/mjdev/tvapp/base/helpers/cursor/PhotoCursor.kt

@@ -15,8 +15,9 @@ class PhotoCursor(
     context: Context,
     val contentResolver: ContentResolver = context.contentResolver
 ) : CachingCursor(
-    context,
-    PhotoItem.URI,
-    PhotoItem.MEDIA_PROJECTION,
-    transform = { PhotoItem(contentResolver, it) }
+    context = context,
+    uri = PhotoItem.URI,
+    projection = PhotoItem.MEDIA_PROJECTION,
+    transform = { PhotoItem(contentResolver, it) },
+    sortOrder = PhotoItem.SORT_ORDER_DATE_DESC,
 )

+ 5 - 1
app/src/main/kotlin/org/mjdev/tvapp/base/helpers/cursor/PhotoItem.kt

@@ -16,7 +16,7 @@ import org.mjdev.tvapp.base.extensions.CursorExt.asMap
 import org.mjdev.tvapp.base.interfaces.ItemWithImage
 import org.mjdev.tvapp.base.interfaces.ItemWithTitle
 
-@Suppress("UNUSED_PARAMETER")
+@Suppress("UNUSED_PARAMETER", "unused")
 class PhotoItem(
     contentResolver: ContentResolver,
     c: Cursor
@@ -33,11 +33,15 @@ class PhotoItem(
         get() = this[MediaStore.Images.Media.DATA]
 
     companion object {
+        const val SORT_ORDER_DATE_DESC: String = MediaStore.Images.Media.DATE_ADDED + " DESC"
+        const val SORT_ORDER_DATE_ASC: String = MediaStore.Images.Media.DATE_ADDED + " ASC"
+
         val URI: Uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI
         val MEDIA_PROJECTION = arrayOf(
             MediaStore.Images.Media._ID,
             MediaStore.Images.Media.TITLE,
             MediaStore.Images.Media.DATA,
+            MediaStore.Images.Media.DATE_ADDED,
             // todo more columns
         )
     }

+ 5 - 4
app/src/main/kotlin/org/mjdev/tvapp/base/helpers/cursor/VideoCursor.kt

@@ -15,8 +15,9 @@ class VideoCursor(
     context: Context,
     val contentResolver: ContentResolver = context.contentResolver
 ) : CachingCursor(
-    context,
-    VideoItem.URI,
-    VideoItem.MEDIA_PROJECTION,
-    transform = { VideoItem(contentResolver, it) }
+    context = context,
+    uri = VideoItem.URI,
+    projection = VideoItem.MEDIA_PROJECTION,
+    transform = { VideoItem(contentResolver, it) },
+    sortOrder = VideoItem.SORT_ORDER_DATE_DESC,
 )

+ 5 - 0
app/src/main/kotlin/org/mjdev/tvapp/base/helpers/cursor/VideoItem.kt

@@ -20,6 +20,7 @@ import org.mjdev.tvapp.base.interfaces.ItemWithTitle
 import org.mjdev.tvapp.base.interfaces.ItemWithUri
 import timber.log.Timber
 
+@Suppress("unused")
 class VideoItem(
     private val contentResolver: ContentResolver,
     c: Cursor
@@ -57,11 +58,15 @@ class VideoItem(
     }
 
     companion object {
+        const val SORT_ORDER_DATE_DESC: String = MediaStore.Video.Media.DATE_ADDED + " DESC"
+        const val SORT_ORDER_DATE_ASC: String = MediaStore.Video.Media.DATE_ADDED + " ASC"
+
         val URI: Uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI
         val MEDIA_PROJECTION = arrayOf(
             MediaStore.Video.Media._ID,
             MediaStore.Video.Media.TITLE,
             MediaStore.Video.Media.DATA,
+            MediaStore.Video.Media.DATE_ADDED
             // todo more columns
         )
     }

+ 1 - 1
app/src/main/kotlin/org/mjdev/tvapp/base/ui/components/tv/LocalAudioRow.kt

@@ -35,7 +35,7 @@ fun LocalAudioRow(
     backgroundColor: Color = Color.DarkGray,
     selection: String? = null,
     selectionArgs: Array<String>? = null,
-    sortOrder: String? = null,
+    sortOrder: String? = AudioItem.SORT_ORDER_DATE_DESC,
     cardWidth: Dp = computeCardWidth(),
     contentScale: ContentScale = ContentScale.Crop,
     contentResolver: ContentResolver = rememberContentResolver(),

+ 1 - 1
app/src/main/kotlin/org/mjdev/tvapp/base/ui/components/tv/LocalPhotosRow.kt

@@ -35,7 +35,7 @@ fun LocalPhotosRow(
     backgroundColor: Color = Color.DarkGray,
     selection: String? = null,
     selectionArgs: Array<String>? = null,
-    sortOrder: String? = null,
+    sortOrder: String? = PhotoItem.SORT_ORDER_DATE_DESC,
     cardWidth: Dp = computeCardWidth(),
     contentScale: ContentScale = ContentScale.Crop,
     contentResolver: ContentResolver = rememberContentResolver(),

+ 1 - 1
app/src/main/kotlin/org/mjdev/tvapp/base/ui/components/tv/LocalVideoRow.kt

@@ -35,7 +35,7 @@ fun LocalVideoRow(
     backgroundColor: Color = Color.DarkGray,
     selection: String? = null,
     selectionArgs: Array<String>? = null,
-    sortOrder: String? = null,
+    sortOrder: String? = VideoItem.SORT_ORDER_DATE_DESC,
     cardWidth: Dp = computeCardWidth(),
     contentScale: ContentScale = ContentScale.Crop,
     contentResolver: ContentResolver = rememberContentResolver(),