浏览代码

[new]导入音频增加全部文件选择功能

zk 1 年之前
父节点
当前提交
97ddf63724

+ 1 - 0
assets/string/base/string.xml

@@ -140,4 +140,5 @@
     <string name="desktop_shortcut_record_name">小听快听</string>
     <string name="dialog_send_friend">发送给朋友</string>
     <string name="translating">正在翻译...</string>
+    <string name="audio_picker_all_file">全部文件</string>
 </resources>

+ 7 - 0
lib/module/audiopicker/controller.dart

@@ -130,4 +130,11 @@ class AudioPickerController extends BaseController {
   void onLoadMoreData() {
     requestList(audioList.length, limit);
   }
+
+  void pickSystemFile() {
+    FileUploadCheckHelper.choicePlatformLocalFileAndCreateOrder(
+        choiceSuccessCallback: () {
+      Get.back();
+    });
+  }
 }

+ 39 - 24
lib/module/audiopicker/view.dart

@@ -1,7 +1,4 @@
-import 'package:electronic_assistant/base/base_controller.dart';
 import 'package:electronic_assistant/base/base_page.dart';
-import 'package:electronic_assistant/data/bean/store_item.dart';
-import 'package:electronic_assistant/dialog/add_agenda_dialog.dart';
 import 'package:electronic_assistant/resource/assets.gen.dart';
 import 'package:electronic_assistant/resource/string.gen.dart';
 import 'package:electronic_assistant/utils/expand.dart';
@@ -60,31 +57,49 @@ class AudioPickerPage extends BasePage<AudioPickerController> {
   Widget _buildTitleView() {
     return Container(
       padding: EdgeInsets.symmetric(vertical: 18.h),
-      child: Stack(
-        children: [
-          Center(
-              child: Text(
-            StringName.importLocalAudio.tr,
-            style:
-                TextStyle(fontSize: 17.sp, color: ColorName.primaryTextColor),
-          )),
-          Container(
-            margin: EdgeInsets.only(right: 16.w),
-            child: GestureDetector(
-              onTap: () {
-                Get.back();
-              },
-              child: Align(
-                alignment: Alignment.centerRight,
+      child: IntrinsicHeight(
+        child: Stack(
+          children: [
+            Container(
+              margin: EdgeInsets.only(left: 16.w),
+              child: GestureDetector(
+                onTap: () {
+                  controller.pickSystemFile();
+                },
+                child: Align(
+                  alignment: Alignment.centerLeft,
+                  child: Text(
+                    StringName.audioPickerAllFile.tr,
+                    style: TextStyle(
+                        fontSize: 14.sp, color: ColorName.primaryTextColor),
+                  ),
+                ),
+              ),
+            ),
+            Center(
                 child: Text(
-                  StringName.cancel.tr,
-                  style: TextStyle(
-                      fontSize: 14.sp, color: ColorName.secondaryTextColor),
+              StringName.importLocalAudio.tr,
+              style:
+                  TextStyle(fontSize: 17.sp, color: ColorName.primaryTextColor),
+            )),
+            Container(
+              margin: EdgeInsets.only(right: 16.w),
+              child: GestureDetector(
+                onTap: () {
+                  Get.back();
+                },
+                child: Align(
+                  alignment: Alignment.centerRight,
+                  child: Text(
+                    StringName.cancel.tr,
+                    style: TextStyle(
+                        fontSize: 14.sp, color: ColorName.secondaryTextColor),
+                  ),
                 ),
               ),
             ),
-          ),
-        ],
+          ],
+        ),
       ),
     );
   }

+ 4 - 6
lib/utils/file_upload_check_helper.dart

@@ -1,5 +1,5 @@
 import 'dart:io';
-
+import 'dart:ui';
 import 'package:electronic_assistant/utils/pair.dart';
 import 'package:electronic_assistant/utils/toast_util.dart';
 import 'package:get/get.dart';
@@ -28,7 +28,8 @@ class FileUploadCheckHelper {
     }
   }
 
-  static Future<void> choicePlatformLocalFileAndCreateOrder() async {
+  static Future<void> choicePlatformLocalFileAndCreateOrder(
+      {VoidCallback? choiceSuccessCallback}) async {
     TalkBean? bean;
     try {
       Pair<File, Duration>? pair =
@@ -40,7 +41,7 @@ class FileUploadCheckHelper {
       LoadingDialog.show(StringName.fileImporting.tr);
       bean = await FileUploadCheckHelper.createTalkFromLocalFile(
           pair.first, pair.second);
-
+      choiceSuccessCallback?.call();
       TalkPage.start(bean);
     } catch (e) {
       if (e is PickerException) {
@@ -51,9 +52,6 @@ class FileUploadCheckHelper {
     } finally {
       LoadingDialog.hide();
     }
-    if (bean != null) {
-      TalkPage.start(bean);
-    }
   }
 
   static Future<Duration> checkCanUpload(File file) async {