Add widget to show fileSize overlay

This commit is contained in:
Neeraj Gupta 2024-05-27 15:33:29 +05:30
parent bcf3084d97
commit 95bb363aba
2 changed files with 32 additions and 3 deletions

View file

@ -5,9 +5,11 @@ import 'package:flutter/material.dart';
import 'package:photos/ente_theme_data.dart';
import "package:photos/generated/l10n.dart";
import "package:photos/models/api/collection/user.dart";
import "package:photos/models/file/file.dart";
import 'package:photos/models/file/trash_file.dart';
import 'package:photos/theme/colors.dart';
import 'package:photos/ui/sharing/user_avator_widget.dart';
import "package:photos/utils/data_util.dart";
class ThumbnailPlaceHolder extends StatelessWidget {
const ThumbnailPlaceHolder({Key? key}) : super(key: key);
@ -143,15 +145,38 @@ class OwnerAvatarOverlayIcon extends StatelessWidget {
class TrashedFileOverlayText extends StatelessWidget {
final TrashFile file;
const TrashedFileOverlayText(this.file, {Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final int daysLeft =
((file.deleteBy - DateTime.now().microsecondsSinceEpoch) /
Duration.microsecondsPerDay)
.ceil();
final text = S.of(context).trashDaysLeft(daysLeft);
return FileOverlayText(text);
}
}
class FileSizeOverlayText extends StatelessWidget {
final EnteFile file;
const FileSizeOverlayText(this.file, {Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
if (file.fileSize == null) {
return const SizedBox.shrink();
}
final text = convertBytesToReadableFormat(file.fileSize!);
return FileOverlayText(text);
}
}
class FileOverlayText extends StatelessWidget {
final String text;
const FileOverlayText(this.text, {Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
gradient: LinearGradient(
@ -163,7 +188,7 @@ class TrashedFileOverlayText extends StatelessWidget {
alignment: Alignment.bottomCenter,
padding: const EdgeInsets.only(bottom: 5),
child: Text(
S.of(context).trashDaysLeft(daysLeft),
text,
style: Theme.of(context)
.textTheme
.titleSmall!

View file

@ -18,6 +18,8 @@ import 'package:photos/models/file/trash_file.dart';
import 'package:photos/services/collections_service.dart';
import 'package:photos/services/favorites_service.dart';
import 'package:photos/ui/viewer/file/file_icons_widget.dart';
import "package:photos/ui/viewer/gallery/component/group/type.dart";
import "package:photos/ui/viewer/gallery/state/gallery_context_state.dart";
import 'package:photos/utils/file_util.dart';
import 'package:photos/utils/thumbnail_util.dart';
@ -178,6 +180,8 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
if (widget.file.isTrash) {
viewChildren.add(TrashedFileOverlayText(widget.file as TrashFile));
} else if (GalleryContextState.of(context)?.type == GroupType.size) {
viewChildren.add(FileSizeOverlayText(widget.file));
}
// todo: Move this icon overlay to the collection widget.
if (widget.shouldShowArchiveStatus) {