Use tag instead of generatedID

This commit is contained in:
Neeraj Gupta
2025-06-30 17:00:45 +05:30
parent 140eae6859
commit f60e074dd5
10 changed files with 16 additions and 22 deletions

View File

@@ -1,7 +1,7 @@
import "package:photos/events/event.dart";
class FileCaptionUpdatedEvent extends Event {
final int fileGeneratedID;
final String fileTag;
FileCaptionUpdatedEvent(this.fileGeneratedID);
FileCaptionUpdatedEvent(this.fileTag);
}

View File

@@ -2,7 +2,6 @@ import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:logging/logging.dart';
import 'package:path/path.dart';
import 'package:photo_manager/photo_manager.dart';
import 'package:photos/core/constants.dart';
import "package:photos/models/api/diff/trash_time.dart";

View File

@@ -71,13 +71,9 @@ class MemoriesCacheService {
return event.type == EventType.deletedFromEverywhere;
}).listen((event) {
if (_cachedMemories == null) return;
final generatedIDs = event.updatedFiles
.where((element) => element.generatedID != null)
.map((e) => e.generatedID!)
.toSet();
final tags = event.updatedFiles.map((e) => e.tag).toSet();
for (final memory in _cachedMemories!) {
memory.memories
.removeWhere((m) => generatedIDs.contains(m.file.generatedID));
memory.memories.removeWhere((m) => tags.contains(m.file.tag));
}
});
}

View File

@@ -59,7 +59,7 @@ class FileAppBarState extends State<FileAppBar> {
@override
void didUpdateWidget(FileAppBar oldWidget) {
super.didUpdateWidget(oldWidget);
if (oldWidget.file.generatedID != widget.file.generatedID) {
if (oldWidget.file.tag != widget.file.tag) {
_getActions();
}
}

View File

@@ -194,7 +194,7 @@ class _FileCaptionWidgetState extends State<FileCaptionWidget> {
bool _onEditFileFinish(bool isSuccess) {
if (isSuccess) {
widget.file.pubMagicMetadata?.caption = editedCaption;
Bus.instance.fire(FileCaptionUpdatedEvent(widget.file.generatedID!));
Bus.instance.fire(FileCaptionUpdatedEvent(widget.file.tag));
return true;
} else {
showShortToast(context, S.of(context).somethingWentWrong);

View File

@@ -28,8 +28,7 @@ class FileWidget extends StatelessWidget {
// Specify key to ensure that the widget is rebuilt when the file changes
// Before changing this, ensure that file deletes are handled properly
final String fileKey =
"file_genID_${file.generatedID}___file_id_${file.uploadedFileID}";
final String fileKey = "file_tag_${file.tag}";
if (file.fileType == FileType.livePhoto ||
file.fileType == FileType.image) {
return ZoomableLiveImageNew(

View File

@@ -98,7 +98,7 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
@override
void didUpdateWidget(ThumbnailWidget oldWidget) {
super.didUpdateWidget(oldWidget);
if (widget.file.generatedID != oldWidget.file.generatedID) {
if (widget.file.tag != oldWidget.file.tag) {
_reset();
}
}

View File

@@ -73,7 +73,7 @@ class _VideoWidgetMediaKitState extends State<VideoWidgetMediaKit>
@override
void initState() {
_logger.info(
'initState for ${widget.file.generatedID} with tag ${widget.file.tag} and name ${widget.file.displayName}',
'initState for tag ${widget.file.tag} and name ${widget.file.displayName}',
);
super.initState();
WidgetsBinding.instance.addObserver(this);
@@ -118,7 +118,7 @@ class _VideoWidgetMediaKitState extends State<VideoWidgetMediaKit>
_captionUpdatedSubscription =
Bus.instance.on<FileCaptionUpdatedEvent>().listen((event) {
if (event.fileGeneratedID == widget.file.generatedID) {
if (event.fileTag == widget.file.tag) {
if (mounted) {
setState(() {});
}

View File

@@ -127,7 +127,7 @@ class _VideoWidgetNativeState extends State<VideoWidgetNative>
_captionUpdatedSubscription =
Bus.instance.on<FileCaptionUpdatedEvent>().listen((event) {
if (event.fileGeneratedID == widget.file.generatedID) {
if (event.fileTag == widget.file.tag) {
if (mounted) {
setState(() {});
}
@@ -262,7 +262,7 @@ class _VideoWidgetNativeState extends State<VideoWidgetNative>
return Hero(
tag: widget.tagPrefix! + widget.file.tag,
child: VisibilityDetector(
key: Key(widget.file.generatedID.toString()),
key: Key(widget.file.tag.toString()),
onVisibilityChanged: (info) {
if (info.visibleFraction == 1) {
setState(() {
@@ -427,7 +427,7 @@ class _VideoWidgetNativeState extends State<VideoWidgetNative>
) async {
try {
_logger.info(
"Initializing native video player controller for file gen id: ${widget.file.generatedID}",
"Initializing native video player controller for file tag: ${widget.file.tag}",
);
_controller = controller;
@@ -438,7 +438,7 @@ class _VideoWidgetNativeState extends State<VideoWidgetNative>
await setVideoSource();
} catch (e) {
_logger.severe(
"Error initializing native video player controller for file gen id: ${widget.file.generatedID}",
"Error initializing native video player controller for file tag: ${widget.file.tag}",
e,
);
}
@@ -519,7 +519,7 @@ class _VideoWidgetNativeState extends State<VideoWidgetNative>
void _onError(String errorMessage) {
//This doesn't work all the time
_logger.severe(
"Error in native video player controller for file gen id: ${widget.file.generatedID}",
"Error in native video player controller for file tag: ${widget.file.tag}",
);
_logger.severe(errorMessage);
Bus.instance.fire(UseMediaKitForVideo());

View File

@@ -84,7 +84,7 @@ class _ZoomableImageState extends State<ZoomableImage> {
_captionUpdatedSubscription =
Bus.instance.on<FileCaptionUpdatedEvent>().listen((event) {
if (event.fileGeneratedID == _photo.generatedID) {
if (event.fileTag == _photo.tag) {
if (mounted) {
setState(() {});
}