fix a bug that "newest" is not working on Android sdk 29 or below

This commit is contained in:
Wenqi Li 2021-10-21 13:30:05 +08:00
parent 476d9f2837
commit 077690a43f

View File

@ -74,9 +74,6 @@ class PhotoGalleryPlugin : FlutterPlugin, MethodCallHandler {
MediaStore.Video.Media.DATE_TAKEN, MediaStore.Video.Media.DATE_TAKEN,
MediaStore.Video.Media.DATE_MODIFIED MediaStore.Video.Media.DATE_MODIFIED
) )
const val imageOrderBy = "${MediaStore.Images.Media.DATE_TAKEN} DESC, ${MediaStore.Images.Media.DATE_MODIFIED} DESC"
const val videoOrderBy = "${MediaStore.Video.Media.DATE_TAKEN} DESC, ${MediaStore.Video.Media.DATE_MODIFIED} DESC"
} }
private var context: Context? = null private var context: Context? = null
@ -327,12 +324,17 @@ class PhotoGalleryPlugin : FlutterPlugin, MethodCallHandler {
null null
) )
} else { } else {
val orderBy = if (newest) {
"${MediaStore.Images.Media.DATE_TAKEN} DESC, ${MediaStore.Images.Media.DATE_MODIFIED} DESC"
} else {
"${MediaStore.Images.Media.DATE_TAKEN} ASC, ${MediaStore.Images.Media.DATE_MODIFIED} ASC"
}
imageCursor = this.contentResolver.query( imageCursor = this.contentResolver.query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
imageMetadataProjection, imageMetadataProjection,
if (albumId == allAlbumId) null else "${MediaStore.Images.Media.BUCKET_ID} = $albumId", if (albumId == allAlbumId) null else "${MediaStore.Images.Media.BUCKET_ID} = $albumId",
null, null,
"$imageOrderBy LIMIT $limit OFFSET $offset" "$orderBy LIMIT $limit OFFSET $offset"
) )
} }
@ -392,12 +394,17 @@ class PhotoGalleryPlugin : FlutterPlugin, MethodCallHandler {
null null
) )
} else { } else {
val orderBy = if (newest) {
"${MediaStore.Images.Media.DATE_TAKEN} DESC, ${MediaStore.Images.Media.DATE_MODIFIED} DESC"
} else {
"${MediaStore.Images.Media.DATE_TAKEN} ASC, ${MediaStore.Images.Media.DATE_MODIFIED} ASC"
}
videoCursor = this.contentResolver.query( videoCursor = this.contentResolver.query(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI, MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
videoMetadataProjection, videoMetadataProjection,
if (albumId == allAlbumId) null else "${MediaStore.Video.Media.BUCKET_ID} = $albumId", if (albumId == allAlbumId) null else "${MediaStore.Video.Media.BUCKET_ID} = $albumId",
null, null,
"$videoOrderBy LIMIT $limit OFFSET $offset" "$orderBy LIMIT $limit OFFSET $offset"
) )
} }