feat: add adjustmentTimestamp to platformasset

This commit is contained in:
shenlong-tanwen
2025-09-20 00:33:23 +05:30
parent 1e0b4fac04
commit d3646b2eab
6 changed files with 36 additions and 5 deletions

View File

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

View File

@@ -138,6 +138,7 @@ open class NativeSyncApiImplBase(context: Context) {
duration,
orientation.toLong(),
isFavorite,
adjustmentTimestamp = null
)
yield(AssetResult.ValidAsset(asset, bucketId))
}

View File

@@ -140,6 +140,7 @@ struct PlatformAsset: Hashable {
var durationInSeconds: Int64
var orientation: Int64
var isFavorite: Bool
var adjustmentTimestamp: Int64? = nil
// swift-format-ignore: AlwaysUseLowerCamelCase
@@ -154,6 +155,7 @@ struct PlatformAsset: Hashable {
let durationInSeconds = pigeonVar_list[7] as! Int64
let orientation = pigeonVar_list[8] as! Int64
let isFavorite = pigeonVar_list[9] as! Bool
let adjustmentTimestamp: Int64? = nilOrValue(pigeonVar_list[10])
return PlatformAsset(
id: id,
@@ -165,7 +167,8 @@ struct PlatformAsset: Hashable {
height: height,
durationInSeconds: durationInSeconds,
orientation: orientation,
isFavorite: isFavorite
isFavorite: isFavorite,
adjustmentTimestamp: adjustmentTimestamp
)
}
func toList() -> [Any?] {
@@ -180,6 +183,7 @@ struct PlatformAsset: Hashable {
durationInSeconds,
orientation,
isFavorite,
adjustmentTimestamp,
]
}
static func == (lhs: PlatformAsset, rhs: PlatformAsset) -> Bool {

View File

@@ -12,7 +12,8 @@ extension PHAsset {
height: Int64(pixelHeight),
durationInSeconds: Int64(duration),
orientation: 0,
isFavorite: isFavorite
isFavorite: isFavorite,
adjustmentTimestamp: adjustmentTimestamp
)
}
@@ -23,6 +24,10 @@ extension PHAsset {
var filename: String? {
return value(forKey: "filename") as? String
}
var adjustmentTimestamp: Int64 {
return (value(forKey: "adjustmentTimestamp") as? Date?).map( {Int64($0?.timeIntervalSince1970 ?? 0)} ) ?? 0
}
// This method is expected to be slow as it goes through the asset resources to fetch the originalFilename
var originalFilename: String? {

View File

@@ -41,6 +41,7 @@ class PlatformAsset {
required this.durationInSeconds,
required this.orientation,
required this.isFavorite,
this.adjustmentTimestamp,
});
String id;
@@ -63,8 +64,22 @@ class PlatformAsset {
bool isFavorite;
int? adjustmentTimestamp;
List<Object?> _toList() {
return <Object?>[id, name, type, createdAt, updatedAt, width, height, durationInSeconds, orientation, isFavorite];
return <Object?>[
id,
name,
type,
createdAt,
updatedAt,
width,
height,
durationInSeconds,
orientation,
isFavorite,
adjustmentTimestamp,
];
}
Object encode() {
@@ -84,6 +99,7 @@ class PlatformAsset {
durationInSeconds: result[7]! as int,
orientation: result[8]! as int,
isFavorite: result[9]! as bool,
adjustmentTimestamp: result[10] as int?,
);
}

View File

@@ -24,6 +24,7 @@ class PlatformAsset {
final int durationInSeconds;
final int orientation;
final bool isFavorite;
final int? adjustmentTimestamp;
const PlatformAsset({
required this.id,
@@ -36,6 +37,7 @@ class PlatformAsset {
this.durationInSeconds = 0,
this.orientation = 0,
this.isFavorite = false,
this.adjustmentTimestamp,
});
}