diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index ca2e5c4c9..693ae92a2 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"device_info","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\device_info-0.4.2+4\\\\","dependencies":[]},{"name":"flutter_downloader","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\flutter_downloader-1.5.0\\\\","dependencies":[]},{"name":"flutter_inapp_purchase","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\flutter_inapp_purchase-2.2.0\\\\","dependencies":[]},{"name":"image_picker","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\image_picker-0.6.7+4\\\\","dependencies":[]},{"name":"package_info","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\package_info-0.4.1\\\\","dependencies":[]},{"name":"path_provider","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\path_provider-1.6.11\\\\","dependencies":[]},{"name":"permission_handler","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\permission_handler-5.0.1+1\\\\","dependencies":[]},{"name":"receive_sharing_intent","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\receive_sharing_intent-1.4.0+2\\\\","dependencies":[]},{"name":"save_in_gallery","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\save_in_gallery-0.1.3\\\\","dependencies":[]},{"name":"share","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\share-0.6.4+3\\\\","dependencies":[]},{"name":"share_extend","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\share_extend-1.1.9\\\\","dependencies":[]},{"name":"shared_preferences","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\shared_preferences-0.5.8\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\sqflite-1.3.1\\\\","dependencies":[]},{"name":"uni_links","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\uni_links-0.4.0\\\\","dependencies":[]},{"name":"url_launcher","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\url_launcher-5.5.0\\\\","dependencies":[]}],"android":[{"name":"device_info","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\device_info-0.4.2+4\\\\","dependencies":[]},{"name":"flutter_displaymode","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\flutter_displaymode-0.1.0\\\\","dependencies":[]},{"name":"flutter_downloader","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\flutter_downloader-1.5.0\\\\","dependencies":[]},{"name":"flutter_inapp_purchase","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\flutter_inapp_purchase-2.2.0\\\\","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\flutter_plugin_android_lifecycle-1.0.8\\\\","dependencies":[]},{"name":"image_picker","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\image_picker-0.6.7+4\\\\","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"package_info","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\package_info-0.4.1\\\\","dependencies":[]},{"name":"path_provider","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\path_provider-1.6.11\\\\","dependencies":[]},{"name":"permission_handler","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\permission_handler-5.0.1+1\\\\","dependencies":[]},{"name":"receive_sharing_intent","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\receive_sharing_intent-1.4.0+2\\\\","dependencies":[]},{"name":"save_in_gallery","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\save_in_gallery-0.1.3\\\\","dependencies":[]},{"name":"share","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\share-0.6.4+3\\\\","dependencies":[]},{"name":"share_extend","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\share_extend-1.1.9\\\\","dependencies":[]},{"name":"shared_preferences","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\shared_preferences-0.5.8\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\sqflite-1.3.1\\\\","dependencies":[]},{"name":"uni_links","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\uni_links-0.4.0\\\\","dependencies":[]},{"name":"url_launcher","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\url_launcher-5.5.0\\\\","dependencies":[]}],"macos":[{"name":"package_info","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\package_info-0.4.1\\\\","dependencies":[]},{"name":"path_provider_macos","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\path_provider_macos-0.0.4+3\\\\","dependencies":[]},{"name":"shared_preferences_macos","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\shared_preferences_macos-0.0.1+10\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\sqflite-1.3.1\\\\","dependencies":[]},{"name":"url_launcher_macos","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\url_launcher_macos-0.0.1+7\\\\","dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\path_provider_linux-0.0.1+2\\\\","dependencies":[]},{"name":"shared_preferences_linux","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\shared_preferences_linux-0.0.2+1\\\\","dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\url_launcher_linux-0.0.1+1\\\\","dependencies":[]}],"windows":[],"web":[{"name":"shared_preferences_web","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\shared_preferences_web-0.1.2+7\\\\","dependencies":[]},{"name":"url_launcher_web","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\url_launcher_web-0.1.2\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"device_info","dependencies":[]},{"name":"flutter_displaymode","dependencies":[]},{"name":"flutter_downloader","dependencies":[]},{"name":"flutter_inapp_purchase","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"package_info","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_macos","path_provider_linux"]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_macos","dependencies":[]},{"name":"permission_handler","dependencies":[]},{"name":"receive_sharing_intent","dependencies":[]},{"name":"save_in_gallery","dependencies":[]},{"name":"share","dependencies":[]},{"name":"share_extend","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_linux","shared_preferences_macos","shared_preferences_web"]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_macos","dependencies":[]},{"name":"shared_preferences_web","dependencies":[]},{"name":"sqflite","dependencies":[]},{"name":"uni_links","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_web","url_launcher_linux","url_launcher_macos"]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]}],"date_created":"2020-08-15 20:44:40.920668","version":"1.20.1"} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"device_info","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\device_info-0.4.2+4\\\\","dependencies":[]},{"name":"flutter_downloader","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\flutter_downloader-1.5.0\\\\","dependencies":[]},{"name":"flutter_inapp_purchase","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\flutter_inapp_purchase-2.2.0\\\\","dependencies":[]},{"name":"image_picker","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\image_picker-0.6.7+4\\\\","dependencies":[]},{"name":"package_info","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\package_info-0.4.1\\\\","dependencies":[]},{"name":"path_provider","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\path_provider-1.6.11\\\\","dependencies":[]},{"name":"permission_handler","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\permission_handler-5.0.1+1\\\\","dependencies":[]},{"name":"receive_sharing_intent","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\receive_sharing_intent-1.4.0+2\\\\","dependencies":[]},{"name":"save_in_gallery","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\save_in_gallery-0.1.3\\\\","dependencies":[]},{"name":"share","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\share-0.6.4+3\\\\","dependencies":[]},{"name":"share_extend","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\share_extend-1.1.9\\\\","dependencies":[]},{"name":"shared_preferences","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\shared_preferences-0.5.8\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\sqflite-1.3.1\\\\","dependencies":[]},{"name":"uni_links","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\uni_links-0.4.0\\\\","dependencies":[]},{"name":"url_launcher","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\url_launcher-5.5.0\\\\","dependencies":[]}],"android":[{"name":"device_info","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\device_info-0.4.2+4\\\\","dependencies":[]},{"name":"flutter_displaymode","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\flutter_displaymode-0.1.0\\\\","dependencies":[]},{"name":"flutter_downloader","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\flutter_downloader-1.5.0\\\\","dependencies":[]},{"name":"flutter_inapp_purchase","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\flutter_inapp_purchase-2.2.0\\\\","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\flutter_plugin_android_lifecycle-1.0.8\\\\","dependencies":[]},{"name":"image_picker","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\image_picker-0.6.7+4\\\\","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"package_info","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\package_info-0.4.1\\\\","dependencies":[]},{"name":"path_provider","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\path_provider-1.6.11\\\\","dependencies":[]},{"name":"permission_handler","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\permission_handler-5.0.1+1\\\\","dependencies":[]},{"name":"receive_sharing_intent","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\receive_sharing_intent-1.4.0+2\\\\","dependencies":[]},{"name":"save_in_gallery","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\save_in_gallery-0.1.3\\\\","dependencies":[]},{"name":"share","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\share-0.6.4+3\\\\","dependencies":[]},{"name":"share_extend","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\share_extend-1.1.9\\\\","dependencies":[]},{"name":"shared_preferences","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\shared_preferences-0.5.8\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\sqflite-1.3.1\\\\","dependencies":[]},{"name":"uni_links","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\uni_links-0.4.0\\\\","dependencies":[]},{"name":"url_launcher","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\url_launcher-5.5.0\\\\","dependencies":[]}],"macos":[{"name":"package_info","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\package_info-0.4.1\\\\","dependencies":[]},{"name":"path_provider_macos","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\path_provider_macos-0.0.4+3\\\\","dependencies":[]},{"name":"shared_preferences_macos","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\shared_preferences_macos-0.0.1+10\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\sqflite-1.3.1\\\\","dependencies":[]},{"name":"url_launcher_macos","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\url_launcher_macos-0.0.1+7\\\\","dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\path_provider_linux-0.0.1+2\\\\","dependencies":[]},{"name":"shared_preferences_linux","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\shared_preferences_linux-0.0.2+1\\\\","dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\url_launcher_linux-0.0.1+1\\\\","dependencies":[]}],"windows":[],"web":[{"name":"shared_preferences_web","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\shared_preferences_web-0.1.2+7\\\\","dependencies":[]},{"name":"url_launcher_web","path":"C:\\\\Users\\\\Perol\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\url_launcher_web-0.1.2\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"device_info","dependencies":[]},{"name":"flutter_displaymode","dependencies":[]},{"name":"flutter_downloader","dependencies":[]},{"name":"flutter_inapp_purchase","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"package_info","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_macos","path_provider_linux"]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_macos","dependencies":[]},{"name":"permission_handler","dependencies":[]},{"name":"receive_sharing_intent","dependencies":[]},{"name":"save_in_gallery","dependencies":[]},{"name":"share","dependencies":[]},{"name":"share_extend","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_linux","shared_preferences_macos","shared_preferences_web"]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_macos","dependencies":[]},{"name":"shared_preferences_web","dependencies":[]},{"name":"sqflite","dependencies":[]},{"name":"uni_links","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_web","url_launcher_linux","url_launcher_macos"]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]}],"date_created":"2020-08-17 13:00:54.880303","version":"1.20.1"} \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle index e033b9ef0..8886ce065 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -62,8 +62,8 @@ android { applicationId "com.perol.pixez" minSdkVersion 21 targetSdkVersion 29 - versionCode 22 - versionName "0.1.6 ListTile" + versionCode 23 + versionName "0.1.7X sliver" } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 diff --git a/lib/component/illust_card.dart b/lib/component/illust_card.dart index 92dedec50..c965c9b6d 100644 --- a/lib/component/illust_card.dart +++ b/lib/component/illust_card.dart @@ -28,11 +28,12 @@ class IllustCard extends HookWidget { final IllustStore store; final List iStores; final bool needToBan; - + final double height; IllustCard({ @required this.store, this.iStores, this.needToBan = false, + this.height, }); @override @@ -92,6 +93,11 @@ class IllustCard extends HookWidget { ); } } + if (height != null) + return Container( + child: buildInkWell(context), + height: height, + ); return buildInkWell(context); } diff --git a/lib/component/painer_card.dart b/lib/component/painer_card.dart index 1c54645db..8d32db116 100644 --- a/lib/component/painer_card.dart +++ b/lib/component/painer_card.dart @@ -41,16 +41,24 @@ class PainterCard extends StatelessWidget { shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(8.0))), clipBehavior: Clip.antiAlias, - child: CustomScrollView( - slivers: [ - SliverGrid.count( - crossAxisCount: 3, - children: user.illusts - .map((e) => PixivImage(e.imageUrls.squareMedium)) - .toList(), - ), - buildPadding() - ], + child: Container( + height: (MediaQuery.of(context).size.width - 4) / 3 + 80, + child: CustomScrollView( + physics: NeverScrollableScrollPhysics(), + slivers: [ + SliverGrid( + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3), + delegate: SliverChildBuilderDelegate((context, index) { + if (index >= user.illusts.length) return Container(); + return PixivImage( + user.illusts[index].imageUrls.squareMedium, + fit: BoxFit.cover, + ); + }, childCount: user.illusts.length)), + SliverToBoxAdapter(child: buildPadding()) + ], + ), ), ), ); diff --git a/lib/constraint.dart b/lib/constraint.dart index 0e42ea29a..cb76ce567 100644 --- a/lib/constraint.dart +++ b/lib/constraint.dart @@ -1,4 +1,4 @@ class Constrains { - static String tagName = "0.1.6"; + static String tagName = "0.1.7"; static bool isGooglePlay = false; } diff --git a/lib/generated/intl/messages_en-US.dart b/lib/generated/intl/messages_en-US.dart index 55f490f47..1f6fe5524 100644 --- a/lib/generated/intl/messages_en-US.dart +++ b/lib/generated/intl/messages_en-US.dart @@ -128,6 +128,7 @@ class MessageLookup extends MessageLookupByLibrary { "paused" : MessageLookupByLibrary.simpleMessage("Paused"), "perol_message" : MessageLookupByLibrary.simpleMessage("使用flutter开发"), "personal" : MessageLookupByLibrary.simpleMessage("Personal"), + "pick_a_color" : MessageLookupByLibrary.simpleMessage("Pick a color"), "pixel" : MessageLookupByLibrary.simpleMessage("Resolution"), "please_note_that" : MessageLookupByLibrary.simpleMessage("Please note that"), "please_note_that_content" : MessageLookupByLibrary.simpleMessage("Only when you make sure that your agent or area can access pixiv, you can turn on this switch. After the switch is turned on, all network problems have nothing to do with the application. Don\'t feed back the problem that you can\'t connect"), diff --git a/lib/generated/intl/messages_zh-CN.dart b/lib/generated/intl/messages_zh-CN.dart index 050428168..61e9dfab7 100644 --- a/lib/generated/intl/messages_zh-CN.dart +++ b/lib/generated/intl/messages_zh-CN.dart @@ -128,6 +128,7 @@ class MessageLookup extends MessageLookupByLibrary { "paused" : MessageLookupByLibrary.simpleMessage("已暂停"), "perol_message" : MessageLookupByLibrary.simpleMessage("使用flutter开发"), "personal" : MessageLookupByLibrary.simpleMessage("个人"), + "pick_a_color" : MessageLookupByLibrary.simpleMessage("选择颜色"), "pixel" : MessageLookupByLibrary.simpleMessage("分辨率"), "please_note_that" : MessageLookupByLibrary.simpleMessage("请注意"), "please_note_that_content" : MessageLookupByLibrary.simpleMessage("只有在确保你的代理或是所处地区能够访问到pixiv时,才能够打开这个开关,开关开启后一切网络问题都与应用无关了,不要反馈无法连接的问题"), diff --git a/lib/generated/intl/messages_zh-TW.dart b/lib/generated/intl/messages_zh-TW.dart index 5855756ed..07c7debce 100644 --- a/lib/generated/intl/messages_zh-TW.dart +++ b/lib/generated/intl/messages_zh-TW.dart @@ -128,6 +128,7 @@ class MessageLookup extends MessageLookupByLibrary { "paused" : MessageLookupByLibrary.simpleMessage("已暫停"), "perol_message" : MessageLookupByLibrary.simpleMessage("使用 Flutter 開發"), "personal" : MessageLookupByLibrary.simpleMessage("個人"), + "pick_a_color" : MessageLookupByLibrary.simpleMessage("選擇顏色"), "pixel" : MessageLookupByLibrary.simpleMessage("解析度"), "please_note_that" : MessageLookupByLibrary.simpleMessage("請註意"), "please_note_that_content" : MessageLookupByLibrary.simpleMessage("只有在確保你的代理或是所處地區能夠訪問 Pixiv 時,才建議啟用此選項,選項開啟後任何網路問題都與本程式無關,請不要回報無法連線的問題"), diff --git a/lib/generated/l10n.dart b/lib/generated/l10n.dart index 6f9debeff..debc5bffc 100644 --- a/lib/generated/l10n.dart +++ b/lib/generated/l10n.dart @@ -1722,6 +1722,16 @@ class I18n { args: [], ); } + + /// `Pick a color` + String get pick_a_color { + return Intl.message( + 'Pick a color', + name: 'pick_a_color', + desc: '', + args: [], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { diff --git a/lib/l10n/intl_en_US.arb b/lib/l10n/intl_en_US.arb index 5a4d7255e..ca3f0444e 100644 --- a/lib/l10n/intl_en_US.arb +++ b/lib/l10n/intl_en_US.arb @@ -168,5 +168,6 @@ "warning": "Clear all cache?", "welcome_page": "Welcome Page", "which_part": "Index", - "works": "Works" + "works": "Works", + "pick_a_color": "Pick a color" } \ No newline at end of file diff --git a/lib/l10n/intl_zh_CN.arb b/lib/l10n/intl_zh_CN.arb index 77db4c40a..356d6a0ea 100644 --- a/lib/l10n/intl_zh_CN.arb +++ b/lib/l10n/intl_zh_CN.arb @@ -168,5 +168,6 @@ "warning": "清除全部缓存?", "welcome_page": "欢迎页", "which_part": "第几张", - "works": "作品" + "works": "作品", + "pick_a_color": "选择颜色" } \ No newline at end of file diff --git a/lib/l10n/intl_zh_TW.arb b/lib/l10n/intl_zh_TW.arb index 5800f6e13..d7b8d633f 100644 --- a/lib/l10n/intl_zh_TW.arb +++ b/lib/l10n/intl_zh_TW.arb @@ -168,5 +168,6 @@ "warning": "清除全部暫存?", "welcome_page": "預設頁面", "which_part": "第幾張", - "works": "作品" + "works": "作品", + "pick_a_color": "選擇顏色" } diff --git a/lib/lighting/lighting_page.dart b/lib/lighting/lighting_page.dart index 9d77347e1..45f7aa451 100644 --- a/lib/lighting/lighting_page.dart +++ b/lib/lighting/lighting_page.dart @@ -29,15 +29,9 @@ import 'package:waterfall_flow/waterfall_flow.dart'; class LightingList extends StatefulWidget { final FutureGet source; final Widget header; - final ScrollController scrollController; final bool isNested; - const LightingList( - {Key key, - @required this.source, - this.header, - this.scrollController, - this.isNested}) + {Key key, @required this.source, this.header, this.isNested}) : super(key: key); @override @@ -47,38 +41,22 @@ class LightingList extends StatefulWidget { class _LightingListState extends State { LightingStore _store; ScrollController _scrollController; - bool isNested = false; - + bool _isNested; @override void didUpdateWidget(LightingList oldWidget) { super.didUpdateWidget(oldWidget); if (oldWidget.source != widget.source) { _store.source = widget.source; _store.fetch(); - if (!isNested && _store.iStores.isNotEmpty) _scrollController.jumpTo(0.0); + if (!_isNested) _scrollController.jumpTo(0.0); } } @override void initState() { - isNested = widget.isNested ?? false; + _isNested = widget.isNested ?? false; + if (!_isNested) _scrollController = ScrollController(); _store = LightingStore(widget.source, _refreshController); - _scrollController = widget.scrollController ?? ScrollController(); - // _scrollController.addListener(() { - // bool temp; - // if (_scrollController.offset > 400) { - // temp = true; - // } else { - // temp = false; - // } - // if (temp != backToTopEnable) { - // setState(() { - // setState(() { - // this.backToTopEnable = temp; - // }); - // }); - // } - // }); super.initState(); _store.fetch(); } @@ -91,8 +69,6 @@ class _LightingListState extends State { super.dispose(); } - bool backToTopEnable = false; - @override Widget build(BuildContext context) { return Observer(builder: (_) { @@ -114,18 +90,6 @@ class _LightingListState extends State { visible: false, ), ), - Align( - alignment: Alignment.bottomCenter, - child: Visibility( - visible: backToTopEnable, - child: IconButton( - padding: EdgeInsets.all(0.0), - icon: Icon(Icons.expand_less), - onPressed: () { - _scrollController.jumpTo(0.0); - }), - ), - ) ], ), ); @@ -218,9 +182,39 @@ class _LightingListState extends State { Widget _buildWaterFall() { double screanWidth = MediaQuery.of(context).size.width; double itemWidth = (screanWidth / userSetting.crossCount.toDouble()) - 32.0; - + if (_isNested) { + return WaterfallFlow.builder( + padding: EdgeInsets.all(5.0), + itemCount: _store.iStores.length, + itemBuilder: (context, index) { + double radio = _store.iStores[index].illusts.height.toDouble() / + _store.iStores[index].illusts.width.toDouble(); + double mainAxisExtent; + if (radio > 3) + mainAxisExtent = itemWidth; + else + mainAxisExtent = itemWidth * radio; + return IllustCard( + store: _store.iStores[index], + iStores: _store.iStores, + height: mainAxisExtent + 60.0, + ); + }, + gridDelegate: SliverWaterfallFlowDelegateWithFixedCrossAxisCount( + crossAxisCount: userSetting.crossCount, + collectGarbage: (List garbages) { + garbages.forEach((index) { + final provider = ExtendedNetworkImageProvider( + _store.iStores[index].illusts.imageUrls.medium, + ); + provider.evict(); + }); + }, + )); + } return WaterfallFlow.builder( padding: EdgeInsets.all(5.0), + controller: _scrollController, itemCount: _store.iStores.length, itemBuilder: (context, index) { double radio = _store.iStores[index].illusts.height.toDouble() / @@ -230,13 +224,14 @@ class _LightingListState extends State { mainAxisExtent = itemWidth; else mainAxisExtent = itemWidth * radio; - return Container( - child: IllustCard(store: _store.iStores[index]), + return IllustCard( + store: _store.iStores[index], + iStores: _store.iStores, height: mainAxisExtent + 60.0, ); }, gridDelegate: SliverWaterfallFlowDelegateWithFixedCrossAxisCount( - crossAxisCount: 2, + crossAxisCount: userSetting.crossCount, collectGarbage: (List garbages) { garbages.forEach((index) { final provider = ExtendedNetworkImageProvider( @@ -247,6 +242,4 @@ class _LightingListState extends State { }, )); } - - } diff --git a/lib/lighting/lighting_store.dart b/lib/lighting/lighting_store.dart index f8807e603..5ee50bf6f 100644 --- a/lib/lighting/lighting_store.dart +++ b/lib/lighting/lighting_store.dart @@ -35,13 +35,13 @@ abstract class _LightingStoreBase with Store { @observable ObservableList iStores = ObservableList(); dispose() { - iStores.forEach((element) { - final provider = ExtendedNetworkImageProvider( - element.illusts.imageUrls.medium, - ); - provider.evict(); - }); - iStores.clear(); + // iStores.forEach((element) { + // final provider = ExtendedNetworkImageProvider( + // element.illusts.imageUrls.medium, + // ); + // provider.evict(); + // }); + // iStores.clear(); } @observable diff --git a/lib/page/hello/android_hello_page.dart b/lib/page/hello/android_hello_page.dart index 0aab32d36..47678ea61 100644 --- a/lib/page/hello/android_hello_page.dart +++ b/lib/page/hello/android_hello_page.dart @@ -123,10 +123,8 @@ class _AndroidHelloPageState extends State { if (Platform.isAndroid) { try { Uri initialLink = await getInitialUri(); - print(initialLink); if (initialLink != null) judgePushPage(initialLink); _sub = getUriLinksStream().listen((Uri link) { - print("link:${link}"); judgePushPage(link); }); } catch (e) { diff --git a/lib/page/hello/new/new_page.dart b/lib/page/hello/new/new_page.dart index 1e0586b8d..71ce59a7b 100644 --- a/lib/page/hello/new/new_page.dart +++ b/lib/page/hello/new/new_page.dart @@ -63,18 +63,20 @@ class _NewPageState extends State { children: [ AppBar( automaticallyImplyLeading: false, - title: - TabBar(indicatorSize: TabBarIndicatorSize.label, tabs: [ - Tab( - text: I18n.of(context).news, - ), - Tab( - text: I18n.of(context).bookmark, - ), - Tab( - text: I18n.of(context).followed, - ), - ]), + title: TabBar( + indicatorSize: TabBarIndicatorSize.label, + indicatorColor: Theme.of(context).cardColor, + tabs: [ + Tab( + text: I18n.of(context).news, + ), + Tab( + text: I18n.of(context).bookmark, + ), + Tab( + text: I18n.of(context).followed, + ), + ]), actions: [ IconButton( icon: Icon(Icons.supervised_user_circle), diff --git a/lib/page/hello/ranking/rank_page.dart b/lib/page/hello/ranking/rank_page.dart index 2430e8ebc..a976312e9 100644 --- a/lib/page/hello/ranking/rank_page.dart +++ b/lib/page/hello/ranking/rank_page.dart @@ -81,7 +81,9 @@ class _RankPageState extends State { children: [ AppBar( title: TabBar( + indicatorSize: TabBarIndicatorSize.label, isScrollable: true, + indicatorColor: Theme.of(context).cardColor, tabs: titles .map((element) => Tab( text: element, @@ -95,8 +97,10 @@ class _RankPageState extends State { var date = await showDatePicker( context: context, initialDate: nowDateTime, - locale: I18n.delegate.supportedLocales[userSetting.languageNum], - firstDate: DateTime(2007,8),//pixiv于2007年9月10日由上谷隆宏等人首次推出第一个测试版... + locale: I18n.delegate + .supportedLocales[userSetting.languageNum], + firstDate: DateTime( + 2007, 8), //pixiv于2007年9月10日由上谷隆宏等人首次推出第一个测试版... lastDate: nowdate); if (date != null && mounted) { nowDateTime = date; diff --git a/lib/page/hello/recom/recom_spotlight_page.dart b/lib/page/hello/recom/recom_spotlight_page.dart index 444390639..b80f15bf2 100644 --- a/lib/page/hello/recom/recom_spotlight_page.dart +++ b/lib/page/hello/recom/recom_spotlight_page.dart @@ -64,9 +64,7 @@ class _RecomSpolightPageState extends State { @override Widget build(BuildContext context) { - return Observer(builder: (_) { - return buildEasyRefresh(context); - }); + return buildEasyRefresh(context); } bool needToBan(Illusts illust) { @@ -85,38 +83,40 @@ class _RecomSpolightPageState extends State { } Widget buildEasyRefresh(BuildContext context) { - return SmartRefresher( - controller: _easyRefreshController, - enablePullDown: true, - enablePullUp: true, - footer: CustomFooter( - builder: (BuildContext context, LoadStatus mode) { - Widget body; - if (mode == LoadStatus.idle) { - body = Text(I18n.of(context).pull_up_to_load_more); - } else if (mode == LoadStatus.loading) { - body = CircularProgressIndicator(); - } else if (mode == LoadStatus.failed) { - body = Text(I18n.of(context).loading_failed_retry_message); - } else if (mode == LoadStatus.canLoading) { - body = Text(I18n.of(context).let_go_and_load_more); - } else { - body = Text(I18n.of(context).no_more_data); - } - return Container( - height: 55.0, - child: Center(child: body), - ); + return Observer(builder: (_) { + return SmartRefresher( + controller: _easyRefreshController, + enablePullDown: true, + enablePullUp: true, + footer: CustomFooter( + builder: (BuildContext context, LoadStatus mode) { + Widget body; + if (mode == LoadStatus.idle) { + body = Text(I18n.of(context).pull_up_to_load_more); + } else if (mode == LoadStatus.loading) { + body = CircularProgressIndicator(); + } else if (mode == LoadStatus.failed) { + body = Text(I18n.of(context).loading_failed_retry_message); + } else if (mode == LoadStatus.canLoading) { + body = Text(I18n.of(context).let_go_and_load_more); + } else { + body = Text(I18n.of(context).no_more_data); + } + return Container( + height: 55.0, + child: Center(child: body), + ); + }, + ), + onRefresh: () { + return fetchT(); }, - ), - onRefresh: () { - return fetchT(); - }, - onLoading: () { - return _lightingStore.fetchNext(); - }, - child: _buildWaterFall(), - ); + onLoading: () { + return _lightingStore.fetchNext(); + }, + child: _buildWaterFall(), + ); + }); } Widget _buildWaterFall() { @@ -141,7 +141,7 @@ class _RecomSpolightPageState extends State { ? SliverWaterfallFlow( gridDelegate: SliverWaterfallFlowDelegateWithFixedCrossAxisCount( - crossAxisCount: 2, + crossAxisCount: userSetting.crossCount, collectGarbage: (List garbages) { garbages.forEach((index) { final provider = ExtendedNetworkImageProvider( @@ -161,21 +161,26 @@ class _RecomSpolightPageState extends State { mainAxisExtent = itemWidth; else mainAxisExtent = itemWidth * radio; - return Container( - child: IllustCard(store: _lightingStore.iStores[index]), + return IllustCard( + store: _lightingStore.iStores[index], + iStores: _lightingStore.iStores, height: mainAxisExtent + 60.0, ); - }), + }, childCount: _lightingStore.iStores.length), + ) + : SliverToBoxAdapter( + child: Container( + height: 30, + ), ) - : [] ], ); } - Widget _buildSpotlightContainer() { return Container( height: 230.0, + padding: EdgeInsets.only(left: 5.0), child: spotlightStore.articles.isNotEmpty ? ListView.builder( shrinkWrap: true, diff --git a/lib/page/painter/painter_list.dart b/lib/page/painter/painter_list.dart index 7c277a235..b890bcc38 100644 --- a/lib/page/painter/painter_list.dart +++ b/lib/page/painter/painter_list.dart @@ -50,7 +50,7 @@ class _PainterListState extends State { _painterListStore.source = widget.futureGet; _easyRefreshController.footerMode?.value = LoadStatus.idle; _painterListStore.fetch(); - if(_painterListStore.users.isNotEmpty) _scrollController?.jumpTo(0.0); + if (_painterListStore.users.isNotEmpty) _scrollController?.jumpTo(0.0); } } @@ -88,11 +88,11 @@ class _PainterListState extends State { }, ), controller: _easyRefreshController, - onLoading: ()=>_painterListStore.next(), - onRefresh: ()=>_painterListStore.fetch(), + onLoading: () => _painterListStore.next(), + onRefresh: () => _painterListStore.fetch(), child: _painterListStore.users.isNotEmpty ? ListView.builder( - controller: _scrollController, + controller: _scrollController, itemBuilder: (context, index) { return PainterCard( user: _painterListStore.users[index], diff --git a/lib/page/picture/illust_about_sliver.dart b/lib/page/picture/illust_about_sliver.dart new file mode 100644 index 000000000..49f90cf4b --- /dev/null +++ b/lib/page/picture/illust_about_sliver.dart @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2020. by perol_notsf, All rights reserved + * + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + * + */ + +import 'package:flutter/material.dart'; +import 'package:flutter_mobx/flutter_mobx.dart'; +import 'package:pixez/page/picture/illust_about_store.dart'; + +class IllustAboutSliver extends StatefulWidget { + final int id; + + const IllustAboutSliver({Key key, this.id}) : super(key: key); + @override + _IllustAboutSliverState createState() => _IllustAboutSliverState(); +} + +class _IllustAboutSliverState extends State { + IllustAboutStore _store; + @override + void initState() { + _store = IllustAboutStore(widget.id)..fetch(); + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Observer(builder: (context) { + if (_store.errorMessage != null) { + return SliverToBoxAdapter( + child: Container( + height: 300, + child: Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text(':(', style: Theme.of(context).textTheme.headline4), + ), + RaisedButton( + onPressed: () { + _store.fetch(); + }, + child: Text('Refresh'), + ) + ], + ), + ), + ); + } + if (_store.illusts.isNotEmpty) + return SliverGrid( + delegate: + SliverChildBuilderDelegate((BuildContext context, int index) { + return Container(); + }, childCount: 1), + gridDelegate: + SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3)); + return SliverToBoxAdapter( + child: Container( + height: 200, + child: Center( + child: CircularProgressIndicator(), + ), + ), + ); + }); + } +} diff --git a/lib/page/picture/illust_page.dart b/lib/page/picture/illust_page.dart index 93d0c413d..d11cf7f58 100644 --- a/lib/page/picture/illust_page.dart +++ b/lib/page/picture/illust_page.dart @@ -31,6 +31,7 @@ import 'package:pixez/models/bookmark_detail.dart'; import 'package:pixez/models/illust.dart'; import 'package:pixez/network/api_client.dart'; import 'package:pixez/page/picture/illust_about_grid.dart'; +import 'package:pixez/page/picture/illust_about_sliver.dart'; import 'package:pixez/page/picture/illust_detail_body.dart'; import 'package:pixez/page/picture/illust_detail_store.dart'; import 'package:pixez/page/picture/illust_store.dart'; @@ -586,6 +587,44 @@ class _IllustPageState extends State { }); } + List buildPage(BuildContext context, Illusts data) { + if (data.pageCount == 1) { + return [_inkWellPic(context, data, 0)]; + } else { + List result = []; + for (var i = 0; i < data.metaPages.length; i++) { + result.add(_inkWellPic(context, data, i)); + } + return result; + } + } + + Widget _buildSliver(BuildContext context, Illusts data) { + return CustomScrollView( + slivers: [ + SliverList( + delegate: SliverChildListDelegate([ + ...(data.type == "ugoira") + ? [ + UgoiraLoader( + id: widget.id, + illusts: data, + ) + ] + : buildPage(context, data) + ])), + SliverToBoxAdapter( + child: IllustDetailBody( + illust: data, + ), + ), + IllustAboutSliver( + id: data.id, + ) + ], + ); + } + Widget _buildBody(BuildContext context, Illusts data) { return ScrollablePositionedList.builder( itemCount: data.pageCount + 4, @@ -802,7 +841,7 @@ class _IllustPageState extends State { data.imageUrls.medium, placeWidget: Container( height: 150, - child: CircularProgressIndicator(), + child: Center(child: CircularProgressIndicator()), ), fade: false, ), @@ -815,6 +854,10 @@ class _IllustPageState extends State { child: PixivImage( data.imageUrls.medium, fade: false, + placeWidget: Container( + height: 150, + child: Center(child: CircularProgressIndicator()), + ), ), tag: '${data.imageUrls.medium}${widget.heroString}', ) diff --git a/lib/page/search/result_page.dart b/lib/page/search/result_page.dart index eb498bcc5..950b35b6b 100644 --- a/lib/page/search/result_page.dart +++ b/lib/page/search/result_page.dart @@ -45,14 +45,17 @@ class _ResultPageState extends State { length: 2, child: Scaffold( appBar: AppBar( - title: TabBar(tabs: [ - Tab( - text: I18n.of(context).illust, - ), - Tab( - text: I18n.of(context).painter, - ), - ]), + title: TabBar( + indicatorSize: TabBarIndicatorSize.label, + indicatorColor: Theme.of(context).cardColor, + tabs: [ + Tab( + text: I18n.of(context).illust, + ), + Tab( + text: I18n.of(context).painter, + ), + ]), ), body: TabBarView(children: [ ResultIllustList(word: widget.word), diff --git a/lib/page/spotlight/spotlight_page.dart b/lib/page/spotlight/spotlight_page.dart index 9c6f09109..7930c5150 100644 --- a/lib/page/spotlight/spotlight_page.dart +++ b/lib/page/spotlight/spotlight_page.dart @@ -20,6 +20,7 @@ import 'package:pixez/component/spotlight_card.dart'; import 'package:pixez/generated/l10n.dart'; import 'package:pixez/page/hello/recom/spotlight_store.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; +import 'package:waterfall_flow/waterfall_flow.dart'; class SpotLightPage extends StatelessWidget { @override @@ -48,10 +49,9 @@ class SpotLightPage extends StatelessWidget { enablePullDown: true, enablePullUp: true, controller: _refreshController, - child: GridView.builder( - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 3, - ), + child: WaterfallFlow.builder( + gridDelegate: SliverWaterfallFlowDelegateWithFixedCrossAxisCount( + crossAxisCount: 2), controller: _controller, itemBuilder: (BuildContext context, int index) { return SpotlightCard( diff --git a/lib/page/theme/theme_page.dart b/lib/page/theme/theme_page.dart index e0af434d8..1e625f039 100644 --- a/lib/page/theme/theme_page.dart +++ b/lib/page/theme/theme_page.dart @@ -37,7 +37,7 @@ class ColorPickPage extends HookWidget { final pickerColor = useState(initialColor); return Scaffold( appBar: AppBar( - title: Text('Pick a color'), + title: Text(I18n.of(context).pick_a_color), actions: [ IconButton( icon: Icon(Icons.edit), diff --git a/lib/page/user/bookmark/bookmark_page.dart b/lib/page/user/bookmark/bookmark_page.dart index 5415db802..af3ea4d89 100644 --- a/lib/page/user/bookmark/bookmark_page.dart +++ b/lib/page/user/bookmark/bookmark_page.dart @@ -56,7 +56,6 @@ class _BookmarkPageState extends State { if (int.parse(accountStore.now.userId) == widget.id) { return LightingList( source: futureGet, - isNested: widget.isNested ?? false, header: Container( child: Row( mainAxisAlignment: MainAxisAlignment.end, diff --git a/lib/page/user/bookmark/tag/user_bookmark_tag_page.dart b/lib/page/user/bookmark/tag/user_bookmark_tag_page.dart index 74c8b70b9..234009647 100644 --- a/lib/page/user/bookmark/tag/user_bookmark_tag_page.dart +++ b/lib/page/user/bookmark/tag/user_bookmark_tag_page.dart @@ -46,7 +46,7 @@ class _UserBookmarkTagPageState extends State Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('Tag'), + title: Text(I18n.of(context).tag), bottom: TabBar( controller: _tabController, tabs: [ diff --git a/lib/page/user/works/works_page.dart b/lib/page/user/works/works_page.dart index a68368209..105299fb8 100644 --- a/lib/page/user/works/works_page.dart +++ b/lib/page/user/works/works_page.dart @@ -49,8 +49,8 @@ class _WorksPageState extends State { _buildHeader(), Expanded( child: LightingList( + isNested: true, source: futureGet, - isNested: true, ), ) ], diff --git a/pubspec.lock b/pubspec.lock index 47716c85c..87a273f61 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -56,7 +56,7 @@ packages: name: bot_toast url: "https://pub.flutter-io.cn" source: hosted - version: "3.0.1" + version: "3.0.2+1" build: dependency: transitive description: @@ -406,20 +406,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "0.16.1" - intl_translation: - dependency: transitive - description: - name: intl_translation - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.17.10" - intl_utils: - dependency: "direct main" - description: - name: intl_utils - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.6.3" io: dependency: transitive description: @@ -588,13 +574,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "2.0.1" - petitparser: - dependency: transitive - description: - name: petitparser - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.4" photo_view: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 627d82eb5..70dbf171e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -32,7 +32,7 @@ dependencies: save_in_gallery: ^0.1.3 archive: ^2.0.13 url_launcher: ^5.5.0 - bot_toast: ^3.0.0 + bot_toast: ^3.0.2+1 package_info: ^0.4.1 json_serializable: ^3.3.0 uni_links: ^0.4.0 @@ -56,7 +56,6 @@ dependencies: pull_to_refresh: ^1.6.1 extended_image: ^1.1.0 flutter_colorpicker: ^0.3.4 - intl_utils: ^1.6.3 waterfall_flow: ^2.0.2