Add widget to show fileSize overlay
This commit is contained in:
parent
bcf3084d97
commit
95bb363aba
2 changed files with 32 additions and 3 deletions
|
@ -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!
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Add table
Reference in a new issue