Quellcode durchsuchen

trash: show days left for auto-deletion on thumbnail

Neeraj Gupta vor 3 Jahren
Ursprung
Commit
45c7da0123
2 geänderte Dateien mit 23 neuen und 3 gelöschten Zeilen
  1. 16 2
      lib/ui/thumbnail_widget.dart
  2. 7 1
      lib/utils/date_time_util.dart

+ 16 - 2
lib/ui/thumbnail_widget.dart

@@ -1,5 +1,7 @@
 import 'package:flutter/material.dart';
+import 'dart:math';
 import 'package:logging/logging.dart';
+import 'package:flutter/widgets.dart';
 import 'package:photos/core/cache/thumbnail_cache.dart';
 import 'package:photos/core/constants.dart';
 import 'package:photos/core/errors.dart';
@@ -10,6 +12,7 @@ import 'package:photos/models/file.dart';
 import 'package:photos/models/file_type.dart';
 import 'package:photos/models/trash_file.dart';
 import 'package:photos/ui/common_elements.dart';
+import 'package:photos/utils/date_time_util.dart';
 import 'package:photos/utils/file_util.dart';
 import 'package:photos/utils/thumbnail_util.dart';
 
@@ -30,10 +33,21 @@ class ThumbnailWidget extends StatefulWidget {
     this.diskLoadDeferDuration,
     this.serverLoadDeferDuration,
   }) : super(key: key ?? Key(file.tag()));
+
   @override
   _ThumbnailWidgetState createState() => _ThumbnailWidgetState();
 }
 
+Widget getFileInfoContainer(File file) {
+  if (file is TrashFile) {
+    return Container(
+      child: Text(daysLeft(file.deleteBy)),
+      alignment: Alignment.bottomCenter,
+    );
+  }
+  return emptyContainer;
+}
+
 class _ThumbnailWidgetState extends State<ThumbnailWidget> {
   static final _logger = Logger("ThumbnailWidget");
 
@@ -165,7 +179,7 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
         ),
         widget.shouldShowSyncStatus && widget.file.uploadedFileID == null
             ? kUnsyncedIconOverlay
-            : emptyContainer,
+            : getFileInfoContainer(widget.file),
       ],
       fit: StackFit.expand,
     );
@@ -198,7 +212,7 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
   Future _getThumbnailFromDisk() async {
     getThumbnailFromLocal(widget.file).then((thumbData) async {
       if (thumbData == null) {
-        if (widget.file.uploadedFileID != null ) {
+        if (widget.file.uploadedFileID != null) {
           if (widget.file is! TrashFile) {
             _logger.fine("Removing localID reference for " + widget.file.tag());
             widget.file.localID = null;

+ 7 - 1
lib/utils/date_time_util.dart

@@ -1,5 +1,4 @@
 import 'package:flutter/material.dart';
-
 Map<int, String> _months = {
   1: "Jan",
   2: "Feb",
@@ -104,6 +103,13 @@ String getFormattedDate(DateTime dateTime) {
       dateTime.year.toString();
 }
 
+String daysLeft(int futureTime) {
+  int daysLeft = ((futureTime - DateTime.now().microsecondsSinceEpoch) /
+          Duration.microsecondsPerDay)
+      .ceil();
+  return '$daysLeft day' + (daysLeft <= 1 ? "" : "s");
+}
+
 String formatDuration(Duration position) {
   final ms = position.inMilliseconds;