diff --git a/README.md b/README.md index 665a7ae..8a02925 100644 --- a/README.md +++ b/README.md @@ -6,19 +6,15 @@ iPomodoro(爱番茄)。🍅 番茄工作法是一种时间管理法方法,在 ## iPomodoro(爱番茄🍅) -爱番茄是一个简单和有效的番茄工作法的应用,灵感来自`我要当学霸`App 和 macOS版`Promodoro Timer`,这2个App已经下架,所以,想以此为基础,开发Android/iOS/macOS版本,并且开源,所有平台暂定免费下载,计划内置打赏机制,iOS/macOS版本不定时收费1人民币(苹果开发账号费)。 +爱番茄是一个简单和有效的番茄工作法的应用,灵感来自 iOS app `我要当学霸` 和 macOS app `Promodoro Timer`,这2个App已经下架多年了,所以,想以此为基础,开发Android/iOS/macOS版本,并且开源,所有平台暂定免费下载,计划内置打赏机制,iOS/macOS版本不定时收费1人民币(苹果开发账号费)。 ## 简介 -分心? -拖延? -高效? -专注? -分心❌ -拖延❌ -高效✅ -专注✅ +- 分心?❌ +- 拖延?❌ +- 高效?✅ +- 专注?✅ iPomodoro(爱番茄) @@ -45,13 +41,22 @@ iPomodoro(爱番茄) 你还有救! -### 下载安装 -1、AppStore付费支持 -[iOS App Store](https://apps.apple.com/cn/app/ipomodoro/id1439666929) +### 下载&安装 + +1、商店安装 + +| 已上架的商店 | 下载地址 | +|---|---| +| 苹果商店 | [https://apps.apple.com/cn/app/ipomodoro/id1439666929](https://apps.apple.com/cn/app/ipomodoro/id1439666929) | +| 谷歌商店 | [https://play.google.com/store/apps/details?id=com.iHTCboy.iPomodoro](https://play.google.com/store/apps/details?id=com.iHTCboy.iPomodoro) | +| 小米商店 | [http://app.xiaomi.com/detail/1341005](http://app.xiaomi.com/detail/1341005) | +| 酷安商店 | [https://www.coolapk.com/apk/282769](https://www.coolapk.com/apk/282769) | + +> 注:因为苹果开发者账号需要 ¥688 年费,所以 AppStore下载收费1元。介意的朋友可以下载本项目代码在macOS系统编译安装。 2、编译安装 -因为苹果开发者账号需要 ¥688 年费,所以 AppStore下载收费请见谅。你可以下载本项目代码在macOS系统编译安装。 +iOS app 因为苹果开发者账号需要 ¥688 年费,所以 AppStore 为付费下载,请见谅。你可以下载本项目代码在macOS系统编译安装。 ### 应用截图 diff --git a/app/ios/Flutter/flutter_export_environment.sh b/app/ios/Flutter/flutter_export_environment.sh index 3704923..5ef0ce2 100755 --- a/app/ios/Flutter/flutter_export_environment.sh +++ b/app/ios/Flutter/flutter_export_environment.sh @@ -5,8 +5,8 @@ export "FLUTTER_APPLICATION_PATH=/Users/HTC/Documents/Programing/Flutter/iPomodo export "FLUTTER_TARGET=/Users/HTC/Documents/Programing/Flutter/iPomodoro-Flutter/app/lib/main.dart" export "FLUTTER_BUILD_DIR=build" export "SYMROOT=${SOURCE_ROOT}/../build/ios" -export "FLUTTER_BUILD_NAME=2.0.0" -export "FLUTTER_BUILD_NUMBER=210307" +export "FLUTTER_BUILD_NAME=2.1.1" +export "FLUTTER_BUILD_NUMBER=210310" export "DART_DEFINES=Zmx1dHRlci5pbnNwZWN0b3Iuc3RydWN0dXJlZEVycm9ycz10cnVl,RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ==" export "DART_OBFUSCATION=false" export "TRACK_WIDGET_CREATION=true" diff --git a/app/ios/Runner.xcodeproj/project.pbxproj b/app/ios/Runner.xcodeproj/project.pbxproj index 287a0f3..87dcbc1 100644 --- a/app/ios/Runner.xcodeproj/project.pbxproj +++ b/app/ios/Runner.xcodeproj/project.pbxproj @@ -464,7 +464,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 2021.03.07; + CURRENT_PROJECT_VERSION = 2021.03.12; DEVELOPMENT_TEAM = 28PV6G96R7; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -480,7 +480,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 2.0.0; + MARKETING_VERSION = 2.2.0; PRODUCT_BUNDLE_IDENTIFIER = com.iHTCboy.iPomodoro; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -606,7 +606,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 2021.03.07; + CURRENT_PROJECT_VERSION = 2021.03.12; DEVELOPMENT_TEAM = 28PV6G96R7; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -622,7 +622,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 2.0.0; + MARKETING_VERSION = 2.2.0; PRODUCT_BUNDLE_IDENTIFIER = com.iHTCboy.iPomodoro; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -640,7 +640,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 2021.03.07; + CURRENT_PROJECT_VERSION = 2021.03.12; DEVELOPMENT_TEAM = 28PV6G96R7; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -656,7 +656,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 2.0.0; + MARKETING_VERSION = 2.2.0; PRODUCT_BUNDLE_IDENTIFIER = com.iHTCboy.iPomodoro; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; diff --git a/app/lib/generated/intl/messages_en.dart b/app/lib/generated/intl/messages_en.dart index a9ad07c..baccd0b 100644 --- a/app/lib/generated/intl/messages_en.dart +++ b/app/lib/generated/intl/messages_en.dart @@ -78,8 +78,8 @@ class MessageLookup extends MessageLookupByLibrary { "pomodoro_times" : m6, "pomodoro_yes" : MessageLookupByLibrary.simpleMessage("Yes(😭)"), "privacy_policy_agree" : MessageLookupByLibrary.simpleMessage("Agree"), - "privacy_policy_show" : MessageLookupByLibrary.simpleMessage("Privacy Agreement"), - "privacy_policy_tips" : MessageLookupByLibrary.simpleMessage("You need to agree to the user privacy policy agreement to use this application, click \'agree\', to continue using, if you do not agree, please exit the application."), + "privacy_policy_reject" : MessageLookupByLibrary.simpleMessage("Reject"), + "privacy_policy_tips" : MessageLookupByLibrary.simpleMessage("You need to agree to the \"User Privacy Policy Agreement\", click the \"Agree\" button to agree to continue to use; if you do not agree, please click \"Reject\" to exit the application."), "set_app_review" : MessageLookupByLibrary.simpleMessage("In-app review"), "set_app_review_desc" : m7, "set_appstore_review" : MessageLookupByLibrary.simpleMessage("Store to review"), @@ -93,11 +93,11 @@ class MessageLookup extends MessageLookupByLibrary { "set_localizetion" : MessageLookupByLibrary.simpleMessage("Set Language"), "set_localizetion_desc" : MessageLookupByLibrary.simpleMessage("Change app language"), "set_open_source" : MessageLookupByLibrary.simpleMessage("Open source"), - "set_open_source_desc" : MessageLookupByLibrary.simpleMessage("Open source, welcome to follow"), + "set_open_source_desc" : MessageLookupByLibrary.simpleMessage("Welcome to follow"), "set_privacy_policy" : MessageLookupByLibrary.simpleMessage("Privacy Policy"), "set_privacy_policy_desc" : MessageLookupByLibrary.simpleMessage("User Use Service Agreement"), "set_recommend" : MessageLookupByLibrary.simpleMessage("More"), - "set_recommend_desc" : MessageLookupByLibrary.simpleMessage("More developer recommendations"), + "set_recommend_desc" : MessageLookupByLibrary.simpleMessage("Developer recommendations"), "set_screen_brightness" : MessageLookupByLibrary.simpleMessage("Set brightness"), "set_screen_brightness_desc" : MessageLookupByLibrary.simpleMessage("In order to save power"), "set_share_friend" : MessageLookupByLibrary.simpleMessage("Share"), diff --git a/app/lib/generated/intl/messages_zh.dart b/app/lib/generated/intl/messages_zh.dart index 2b88674..57ad65e 100644 --- a/app/lib/generated/intl/messages_zh.dart +++ b/app/lib/generated/intl/messages_zh.dart @@ -78,8 +78,8 @@ class MessageLookup extends MessageLookupByLibrary { "pomodoro_times" : m6, "pomodoro_yes" : MessageLookupByLibrary.simpleMessage("是(😭)"), "privacy_policy_agree" : MessageLookupByLibrary.simpleMessage("同意"), - "privacy_policy_show" : MessageLookupByLibrary.simpleMessage("隐私协议"), - "privacy_policy_tips" : MessageLookupByLibrary.simpleMessage("使用本应用需要同意用户隐私政策协议,点击“同意”继续使用,不同意请退出应用。"), + "privacy_policy_reject" : MessageLookupByLibrary.simpleMessage("拒绝"), + "privacy_policy_tips" : MessageLookupByLibrary.simpleMessage("需要同意《用户隐私政策协议》才能继续使用,点击可查看协议内容;点击“同意”按钮表示同意隐私协议继续使用;如不同意,请点击“拒绝”退出应用。"), "set_app_review" : MessageLookupByLibrary.simpleMessage("应用内评分"), "set_app_review_desc" : m7, "set_appstore_review" : MessageLookupByLibrary.simpleMessage("去商店评分"), diff --git a/app/lib/generated/l10n.dart b/app/lib/generated/l10n.dart index bd31773..75ba53e 100644 --- a/app/lib/generated/l10n.dart +++ b/app/lib/generated/l10n.dart @@ -1025,10 +1025,10 @@ class S { ); } - /// `Open source, welcome to follow` + /// `Welcome to follow` String get set_open_source_desc { return Intl.message( - 'Open source, welcome to follow', + 'Welcome to follow', name: 'set_open_source_desc', desc: '', args: [], @@ -1065,10 +1065,10 @@ class S { ); } - /// `More developer recommendations` + /// `Developer recommendations` String get set_recommend_desc { return Intl.message( - 'More developer recommendations', + 'Developer recommendations', name: 'set_recommend_desc', desc: '', args: [], @@ -1095,10 +1095,10 @@ class S { ); } - /// `You need to agree to the user privacy policy agreement to use this application, click 'agree', to continue using, if you do not agree, please exit the application.` + /// `You need to agree to the "User Privacy Policy Agreement", click the "Agree" button to agree to continue to use; if you do not agree, please click "Reject" to exit the application.` String get privacy_policy_tips { return Intl.message( - 'You need to agree to the user privacy policy agreement to use this application, click \'agree\', to continue using, if you do not agree, please exit the application.', + 'You need to agree to the "User Privacy Policy Agreement", click the "Agree" button to agree to continue to use; if you do not agree, please click "Reject" to exit the application.', name: 'privacy_policy_tips', desc: '', args: [], @@ -1115,11 +1115,11 @@ class S { ); } - /// `Privacy Agreement` - String get privacy_policy_show { + /// `Reject` + String get privacy_policy_reject { return Intl.message( - 'Privacy Agreement', - name: 'privacy_policy_show', + 'Reject', + name: 'privacy_policy_reject', desc: '', args: [], ); diff --git a/app/lib/l10n/intl_en.arb b/app/lib/l10n/intl_en.arb index f87f643..a07d747 100644 --- a/app/lib/l10n/intl_en.arb +++ b/app/lib/l10n/intl_en.arb @@ -98,14 +98,14 @@ "set_privacy_policy": "Privacy Policy", "set_privacy_policy_desc": "User Use Service Agreement", "set_open_source": "Open source", - "set_open_source_desc": "Open source, welcome to follow", + "set_open_source_desc": "Welcome to follow", "set_focus": "Focus more", "set_focus_desc": "Welcome to author's blog", "set_recommend": "More", - "set_recommend_desc": "More developer recommendations", + "set_recommend_desc": "Developer recommendations", "set_localizetion": "Set Language", "set_localizetion_desc": "Change app language", - "privacy_policy_tips": "You need to agree to the user privacy policy agreement to use this application, click 'agree', to continue using, if you do not agree, please exit the application.", + "privacy_policy_tips": "You need to agree to the \"User Privacy Policy Agreement\", click the \"Agree\" button to agree to continue to use; if you do not agree, please click \"Reject\" to exit the application.", "privacy_policy_agree": "Agree", - "privacy_policy_show": "Privacy Agreement" + "privacy_policy_reject": "Reject" } \ No newline at end of file diff --git a/app/lib/l10n/intl_zh.arb b/app/lib/l10n/intl_zh.arb index 39f9d17..3006c8c 100644 --- a/app/lib/l10n/intl_zh.arb +++ b/app/lib/l10n/intl_zh.arb @@ -105,7 +105,7 @@ "set_recommend_desc": "更多开发者内容推荐", "set_localizetion": "设置显示语言", "set_localizetion_desc": "更改App的语言", - "privacy_policy_tips": "使用本应用需要同意用户隐私政策协议,点击“同意”继续使用,不同意请退出应用。", + "privacy_policy_tips": "需要同意《用户隐私政策协议》才能继续使用,点击可查看协议内容;点击“同意”按钮表示同意隐私协议继续使用;如不同意,请点击“拒绝”退出应用。", "privacy_policy_agree": "同意", - "privacy_policy_show": "隐私协议" + "privacy_policy_reject": "拒绝" } \ No newline at end of file diff --git a/app/lib/ui/page/countdown_settings.dart b/app/lib/ui/page/countdown_settings.dart index 691da89..c5f057e 100644 --- a/app/lib/ui/page/countdown_settings.dart +++ b/app/lib/ui/page/countdown_settings.dart @@ -61,7 +61,7 @@ class _CountdownSettingsPageState extends State { fontSize: DeviceUtils.get_size(context, 17, 19, 22))), trailing: Container( height: double.infinity, - width: 130, + width: DeviceUtils.get_size(context, 130, 140, 200), child: Row( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.center, diff --git a/app/lib/ui/page/me_page.dart b/app/lib/ui/page/me_page.dart index 2058faf..d0d05ef 100644 --- a/app/lib/ui/page/me_page.dart +++ b/app/lib/ui/page/me_page.dart @@ -22,7 +22,7 @@ class MePage extends StatelessWidget { 'title': S.of(context).set_localizetion, 'subtitle': S.of(context).set_localizetion_desc, 'icon': Icons.language, - 'icon_color': Colors.indigo + 'icon_color': Colors.cyan }, { 'title': S.of(context).set_app_review, @@ -150,7 +150,7 @@ class MePage extends StatelessWidget { ]), trailing: Container( height: double.infinity, - width: DeviceUtils.get_size(context, 200, 220, 250), + width: DeviceUtils.get_size(context, 200, 220, 300), child: Row( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.center, diff --git a/app/lib/ui/page/pomodoro_page.dart b/app/lib/ui/page/pomodoro_page.dart index 7f01bb5..db0463b 100644 --- a/app/lib/ui/page/pomodoro_page.dart +++ b/app/lib/ui/page/pomodoro_page.dart @@ -11,6 +11,7 @@ import 'package:iPomodoro/common/utils/time_utils.dart'; import 'package:iPomodoro/config/app_config.dart'; import 'package:iPomodoro/generated/l10n.dart'; import 'package:iPomodoro/ui/widget/cupertino_alert.dart'; +import 'package:iPomodoro/ui/widget/privacy_policy_dialog.dart'; import 'package:iPomodoro/ui/widget/time_dialog.dart'; import 'package:iPomodoro/ui/widget/tips_dialog.dart'; import 'package:iPomodoro/common/channel/native_method_channel.dart'; @@ -56,7 +57,8 @@ class _PomodoroPageState extends State with WidgetsBindingObserver _show_tpis = false; WidgetsBinding.instance.addPostFrameCallback((timeStamp) { showTips(); - // show_privacy_policy(); + //TODO:华为渠道必须有隐私弹窗 + //show_privacy_policy(); }); }; } @@ -432,14 +434,17 @@ class _PomodoroPageState extends State with WidgetsBindingObserver if(Platform.isAndroid) { AppStorage.getInt(AppStorage.K_STRING_PRIVACY_SHOW_TIPS).then((value) { if (value == null) { - AlertView.show(context, S.of(context).tips_text, S.of(context).privacy_policy_tips, - confirmText: S.of(context).privacy_policy_agree, cancelText: S.of(context).privacy_policy_show, cancelTextColor: Colors.green).then((bool isOK) { - //save status - AppStorage.setInt(AppStorage.K_STRING_PRIVACY_SHOW_TIPS, 1); - if(!isOK) { - NativeChannel.invokeMethod('privacy_policy'); - } - }); + PrivacyPolicyDialog().showCustomDialog(context, + textClickedFunction: () { + NativeChannel.invokeMethod('privacy_policy'); + }, + cancelBtnFunction: () { + //退出应用 + exit(404); + }, + agreeBtnFunction: () { + AppStorage.setInt(AppStorage.K_STRING_PRIVACY_SHOW_TIPS, 1); + }); } }); } diff --git a/app/lib/ui/page/pomodoro_settings.dart b/app/lib/ui/page/pomodoro_settings.dart index ac1ce89..22c2d3a 100644 --- a/app/lib/ui/page/pomodoro_settings.dart +++ b/app/lib/ui/page/pomodoro_settings.dart @@ -71,7 +71,7 @@ class _PomodoroSettingsPageState extends State { fontSize: DeviceUtils.get_size(context, 17, 19, 22))), trailing: Container( height: double.infinity, - width: 120, + width: DeviceUtils.get_size(context, 120, 120, 180), child: Row( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.center, @@ -98,7 +98,7 @@ class _PomodoroSettingsPageState extends State { fontSize: DeviceUtils.get_size(context, 17, 19, 22))), trailing: Container( height: double.infinity, - width: 100, + width: DeviceUtils.get_size(context, 100, 100, 150), child: Row( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.center, @@ -125,7 +125,7 @@ class _PomodoroSettingsPageState extends State { fontSize: DeviceUtils.get_size(context, 17, 19, 22))), trailing: Container( height: double.infinity, - width: 100, + width: DeviceUtils.get_size(context, 100, 100, 150), child: Row( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.center, @@ -152,7 +152,7 @@ class _PomodoroSettingsPageState extends State { fontSize: DeviceUtils.get_size(context, 17, 19, 22))), trailing: Container( height: double.infinity, - width: 120, + width: DeviceUtils.get_size(context, 130, 140, 180), child: Row( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.center, @@ -179,7 +179,7 @@ class _PomodoroSettingsPageState extends State { fontSize: DeviceUtils.get_size(context, 17, 19, 22))), trailing: Container( height: double.infinity, - width: 120, + width: DeviceUtils.get_size(context, 120, 120, 180), child: Row( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.center, diff --git a/app/lib/ui/page/timer_settings.dart b/app/lib/ui/page/timer_settings.dart index f9188ea..d593907 100644 --- a/app/lib/ui/page/timer_settings.dart +++ b/app/lib/ui/page/timer_settings.dart @@ -58,7 +58,7 @@ class _TimerSettingsPageState extends State { fontSize: DeviceUtils.get_size(context, 17, 19, 22))), trailing: Container( height: double.infinity, - width: 120, + width: DeviceUtils.get_size(context, 130, 140, 200), child: Row( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.center, @@ -85,7 +85,7 @@ class _TimerSettingsPageState extends State { fontSize: DeviceUtils.get_size(context, 17, 19, 22))), trailing: Container( height: double.infinity, - width: 120, + width: DeviceUtils.get_size(context, 130, 130, 200), child: Row( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.center, diff --git a/app/lib/ui/widget/privacy_policy_dialog.dart b/app/lib/ui/widget/privacy_policy_dialog.dart new file mode 100644 index 0000000..1db7aa0 --- /dev/null +++ b/app/lib/ui/widget/privacy_policy_dialog.dart @@ -0,0 +1,101 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:iPomodoro/generated/l10n.dart'; + +class PrivacyPolicyDialog { + void showCustomDialog(BuildContext context, + {@required Function textClickedFunction, + @required Function cancelBtnFunction, + @required Function agreeBtnFunction}) { + showGeneralDialog( + context: context, + barrierDismissible: false, + barrierLabel: + MaterialLocalizations.of(context).modalBarrierDismissLabel, + barrierColor: Colors.black45, + transitionDuration: const Duration(milliseconds: 200), + pageBuilder: (BuildContext buildContext, Animation animation, + Animation secondaryAnimation) { + return Material( + type: MaterialType.transparency, + child: Center( + child: Container( + padding: EdgeInsets.all(15), + width: 280, + height: 300, + decoration: BoxDecoration( + shape: BoxShape.rectangle, + color: Colors.white, + borderRadius: BorderRadius.circular(5), + boxShadow: [ + BoxShadow( + color: Colors.black12, + offset: Offset(0, 10), + blurRadius: 10), + ]), + child: Column( + children: [ + Image.asset( + "assets/images/app_logo.png", + width: 50, + height: 50, + ), + SizedBox( + height: 15, + ), + Text( + S.of(context).tips_text, + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Colors.black87, + decoration: TextDecoration.none), + ), + SizedBox( + height: 15, + ), + InkWell( + onTap: textClickedFunction, + child: Text( + S.of(context).privacy_policy_tips, + style: TextStyle( + fontSize: 14, + color: Colors.black54, + fontWeight: FontWeight.normal, + decoration: TextDecoration.none), + textAlign: TextAlign.center, + ), + ), + SizedBox( + height: 22, + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + TextButton( + onPressed: () { + Navigator.of(context).pop(); + cancelBtnFunction(); + }, + child: Text( + S.of(context).privacy_policy_reject, + style: TextStyle(fontSize: 16, color: Colors.green), + )), + TextButton( + onPressed: () { + Navigator.of(context).pop(); + agreeBtnFunction(); + }, + child: Text( + S.of(context).privacy_policy_agree, + style: TextStyle(fontSize: 16), + )), + ], + ), + ], + ), + )), + ); + }); + } +} diff --git a/app/pubspec.yaml b/app/pubspec.yaml index b9e10f4..0394cb3 100644 --- a/app/pubspec.yaml +++ b/app/pubspec.yaml @@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 2.1.1+210310 +version: 2.2.0+210312 environment: sdk: ">=2.7.0 <3.0.0"