fix: sync is_favorite from native (#20412)

* feat: sync is_favorite from native

* handle favorite during upload

* Update mobile/ios/Runner/Sync/MessagesImpl.swift

Co-authored-by: Alex <alex.tran1502@gmail.com>

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
This commit is contained in:
shenlong
2025-07-30 08:27:04 +05:30
committed by GitHub
parent 07ed060c32
commit 268b411a6f
9 changed files with 30 additions and 8 deletions

View File

@@ -88,7 +88,8 @@ data class PlatformAsset (
val width: Long? = null,
val height: Long? = null,
val durationInSeconds: Long,
val orientation: Long
val orientation: Long,
val isFavorite: Boolean
)
{
companion object {
@@ -102,7 +103,8 @@ data class PlatformAsset (
val height = pigeonVar_list[6] as Long?
val durationInSeconds = pigeonVar_list[7] as Long
val orientation = pigeonVar_list[8] as Long
return PlatformAsset(id, name, type, createdAt, updatedAt, width, height, durationInSeconds, orientation)
val isFavorite = pigeonVar_list[9] as Boolean
return PlatformAsset(id, name, type, createdAt, updatedAt, width, height, durationInSeconds, orientation, isFavorite)
}
}
fun toList(): List<Any?> {
@@ -116,6 +118,7 @@ data class PlatformAsset (
height,
durationInSeconds,
orientation,
isFavorite,
)
}
override fun equals(other: Any?): Boolean {

View File

@@ -42,6 +42,7 @@ open class NativeSyncApiImplBase(context: Context) {
MediaStore.MediaColumns.HEIGHT,
MediaStore.MediaColumns.DURATION,
MediaStore.MediaColumns.ORIENTATION,
MediaStore.MediaColumns.IS_FAVORITE,
)
const val HASH_BUFFER_SIZE = 2 * 1024 * 1024
@@ -77,6 +78,7 @@ open class NativeSyncApiImplBase(context: Context) {
val durationColumn = c.getColumnIndexOrThrow(MediaStore.MediaColumns.DURATION)
val orientationColumn =
c.getColumnIndexOrThrow(MediaStore.MediaColumns.ORIENTATION)
val favoriteColumn = c.getColumnIndexOrThrow(MediaStore.MediaColumns.IS_FAVORITE)
while (c.moveToNext()) {
val id = c.getLong(idColumn).toString()
@@ -105,6 +107,7 @@ open class NativeSyncApiImplBase(context: Context) {
else c.getLong(durationColumn) / 1000
val bucketId = c.getString(bucketIdColumn)
val orientation = c.getInt(orientationColumn)
val isFavorite = c.getInt(favoriteColumn) != 0;
val asset = PlatformAsset(
id,
@@ -116,6 +119,7 @@ open class NativeSyncApiImplBase(context: Context) {
height,
duration,
orientation.toLong(),
isFavorite,
)
yield(AssetResult.ValidAsset(asset, bucketId))
}