Browse Source

style(mobile): update video indicator (#4443)

shenlong 1 year ago
parent
commit
18fcca2884
1 changed files with 34 additions and 20 deletions
  1. 34 20
      mobile/lib/modules/home/ui/asset_grid/thumbnail_image.dart

+ 34 - 20
mobile/lib/modules/home/ui/asset_grid/thumbnail_image.dart

@@ -60,6 +60,39 @@ class ThumbnailImage extends StatelessWidget {
       }
     }
 
+    Widget buildVideoIcon() {
+      final minutes = asset.duration.inMinutes;
+      final durationString = asset.duration.toString();
+      return Positioned(
+        top: 5,
+        right: 5,
+        child: Row(
+          children: [
+            Text(
+              minutes > 59
+                  ? durationString.substring(0, 7) // h:mm:ss
+                  : minutes > 0
+                      ? durationString.substring(2, 7) // mm:ss
+                      : durationString.substring(3, 7), // m:ss
+              style: const TextStyle(
+                color: Colors.white,
+                fontSize: 10,
+                fontWeight: FontWeight.bold,
+              ),
+            ),
+            const SizedBox(
+              width: 3,
+            ),
+            const Icon(
+              Icons.play_circle_fill_rounded,
+              color: Colors.white,
+              size: 18,
+            ),
+          ],
+        ),
+      );
+    }
+
     Widget buildImage() {
       final image = SizedBox(
         width: 300,
@@ -162,26 +195,7 @@ class ThumbnailImage extends StatelessWidget {
                 size: 18,
               ),
             ),
-          if (!asset.isImage)
-            Positioned(
-              top: 5,
-              right: 5,
-              child: Row(
-                children: [
-                  Text(
-                    asset.duration.toString().substring(0, 7),
-                    style: const TextStyle(
-                      color: Colors.white,
-                      fontSize: 10,
-                    ),
-                  ),
-                  const Icon(
-                    Icons.play_circle_outline_rounded,
-                    color: Colors.white,
-                  ),
-                ],
-              ),
-            ),
+          if (!asset.isImage) buildVideoIcon(),
         ],
       ),
     );