diff --git a/.gitignore b/.gitignore index dbd5161..6def327 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ flutter_01.log flutter_02.log .flutter-plugins-dependencies Flutter.podspec +android/android.iml diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 63ab3ae..296b146 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip diff --git a/lib/config/api_strategy.dart b/lib/config/api_strategy.dart index 8ff4fe1..b0e82c3 100644 --- a/lib/config/api_strategy.dart +++ b/lib/config/api_strategy.dart @@ -6,7 +6,7 @@ export 'package:dio/dio.dart'; class ApiStrategy { static ApiStrategy _instance; - static final String baseUrl = "http://111.230.251.115/oldchen/"; + static final String baseUrl = "http://42.194.193.85/oldchen/"; // static final String baseUrl = "http://192.168.137.1:8080/"; static const int connectTimeOut = 10 * 1000; //连接超时时间为10秒 static const int receiveTimeOut = 15 * 1000; //响应超时时间为15秒 diff --git a/lib/config/custom_image_cache_manager.dart b/lib/config/custom_image_cache_manager.dart index ab9bf02..d20039e 100644 --- a/lib/config/custom_image_cache_manager.dart +++ b/lib/config/custom_image_cache_manager.dart @@ -1,13 +1,12 @@ import 'package:flutter_cache_manager/flutter_cache_manager.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:http/http.dart' as http; import 'package:path/path.dart' as p; //图片缓存管理类,目前没有用到 -class CustomCacheManager extends BaseCacheManager { +class CustomCacheManager extends CacheManager { static const key = "customCache"; static CustomCacheManager _instance; @@ -19,18 +18,11 @@ class CustomCacheManager extends BaseCacheManager { return _instance; } - CustomCacheManager._() : super(key, - maxAgeCacheObject: Duration(hours: 12), - maxNrOfCacheObjects: 1, - fileFetcher: _customHttpGetter); + CustomCacheManager._() : super(Config(key)); Future getFilePath() async { var directory = await getTemporaryDirectory(); return p.join(directory.path, key); } - static Future _customHttpGetter(String url, {Map headers}) async { - // Do things with headers, the url or whatever. - return HttpFileFetcherResponse(await http.get(url, headers: headers)); - } } \ No newline at end of file diff --git a/lib/items/task_item.dart b/lib/items/task_item.dart index 32dcbdc..9abf475 100644 --- a/lib/items/task_item.dart +++ b/lib/items/task_item.dart @@ -1,5 +1,3 @@ -import 'dart:io'; - import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:todo_list/json/task_bean.dart'; diff --git a/lib/json/cloud_task_bean.dart b/lib/json/cloud_task_bean.dart index eaa2f29..9e8703f 100644 --- a/lib/json/cloud_task_bean.dart +++ b/lib/json/cloud_task_bean.dart @@ -21,7 +21,7 @@ class CloudTaskBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } diff --git a/lib/json/common_bean.dart b/lib/json/common_bean.dart index 5e7590e..ab26130 100644 --- a/lib/json/common_bean.dart +++ b/lib/json/common_bean.dart @@ -11,7 +11,7 @@ class CommonBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } diff --git a/lib/json/login_bean.dart b/lib/json/login_bean.dart index 0c1722e..0d24bd2 100644 --- a/lib/json/login_bean.dart +++ b/lib/json/login_bean.dart @@ -20,7 +20,7 @@ class LoginBean{ } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } diff --git a/lib/json/photo_bean.dart b/lib/json/photo_bean.dart index 237a543..21c295e 100644 --- a/lib/json/photo_bean.dart +++ b/lib/json/photo_bean.dart @@ -60,7 +60,7 @@ class PhotoBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } @@ -102,7 +102,7 @@ class LinksBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } @@ -149,7 +149,7 @@ class UrlsBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } @@ -225,7 +225,7 @@ class UserBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } @@ -254,7 +254,7 @@ class ProfileImageBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } diff --git a/lib/json/register_bean.dart b/lib/json/register_bean.dart index 2047587..87f4fd1 100644 --- a/lib/json/register_bean.dart +++ b/lib/json/register_bean.dart @@ -16,7 +16,7 @@ class RegisterBean{ } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } diff --git a/lib/json/suggestion_bean.dart b/lib/json/suggestion_bean.dart index b3721e3..f976215 100644 --- a/lib/json/suggestion_bean.dart +++ b/lib/json/suggestion_bean.dart @@ -19,7 +19,7 @@ class SuggestionBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } @@ -61,7 +61,7 @@ class SuggestionsListBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } diff --git a/lib/json/task_bean.dart b/lib/json/task_bean.dart index 0ba4f0e..2e234b5 100644 --- a/lib/json/task_bean.dart +++ b/lib/json/task_bean.dart @@ -134,7 +134,7 @@ class TaskBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } @@ -142,7 +142,7 @@ class TaskBean { } static List fromNetMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromNetMap(mapList[i]); } @@ -214,7 +214,7 @@ class TaskDetailBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } diff --git a/lib/json/task_icon_bean.dart b/lib/json/task_icon_bean.dart index 7bbdee2..169535b 100644 --- a/lib/json/task_icon_bean.dart +++ b/lib/json/task_icon_bean.dart @@ -20,7 +20,7 @@ class TaskIconBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } @@ -73,7 +73,7 @@ class IconBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } diff --git a/lib/json/update_info_bean.dart b/lib/json/update_info_bean.dart index cbbd972..f1cf5c5 100644 --- a/lib/json/update_info_bean.dart +++ b/lib/json/update_info_bean.dart @@ -25,7 +25,7 @@ class UpdateInfoBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } diff --git a/lib/json/upload_avatar_bean.dart b/lib/json/upload_avatar_bean.dart index 3a5fab1..cea074f 100644 --- a/lib/json/upload_avatar_bean.dart +++ b/lib/json/upload_avatar_bean.dart @@ -19,7 +19,7 @@ class UploadAvatarBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } diff --git a/lib/json/upload_task_bean.dart b/lib/json/upload_task_bean.dart index 749f362..0b93991 100644 --- a/lib/json/upload_task_bean.dart +++ b/lib/json/upload_task_bean.dart @@ -19,7 +19,7 @@ class UploadTaskBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } diff --git a/lib/json/weather_bean.dart b/lib/json/weather_bean.dart index 6e18b2e..cbc481a 100644 --- a/lib/json/weather_bean.dart +++ b/lib/json/weather_bean.dart @@ -13,7 +13,7 @@ class WeatherBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } @@ -46,7 +46,7 @@ class HeWeather6ListBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } @@ -90,7 +90,7 @@ class BasicBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } @@ -149,7 +149,7 @@ class NowBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } @@ -175,7 +175,7 @@ class UpdateBean { } static List fromMapList(dynamic mapList) { - List list = new List(mapList.length); + List list = List.filled(mapList.length, null); for (int i = 0; i < mapList.length; i++) { list[i] = fromMap(mapList[i]); } diff --git a/lib/logic/avatar_page_logic.dart b/lib/logic/avatar_page_logic.dart index a8bc9d1..2a8123d 100644 --- a/lib/logic/avatar_page_logic.dart +++ b/lib/logic/avatar_page_logic.dart @@ -46,7 +46,7 @@ class AvatarPageLogic { Future getImage() async { final context = _model.context; - File image = await ImagePicker.pickImage(source: ImageSource.gallery); + PickedFile image = await ImagePicker().getImage(source: ImageSource.gallery); if (image != null) { if (Platform.isAndroid) { PermissionReqUtil.getInstance().requestPermission( @@ -64,7 +64,7 @@ class AvatarPageLogic { } } - void _saveAndGetAvatarFile(File file) async { + void _saveAndGetAvatarFile(PickedFile file) async { _model.currentAvatarType = CurrentAvatarType.local; _model.currentAvatarUrl = file.path; _model.refresh(); diff --git a/lib/logic/feedback_page_logic.dart b/lib/logic/feedback_page_logic.dart index d79f007..f70671e 100644 --- a/lib/logic/feedback_page_logic.dart +++ b/lib/logic/feedback_page_logic.dart @@ -1,5 +1,3 @@ -import 'dart:io'; - import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:todo_list/config/api_service.dart'; @@ -72,10 +70,10 @@ class FeedbackPageLogic { final userName = await SharedUtil.instance.getString(Keys.currentUserName) ?? IntlLocalizations.of(context).noName; final suggestion = _model.feedbackContent; final avatarPath = await SharedUtil.instance.getString(Keys.localAvatarPath) ?? ""; - String fileName = avatarPath - .substring(avatarPath.lastIndexOf("/") + 1, avatarPath.length) - .replaceAll(" ", ""); - String transFormName = Uri.encodeFull(fileName).replaceAll("%", ""); +// String fileName = avatarPath +// .substring(avatarPath.lastIndexOf("/") + 1, avatarPath.length) +// .replaceAll(" ", ""); +// String transFormName = Uri.encodeFull(fileName).replaceAll("%", ""); ///由于写后端的时候忘记添加表情的字段,现在把它放这里面 final connectWay = "${(_model.contactWay ?? "") + "${_model.currentSelectSvg + 1}"}"; final account = await SharedUtil.instance.getString(Keys.account) ?? "default"; @@ -93,7 +91,6 @@ class FeedbackPageLogic { "suggestion": suggestion, "connectWay": connectWay, "userName": userName, - "userName": userName, }), success: (bean){ SharedUtil.instance.saveString(Keys.lastSuggestTime, DateTime.now().toIso8601String()); diff --git a/lib/model/global_model.dart b/lib/model/global_model.dart index 2b837d9..18b131a 100644 --- a/lib/model/global_model.dart +++ b/lib/model/global_model.dart @@ -1,5 +1,3 @@ -import 'dart:math'; - import 'package:flutter/material.dart'; import 'package:todo_list/config/all_types.dart'; import 'package:todo_list/json/theme_bean.dart'; diff --git a/lib/model/login_page_model.dart b/lib/model/login_page_model.dart index b913eeb..61e029b 100644 --- a/lib/model/login_page_model.dart +++ b/lib/model/login_page_model.dart @@ -41,7 +41,6 @@ class LoginPageModel extends ChangeNotifier{ emailController.dispose(); passwordController.dispose(); cancelToken?.cancel(); - formKey?.currentState?.dispose(); super.dispose(); debugPrint("LoginPageModel销毁了"); } diff --git a/lib/pages/main/edit_task_page.dart b/lib/pages/main/edit_task_page.dart index bab13be..cfec4d6 100644 --- a/lib/pages/main/edit_task_page.dart +++ b/lib/pages/main/edit_task_page.dart @@ -55,7 +55,7 @@ class EditTaskPage extends StatelessWidget { title: Container( height: 49, child: Form( - autovalidate: true, + autovalidateMode: AutovalidateMode.always, child: TextFormField( style: TextStyle(color: textColor,textBaseline: TextBaseline.alphabetic), textAlign: TextAlign.center, diff --git a/lib/pages/main/task_detail_page.dart b/lib/pages/main/task_detail_page.dart index 2165497..36d7436 100644 --- a/lib/pages/main/task_detail_page.dart +++ b/lib/pages/main/task_detail_page.dart @@ -10,7 +10,6 @@ import 'package:todo_list/widgets/custom_cache_provider.dart'; import 'package:todo_list/widgets/popmenu_botton.dart'; import 'package:todo_list/widgets/task_info_widget.dart'; import 'package:todo_list/model/task_detail_page_model.dart'; -import 'package:cached_network_image/cached_network_image.dart'; class TaskDetailPage extends StatelessWidget { @override diff --git a/lib/pages/navigator/account/account_page.dart b/lib/pages/navigator/account/account_page.dart index 1223468..f6625e0 100644 --- a/lib/pages/navigator/account/account_page.dart +++ b/lib/pages/navigator/account/account_page.dart @@ -1,4 +1,3 @@ -import 'dart:io'; import 'dart:ui'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; diff --git a/lib/pages/navigator/feedback/feedback_page.dart b/lib/pages/navigator/feedback/feedback_page.dart index 53b13dc..6b12933 100644 --- a/lib/pages/navigator/feedback/feedback_page.dart +++ b/lib/pages/navigator/feedback/feedback_page.dart @@ -93,7 +93,7 @@ class FeedbackPage extends StatelessWidget { ), ), child: Form( - autovalidate: true, + autovalidateMode: AutovalidateMode.always, child: TextFormField( expands: true, maxLines: null, diff --git a/lib/pages/navigator/settings/navigator_setting_page.dart b/lib/pages/navigator/settings/navigator_setting_page.dart index 314643d..8451444 100644 --- a/lib/pages/navigator/settings/navigator_setting_page.dart +++ b/lib/pages/navigator/settings/navigator_setting_page.dart @@ -1,5 +1,3 @@ -import 'dart:io'; - import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; diff --git a/lib/utils/theme_util.dart b/lib/utils/theme_util.dart index 34cc692..92ddb6f 100644 --- a/lib/utils/theme_util.dart +++ b/lib/utils/theme_util.dart @@ -63,7 +63,7 @@ class ThemeUtil { color: bgColor, elevation: 0.0, textTheme: TextTheme( - title: TextStyle(color: iconColor, fontSize: 20), + subtitle1: TextStyle(color: iconColor, fontSize: 20), ), ); } diff --git a/lib/widgets/custom_icon_widget.dart b/lib/widgets/custom_icon_widget.dart index d40533c..b16fed0 100644 --- a/lib/widgets/custom_icon_widget.dart +++ b/lib/widgets/custom_icon_widget.dart @@ -55,7 +55,7 @@ class _CustomIconWidgetState extends State { margin: EdgeInsets.all(10), width: 260, child: Form( - autovalidate: true, + autovalidateMode: AutovalidateMode.always, child: TextFormField( initialValue: widget.iconName ?? null, validator: (text){ diff --git a/lib/widgets/edit_dialog.dart b/lib/widgets/edit_dialog.dart index 3f62d03..9a1f53c 100644 --- a/lib/widgets/edit_dialog.dart +++ b/lib/widgets/edit_dialog.dart @@ -30,7 +30,7 @@ class EditDialog extends StatelessWidget { borderRadius: BorderRadius.all(Radius.circular(20.0))), title: Text(title ?? ""), content: Form( - autovalidate: true, + autovalidateMode: AutovalidateMode.always, child: TextFormField( style: TextStyle(textBaseline: TextBaseline.alphabetic), initialValue: initialValue ?? "", diff --git a/pubspec.yaml b/pubspec.yaml index d1d6c1c..34a8260 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -23,7 +23,8 @@ dev_dependencies: flutter_test: sdk: flutter #intl语言包 - intl_translation: ^0.17.5 + intl: ^0.17.0 + #网络请求 @@ -32,8 +33,6 @@ dev_dependencies: shared_preferences: ^0.5.6+2 #状态管理 provider: ^4.0.1 - #单元测试 - test: ^1.6.0 #滑动控件 carousel_slider: ^1.3.0 #环形列表 @@ -61,7 +60,7 @@ dev_dependencies: #网页 flutter_webview_plugin: ^0.3.5 #上拉加载 - pull_to_refresh: ^1.5.0 + pull_to_refresh: ^1.6.5 #看图片 photo_view: ^0.4.2 #url,可以用来打开应用商店 diff --git a/test/check_update_test.dart b/test/check_update_test.dart index e7672b4..2624e23 100644 --- a/test/check_update_test.dart +++ b/test/check_update_test.dart @@ -1,4 +1,4 @@ -import 'package:test/test.dart'; +import 'package:flutter_test/flutter_test.dart'; //升级测试 void main(){ diff --git a/test/circle_test.dart b/test/circle_test.dart index a57f29b..b3b470c 100644 --- a/test/circle_test.dart +++ b/test/circle_test.dart @@ -1,4 +1,4 @@ -import 'package:test/test.dart'; +import 'package:flutter_test/flutter_test.dart'; import 'dart:math'; import 'package:flutter/material.dart'; diff --git a/test/encrypt_test.dart b/test/encrypt_test.dart index 4a31302..7b606f0 100644 --- a/test/encrypt_test.dart +++ b/test/encrypt_test.dart @@ -1,4 +1,4 @@ -import 'package:test/test.dart'; +import 'package:flutter_test/flutter_test.dart'; import 'package:todo_list/utils/my_encrypt_util.dart'; diff --git a/test/file_to_json_test.dart b/test/file_to_json_test.dart index 1345485..e0be2c3 100644 --- a/test/file_to_json_test.dart +++ b/test/file_to_json_test.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:test/test.dart'; +import 'package:flutter_test/flutter_test.dart'; import 'package:todo_list/utils/icon_utils.dart'; void main() { diff --git a/test/get_file_name_test.dart b/test/get_file_name_test.dart index a74c820..4400f9f 100644 --- a/test/get_file_name_test.dart +++ b/test/get_file_name_test.dart @@ -1,6 +1,7 @@ -import 'package:test/test.dart'; +import 'package:flutter_test/flutter_test.dart'; + void main(){ diff --git a/test/mixin_test.dart b/test/mixin_test.dart index 4a87825..aa86f89 100644 --- a/test/mixin_test.dart +++ b/test/mixin_test.dart @@ -1,4 +1,4 @@ -import 'package:test/test.dart'; +import 'package:flutter_test/flutter_test.dart'; diff --git a/test/random_test.dart b/test/random_test.dart index 81076e7..d896b21 100644 --- a/test/random_test.dart +++ b/test/random_test.dart @@ -1,6 +1,7 @@ -import 'package:test/test.dart'; import 'dart:math'; +import 'package:flutter_test/flutter_test.dart'; + void main(){ test("\n测试随机数字\n", (){