fix: images was not reuploaded in case of a reupload request

This commit is contained in:
otsmr 2026-02-07 23:02:36 +01:00
parent 90bf634f59
commit 4f6bffa61a
3 changed files with 26 additions and 1 deletions

View file

@ -44,6 +44,15 @@ void main() async {
} }
unawaited(performTwonlySafeBackup()); unawaited(performTwonlySafeBackup());
if (gUser.appVersion < 90) {
// BUG: Requested media files for reupload where not reuploaded because the wrong state...
await twonlyDB.mediaFilesDao.updateAllRetransmissionUploadingState();
await updateUserdata((u) {
u.appVersion = 90;
return u;
});
}
} }
globalApplicationCacheDirectory = (await getApplicationCacheDirectory()).path; globalApplicationCacheDirectory = (await getApplicationCacheDirectory()).path;

View file

@ -131,4 +131,18 @@ class MediaFilesDao extends DatabaseAccessor<TwonlyDB>
..limit(100)) ..limit(100))
.watch(); .watch();
} }
Future<void> updateAllRetransmissionUploadingState() async {
await (update(mediaFiles)
..where(
(t) =>
t.uploadState.equals(UploadState.uploading.name) &
t.reuploadRequestedBy.isNotNull(),
))
.write(
const MediaFilesCompanion(
uploadState: Value(UploadState.preprocessing),
),
);
}
} }

View file

@ -6,6 +6,7 @@ import 'package:twonly/src/database/tables/messages.table.dart';
import 'package:twonly/src/database/twonly.db.dart'; import 'package:twonly/src/database/twonly.db.dart';
import 'package:twonly/src/model/protobuf/client/generated/messages.pb.dart'; import 'package:twonly/src/model/protobuf/client/generated/messages.pb.dart';
import 'package:twonly/src/services/api/mediafiles/download.service.dart'; import 'package:twonly/src/services/api/mediafiles/download.service.dart';
import 'package:twonly/src/services/api/mediafiles/upload.service.dart';
import 'package:twonly/src/services/api/utils.dart'; import 'package:twonly/src/services/api/utils.dart';
import 'package:twonly/src/services/flame.service.dart'; import 'package:twonly/src/services/flame.service.dart';
import 'package:twonly/src/services/mediafiles/mediafile.service.dart'; import 'package:twonly/src/services/mediafiles/mediafile.service.dart';
@ -178,9 +179,10 @@ Future<void> handleMediaUpdate(
await twonlyDB.mediaFilesDao.updateMedia( await twonlyDB.mediaFilesDao.updateMedia(
mediaFile.mediaId, mediaFile.mediaId,
MediaFilesCompanion( MediaFilesCompanion(
uploadState: const Value(UploadState.uploading), uploadState: const Value(UploadState.preprocessing),
reuploadRequestedBy: Value(reuploadRequestedBy), reuploadRequestedBy: Value(reuploadRequestedBy),
), ),
); );
unawaited(startBackgroundMediaUpload(MediaFileService(mediaFile)));
} }
} }