Glimpse: Add width and height to media

Change-Id: Id953c37950ef647e9f5d56d364eed91328c0d613
diff --git a/app/src/main/java/org/lineageos/glimpse/flow/AlbumsFlow.kt b/app/src/main/java/org/lineageos/glimpse/flow/AlbumsFlow.kt
index 073b4af..6ba0cab 100644
--- a/app/src/main/java/org/lineageos/glimpse/flow/AlbumsFlow.kt
+++ b/app/src/main/java/org/lineageos/glimpse/flow/AlbumsFlow.kt
@@ -60,6 +60,8 @@
                 val dateAddedIndex = it.getColumnIndex(MediaStore.Files.FileColumns.DATE_ADDED)
                 val dateModifiedIndex =
                     it.getColumnIndex(MediaStore.Files.FileColumns.DATE_MODIFIED)
+                val widthIndex = it.getColumnIndex(MediaStore.Files.FileColumns.WIDTH)
+                val heightIndex = it.getColumnIndex(MediaStore.Files.FileColumns.HEIGHT)
                 val orientationIndex =
                     it.getColumnIndex(MediaStore.Files.FileColumns.ORIENTATION)
                 val bucketDisplayNameIndex =
@@ -94,6 +96,8 @@
                             val mimeType = it.getString(mimeTypeIndex)
                             val dateAdded = it.getLong(dateAddedIndex)
                             val dateModified = it.getLong(dateModifiedIndex)
+                            val width = it.getInt(widthIndex)
+                            val height = it.getInt(heightIndex)
                             val orientation = it.getInt(orientationIndex)
                             val bucketDisplayName = it.getString(bucketDisplayNameIndex)
 
@@ -120,6 +124,8 @@
                                     mimeType,
                                     dateAdded,
                                     dateModified,
+                                    width,
+                                    height,
                                     orientation,
                                 )
                             ).apply { size += 1 }
diff --git a/app/src/main/java/org/lineageos/glimpse/flow/MediaFlow.kt b/app/src/main/java/org/lineageos/glimpse/flow/MediaFlow.kt
index b5dc727..c8c7c70 100644
--- a/app/src/main/java/org/lineageos/glimpse/flow/MediaFlow.kt
+++ b/app/src/main/java/org/lineageos/glimpse/flow/MediaFlow.kt
@@ -77,6 +77,8 @@
         val mimeTypeIndex = it.getColumnIndex(MediaStore.Files.FileColumns.MIME_TYPE)
         val dateAddedIndex = it.getColumnIndex(MediaStore.Files.FileColumns.DATE_ADDED)
         val dateModifiedIndex = it.getColumnIndex(MediaStore.Files.FileColumns.DATE_MODIFIED)
+        val widthIndex = it.getColumnIndex(MediaStore.Files.FileColumns.WIDTH)
+        val heightIndex = it.getColumnIndex(MediaStore.Files.FileColumns.HEIGHT)
         val orientationIndex = it.getColumnIndex(MediaStore.Files.FileColumns.ORIENTATION)
 
         val id = it.getLong(idIndex)
@@ -88,6 +90,8 @@
         val mimeType = it.getString(mimeTypeIndex)
         val dateAdded = it.getLong(dateAddedIndex)
         val dateModified = it.getLong(dateModifiedIndex)
+        val width = it.getInt(widthIndex)
+        val height = it.getInt(heightIndex)
         val orientation = it.getInt(orientationIndex)
 
         Media.fromMediaStore(
@@ -100,6 +104,8 @@
             mimeType,
             dateAdded,
             dateModified,
+            width,
+            height,
             orientation,
         )
     }
diff --git a/app/src/main/java/org/lineageos/glimpse/models/Media.kt b/app/src/main/java/org/lineageos/glimpse/models/Media.kt
index f31022c..bb888b4 100644
--- a/app/src/main/java/org/lineageos/glimpse/models/Media.kt
+++ b/app/src/main/java/org/lineageos/glimpse/models/Media.kt
@@ -21,6 +21,8 @@
     val mimeType: String,
     val dateAdded: Date,
     val dateModified: Date,
+    val width: Int,
+    val height: Int,
     val orientation: Int,
 ) : Comparable<Media>, Parcelable {
     val externalContentUri = ContentUris.withAppendedId(mediaType.externalContentUri, id)
@@ -40,6 +42,8 @@
         Date(parcel.readLong()),
         Date(parcel.readLong()),
         parcel.readInt(),
+        parcel.readInt(),
+        parcel.readInt(),
     )
 
     override fun equals(other: Any?): Boolean {
@@ -59,6 +63,8 @@
         { it.mimeType },
         { it.dateAdded },
         { it.dateModified },
+        { it.width },
+        { it.height },
         { it.orientation },
     )
 
@@ -74,6 +80,8 @@
         dest.writeString(mimeType)
         dest.writeLong(dateAdded.time)
         dest.writeLong(dateModified.time)
+        dest.writeInt(width)
+        dest.writeInt(height)
         dest.writeInt(orientation)
     }
 
@@ -92,6 +100,8 @@
             mimeType: String,
             dateAdded: Long,
             dateModified: Long,
+            width: Int,
+            height: Int,
             orientation: Int,
         ) = Media(
             id,
@@ -103,6 +113,8 @@
             mimeType,
             Date(dateAdded * 1000),
             Date(dateModified * 1000),
+            width,
+            height,
             orientation,
         )
     }
diff --git a/app/src/main/java/org/lineageos/glimpse/query/MediaQuery.kt b/app/src/main/java/org/lineageos/glimpse/query/MediaQuery.kt
index 9427d3d..d7920cb 100644
--- a/app/src/main/java/org/lineageos/glimpse/query/MediaQuery.kt
+++ b/app/src/main/java/org/lineageos/glimpse/query/MediaQuery.kt
@@ -20,6 +20,8 @@
         MediaStore.Files.FileColumns.MIME_TYPE,
         MediaStore.Files.FileColumns.DATE_ADDED,
         MediaStore.Files.FileColumns.DATE_MODIFIED,
+        MediaStore.Files.FileColumns.WIDTH,
+        MediaStore.Files.FileColumns.HEIGHT,
         MediaStore.Files.FileColumns.ORIENTATION,
     )
     val AlbumsProjection = arrayOf(