Эх сурвалжийг харах

update(capture): 加快截图处理流程 #0009371 Review by baka

gavin.chen 2 жил өмнө
parent
commit
0398858e52

+ 6 - 2
lib/utils/prompt_box.dart

@@ -104,14 +104,18 @@ class PromptBox {
     String message, {
     String? title,
     Color? textColor = Colors.black,
+    Color? backgroundColor,
+    Duration? duration = const Duration(seconds: 3),
     PromptBoxSnackbarPosition position = PromptBoxSnackbarPosition.Top,
   }) {
     final isTop = PromptBoxSnackbarPosition.Top == position;
-
     Get.snackbar(
-      title ?? i18nBook.common.tip.t, // TODO:
+      title ?? i18nBook.common.tip.t,
       message,
       colorText: textColor,
+      duration: duration,
+      backgroundColor: backgroundColor,
+      animationDuration: const Duration(milliseconds: 800),
       maxWidth: kIsMobile ? Sizer.ins.size.width - 40 : 400,
       snackPosition: isTop ? SnackPosition.TOP : SnackPosition.BOTTOM,
       margin: isTop

+ 14 - 15
lib/view/measure/measure_main_view.dart

@@ -236,6 +236,7 @@ class _MeasureMainViewState extends State<MeasureMainView> {
       measureApplicationName: application.applicationName,
       features: features,
     );
+    //加延时是为了等待UI消失,防止截图截到UI
     await Future.delayed(const Duration(milliseconds: 10), () async {
       final RenderRepaintBoundary? boundary =
           _key.currentContext?.findRenderObject() as RenderRepaintBoundary?;
@@ -244,27 +245,25 @@ class _MeasureMainViewState extends State<MeasureMainView> {
         final image = await boundary.toImage();
         final byteData = await image.toByteData(format: ImageByteFormat.png);
         final pngBytes = byteData!.buffer.asUint8List();
-        await measureData.saveImage.call(
+        isCaptureState = false;
+        PromptBox.snackbar(
+            i18nBook.measure.saveLocation.t +
+                ' > ' +
+                i18nBook.measure.measureImage.t,
+            duration: const Duration(milliseconds: 1500),
+
+            ///TODO:[Gavin] i18n (截图保存成功)->(截图成功),因为可能上传失败
+            title: i18nBook.measure.screenshotSavedSuccessfully.t,
+            textColor: Colors.white,
+            backgroundColor: Colors.black.withOpacity(0.7));
+        setState(() {});
+        measureData.saveImage.call(
           pngBytes,
           measureData.measureImageData.patientCode ?? '',
           measureData.measureImageData.recordCode ?? '',
           measureData.measureImageData.remedicalCode ?? '',
           measureResult.toDisplay(),
         );
-        isCaptureState = false;
-        PromptBox.snackbar(
-          i18nBook.measure.saveLocation.t +
-              ':' +
-              i18nBook.measure.measureImage.t,
-          title: i18nBook.measure.screenshotSavedSuccessfully.t,
-          textColor: const Color.fromARGB(
-            255,
-            219,
-            219,
-            219,
-          ),
-        );
-        setState(() {});
       }
     });
   }