git@h5.yoqi.me 1 year ago
parent
commit
949cefd8f7

File diff suppressed because it is too large
+ 0 - 0
.flutter-plugins-dependencies


+ 2 - 2
ios/Flutter/flutter_export_environment.sh

@@ -1,7 +1,7 @@
 #!/bin/sh
 # This is a generated file; do not edit or check into version control.
-export "FLUTTER_ROOT=/home/gitpod/flutter"
-export "FLUTTER_APPLICATION_PATH=/workspace/Leuke/1/FlutterOSC"
+export "FLUTTER_ROOT=/home/lyq/flutter"
+export "FLUTTER_APPLICATION_PATH=/home/lyq/workspaces/FlutterOSC"
 export "COCOAPODS_PARALLEL_CODE_SIGN=true"
 export "FLUTTER_TARGET=lib/main.dart"
 export "FLUTTER_BUILD_DIR=build"

+ 1 - 1
lib/main.dart

@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
 import 'pages/NewsListPage.dart';
 import 'pages/TweetsListPage.dart';
 import 'pages/DiscoveryPage.dart';
-import 'pages/MyInfoPage.dart';
+import 'pages/my_info_page.dart';
 import './widgets/MyDrawer.dart';
 
 void main() {

+ 0 - 0
lib/api/Api.dart → lib/model/api.dart


+ 0 - 0
lib/constants/Constants.dart → lib/model/constants.dart


+ 0 - 0
lib/model/UserInfo.dart → lib/model/user_info.dart


+ 1 - 1
lib/pages/DiscoveryPage.dart

@@ -1,6 +1,6 @@
 import 'package:flutter/material.dart';
 import 'dart:async';
-import 'OfflineActivityPage.dart';
+import 'offline_activity_page.dart';
 import 'CommonWebPage.dart';
 import 'package:barcode_scan/barcode_scan.dart';
 

+ 7 - 6
lib/pages/NewsListPage.dart

@@ -1,12 +1,13 @@
 import 'dart:async';
 import 'package:flutter/material.dart';
-import '../util/NetUtils.dart';
-import '../api/Api.dart';
+import 'package:flutter_osc/model/api.dart';
 import 'dart:convert';
-import '../constants/Constants.dart';
-import '../widgets/SlideView.dart';
-import '../pages/NewsDetailPage.dart';
-import '../widgets/CommonEndLine.dart';
+
+import 'package:flutter_osc/model/constants.dart';
+import 'package:flutter_osc/pages/news_detail_page.dart';
+import 'package:flutter_osc/util/NetUtils.dart';
+import 'package:flutter_osc/widgets/CommonEndLine.dart';
+import 'package:flutter_osc/widgets/SlideView.dart';
 
 class NewsListPage extends StatefulWidget {
   @override

+ 2 - 2
lib/pages/PublishTweetPage.dart

@@ -3,9 +3,9 @@ import 'dart:convert';
 import 'dart:io';
 import 'package:async/async.dart';
 import 'package:flutter/material.dart';
+import 'package:flutter_osc/model/api.dart';
+import 'package:flutter_osc/util/DataUtils.dart';
 import 'package:http/http.dart' as http;
-import '../api/Api.dart';
-import '../util/DataUtils.dart';
 import 'package:image_picker/image_picker.dart';
 
 class PublishTweetPage extends StatefulWidget {

+ 8 - 6
lib/pages/TweetDetailPage.dart

@@ -1,10 +1,12 @@
 import 'package:flutter/material.dart';
-import '../util/NetUtils.dart';
-import '../api/Api.dart';
-import '../constants/Constants.dart';
+import 'package:flutter_osc/model/api.dart';
+import 'package:flutter_osc/model/constants.dart';
 import 'dart:convert';
-import '../widgets/CommonEndLine.dart';
-import '../util/DataUtils.dart';
+
+import 'package:flutter_osc/util/DataUtils.dart';
+import 'package:flutter_osc/util/NetUtils.dart';
+import 'package:flutter_osc/widgets/CommonEndLine.dart';
+
 
 // 动弹详情
 
@@ -357,7 +359,7 @@ class TweetDetailPageState extends State<TweetDetailPage> {
     if (imgSmall != null && imgSmall.length > 0) {
       // 动弹中有图片
       List<String> list = imgSmall.split(",");
-      List<String> imgUrlList = List<String>();
+      List<String> imgUrlList = <String>[];
       for (String s in list) {
         if (s.startsWith("http")) {
           imgUrlList.add(s);

+ 7 - 8
lib/pages/TweetsListPage.dart

@@ -1,13 +1,12 @@
 import 'package:flutter/material.dart';
-import 'package:flutter_osc/constants/Constants.dart';
+import 'package:flutter_osc/model/constants.dart';
 import 'package:flutter_osc/events/LoginEvent.dart';
-import 'package:flutter_osc/events/LogoutEvent.dart';
 import 'package:flutter_osc/util/Utf8Utils.dart';
 import '../util/BlackListUtils.dart';
-import '../api/Api.dart';
+import '../model/api.dart';
 import '../util/NetUtils.dart';
 import '../pages/TweetDetailPage.dart';
-import 'LoginPage.dart';
+import 'login_page.dart';
 import 'dart:convert';
 import 'dart:async';
 import '../util/DataUtils.dart';
@@ -228,7 +227,7 @@ class TweetsListPageState extends State<TweetsListPage> {
     if (imgSmall != null && imgSmall.length > 0) {
       // 动弹中有图片
       List<String> list = imgSmall.split(",");
-      List<String> imgUrlList = List<String>();
+      List<String> imgUrlList = <String>[];
       for (String s in list) {
         if (s.startsWith("http")) {
           imgUrlList.add(s);
@@ -291,7 +290,7 @@ class TweetsListPageState extends State<TweetsListPage> {
               title: Text('提示'),
               content: Text('要把\"${listItem['author']}\"关进小黑屋吗?'),
               actions: <Widget>[
-                FlatButton(
+                  TextButton(
                   child: Text(
                     '取消',
                     style: TextStyle(color: Colors.red),
@@ -300,7 +299,7 @@ class TweetsListPageState extends State<TweetsListPage> {
                     Navigator.of(context).pop();
                   },
                 ),
-                FlatButton(
+                  TextButton(
                   child: Text(
                     '确定',
                     style: TextStyle(color: Colors.blue),
@@ -363,7 +362,7 @@ class TweetsListPageState extends State<TweetsListPage> {
           title: Text('提示'),
           content: Text(msg),
           actions: <Widget>[
-            FlatButton(
+              TextButton(
               child: Text(
                 '确定',
                 style: TextStyle(color: Colors.red),

+ 0 - 0
lib/pages/AboutPage.dart → lib/pages/about_page.dart


+ 50 - 55
lib/pages/BlackHousePage.dart → lib/pages/black_house_page.dart

@@ -1,14 +1,15 @@
+import 'dart:convert';
+
 import 'package:flutter/material.dart';
-import 'package:flutter_osc/constants/Constants.dart';
+import 'package:flutter_osc/model/api.dart';
+import 'package:flutter_osc/model/constants.dart';
 import 'package:flutter_osc/events/LoginEvent.dart';
+import 'package:flutter_osc/pages/login_page.dart';
 import 'package:flutter_osc/util/BlackListUtils.dart';
+import 'package:flutter_osc/util/DataUtils.dart';
+import 'package:flutter_osc/util/NetUtils.dart';
+import 'package:flutter_osc/util/Utf8Utils.dart';
 import 'package:shared_preferences/shared_preferences.dart';
-import '../util/NetUtils.dart';
-import '../api/Api.dart';
-import 'dart:convert';
-import '../pages/LoginPage.dart';
-import '../util/DataUtils.dart';
-import '../util/Utf8Utils.dart';
 
 class BlackHousePage extends StatefulWidget {
   @override
@@ -95,48 +96,47 @@ class BlackHousePageState extends State<BlackHousePage> {
 
   showResultDialog(String msg) {
     showDialog(
-      context: context,
-      builder: (ctx) {
-        return AlertDialog(
-          title: Text('提示'),
-          content: Text(msg),
-          actions: <Widget>[
-            FlatButton(
-              child: Text(
-                '确定',
-                style: TextStyle(color: Colors.red),
-              ),
-              onPressed: () {
-                Navigator.of(context).pop();
-              },
-            )
-          ],
-        );
-      }
-    );
+        context: context,
+        builder: (ctx) {
+          return AlertDialog(
+            title: Text('提示'),
+            content: Text(msg),
+            actions: <Widget>[
+              TextButton(
+                child: Text(
+                  '确定',
+                  style: TextStyle(color: Colors.red),
+                ),
+                onPressed: () {
+                  Navigator.of(context).pop();
+                },
+              )
+            ],
+          );
+        });
   }
 
   showSetFreeDialog(item) {
     String name = Utf8Utils.decode(item['authorname']);
     showDialog(
-      context: context,
-      builder: (BuildContext ctx) {
-        return AlertDialog(
-          title: Text('提示'),
-          content: Text('确定要把\"$name\"放出小黑屋吗?'),
-          actions: <Widget>[
-            FlatButton(
-              child: Text(
-                '确定',
-                style: TextStyle(color: Colors.red),
-              ),
-              onPressed: () {
-                deleteFromBlack(item['authorid']);
-              },
-            )
-          ],
-        );
-      });
+        context: context,
+        builder: (BuildContext ctx) {
+          return AlertDialog(
+            title: Text('提示'),
+            content: Text('确定要把\"$name\"放出小黑屋吗?'),
+            actions: <Widget>[
+              TextButton(
+                child: Text(
+                  '确定',
+                  style: TextStyle(color: Colors.red),
+                ),
+                onPressed: () {
+                  deleteFromBlack(item['authorid']);
+                },
+              )
+            ],
+          );
+        });
   }
 
   Widget getBody() {
@@ -148,11 +148,11 @@ class BlackHousePageState extends State<BlackHousePage> {
             child: Text("去登录"),
             decoration: BoxDecoration(
                 border: Border.all(color: Colors.black),
-                borderRadius: BorderRadius.all(Radius.circular(5.0))
-            ),
+                borderRadius: BorderRadius.all(Radius.circular(5.0))),
           ),
           onTap: () async {
-            final result = await Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) {
+            final result = await Navigator.of(context)
+                .push(MaterialPageRoute(builder: (BuildContext context) {
               return LoginPage();
             }));
             if (result != null && result == "refresh") {
@@ -172,10 +172,7 @@ class BlackHousePageState extends State<BlackHousePage> {
       return Center(
         child: Column(
           mainAxisAlignment: MainAxisAlignment.center,
-          children: [
-            Text("小黑屋中没人..."),
-            Text("长按动弹列表即可往小黑屋中加人")
-          ],
+          children: [Text("小黑屋中没人..."), Text("长按动弹列表即可往小黑屋中加人")],
         ),
       );
     }
@@ -207,8 +204,7 @@ class BlackHousePageState extends State<BlackHousePage> {
               ),
               Container(
                 margin: const EdgeInsets.fromLTRB(0.0, 5.0, 0.0, 5.0),
-                child:
-                    Text(name, style: TextStyle(color: Colors.white)),
+                child: Text(name, style: TextStyle(color: Colors.white)),
               ),
               InkWell(
                 child: Container(
@@ -219,8 +215,7 @@ class BlackHousePageState extends State<BlackHousePage> {
                   ),
                   decoration: BoxDecoration(
                       border: Border.all(color: Colors.white),
-                      borderRadius:
-                          BorderRadius.all(Radius.circular(5.0))),
+                      borderRadius: BorderRadius.all(Radius.circular(5.0))),
                 ),
                 onTap: () {
                   showSetFreeDialog(blackDataList[index]);

+ 1 - 1
lib/pages/LoginPage.dart → lib/pages/login_page.dart

@@ -1,6 +1,6 @@
 import 'dart:async';
 import 'package:flutter/material.dart';
-import '../constants/Constants.dart';
+import '../model/constants.dart';
 import 'package:flutter/cupertino.dart';
 import 'dart:convert';
 import '../util/DataUtils.dart';

+ 17 - 22
lib/pages/MyInfoPage.dart → lib/pages/my_info_page.dart

@@ -1,14 +1,14 @@
 import 'package:flutter/material.dart';
-import 'package:flutter_osc/constants/Constants.dart';
+import 'package:flutter_osc/model/api.dart';
+import 'package:flutter_osc/model/constants.dart';
 import 'package:flutter_osc/events/LoginEvent.dart';
-import '../pages/CommonWebPage.dart';
-import '../pages/LoginPage.dart';
+import 'package:flutter_osc/model/user_info.dart';
+import 'package:flutter_osc/pages/CommonWebPage.dart';
+import 'package:flutter_osc/pages/login_page.dart';
+import 'package:flutter_osc/util/DataUtils.dart';
+import 'package:flutter_osc/util/NetUtils.dart';
 import 'dart:convert';
 import 'package:shared_preferences/shared_preferences.dart';
-import '../api/Api.dart';
-import '../util/NetUtils.dart';
-import '../util/DataUtils.dart';
-import '../model/UserInfo.dart';
 
 class MyInfoPage extends StatefulWidget {
   @override
@@ -82,8 +82,8 @@ class MyInfoPageState extends State<MyInfoPage> {
   Widget getIconImage(path) {
     return Padding(
       padding: const EdgeInsets.fromLTRB(0.0, 0.0, 10.0, 0.0),
-      child: Image.asset(path,
-          width: IMAGE_ICON_WIDTH, height: IMAGE_ICON_WIDTH),
+      child:
+          Image.asset(path, width: IMAGE_ICON_WIDTH, height: IMAGE_ICON_WIDTH),
     );
   }
 
@@ -115,9 +115,8 @@ class MyInfoPageState extends State<MyInfoPage> {
   }
 
   _login() async {
-    final result = await Navigator
-        .of(context)
-        .push(MaterialPageRoute(builder: (context) {
+    final result =
+        await Navigator.of(context).push(MaterialPageRoute(builder: (context) {
       return LoginPage();
     }));
     if (result != null && result == "refresh") {
@@ -151,8 +150,7 @@ class MyInfoPageState extends State<MyInfoPage> {
                         shape: BoxShape.circle,
                         color: Colors.transparent,
                         image: DecorationImage(
-                            image: NetworkImage(userAvatar),
-                            fit: BoxFit.cover),
+                            image: NetworkImage(userAvatar), fit: BoxFit.cover),
                         border: Border.all(
                           color: Colors.white,
                           width: 2.0,
@@ -223,7 +221,7 @@ class MyInfoPageState extends State<MyInfoPage> {
             title: Text('提示'),
             content: Text('没有登录,现在去登录吗?'),
             actions: <Widget>[
-              FlatButton(
+              TextButton(
                 child: Text(
                   '取消',
                   style: TextStyle(color: Colors.red),
@@ -232,7 +230,7 @@ class MyInfoPageState extends State<MyInfoPage> {
                   Navigator.of(context).pop();
                 },
               ),
-              FlatButton(
+              TextButton(
                 child: Text(
                   '确定',
                   style: TextStyle(color: Colors.blue),
@@ -254,13 +252,10 @@ class MyInfoPageState extends State<MyInfoPage> {
         _showLoginDialog();
       } else {
         DataUtils.getUserInfo().then((info) {
-          Navigator.of(context).push(
-            MaterialPageRoute(
+          Navigator.of(context).push(MaterialPageRoute(
               builder: (context) => CommonWebPage(
-                title: "我的博客",
-                url: "https://my.oschina.net/u/${info.id}/blog"
-              )
-            ));
+                  title: "我的博客",
+                  url: "https://my.oschina.net/u/${info.id}/blog")));
         });
       }
     });

+ 0 - 0
lib/pages/NewsDetailPage.dart → lib/pages/news_detail_page.dart


+ 1 - 1
lib/pages/OfflineActivityPage.dart → lib/pages/offline_activity_page.dart

@@ -1,7 +1,7 @@
 import 'dart:convert';
 import 'package:flutter/material.dart';
 import '../util/NetUtils.dart';
-import '../api/Api.dart';
+import '../model/api.dart';
 import '../pages/CommonWebPage.dart';
 
 // 线下活动

+ 7 - 7
lib/pages/SettingsPage.dart → lib/pages/setting_page.dart

@@ -1,9 +1,9 @@
 import 'package:flutter/material.dart';
-import 'package:flutter_osc/constants/Constants.dart';
+import 'package:flutter_osc/model/constants.dart';
 import 'package:flutter_osc/events/LogoutEvent.dart';
 import '../util/DataUtils.dart';
 
-class SettingsPage extends StatelessWidget {
+class SettingPage extends StatelessWidget {
   static const String TAG_START = "startDivider";
   static const String TAG_END = "endDivider";
   static const String TAG_CENTER = "centerDivider";
@@ -21,19 +21,19 @@ class SettingsPage extends StatelessWidget {
 
   List listData = [];
 
-  SettingsPage() {
+  SettingPage() {
     listData.add(TAG_BLANK);
     listData.add(TAG_START);
-    listData.add(
-        ListItem(title: '退出登录', icon: 'images/ic_discover_nearby.png'));
+    listData
+        .add(ListItem(title: '退出登录', icon: 'images/ic_discover_nearby.png'));
     listData.add(TAG_END);
   }
 
   Widget getIconImage(path) {
     return Padding(
       padding: const EdgeInsets.fromLTRB(0.0, 0.0, 10.0, 0.0),
-      child: Image.asset(path,
-          width: IMAGE_ICON_WIDTH, height: IMAGE_ICON_WIDTH),
+      child:
+          Image.asset(path, width: IMAGE_ICON_WIDTH, height: IMAGE_ICON_WIDTH),
     );
   }
 

+ 1 - 1
lib/util/BlackListUtils.dart

@@ -9,7 +9,7 @@ class BlackListUtils {
   // 将对象数组转化为整型数组
   static List<int> convert(List objList) {
     if (objList == null || objList.isEmpty) {
-      return List<int>();
+      return <int>[];
     }
     List<int> intList = [];
     for (var obj in objList) {

+ 1 - 1
lib/util/DataUtils.dart

@@ -1,6 +1,6 @@
+import 'package:flutter_osc/model/user_info.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 import 'dart:async';
-import '../model/UserInfo.dart';
 
 class DataUtils {
   static final String SP_AC_TOKEN = "accessToken";

+ 0 - 1
lib/widgets/CircleImage.dart

@@ -1,4 +1,3 @@
-import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 
 enum CircleImageType {network, asset}

+ 4 - 4
lib/widgets/MyDrawer.dart

@@ -1,9 +1,9 @@
 
 import 'package:flutter/material.dart';
-import '../pages/AboutPage.dart';
-import '../pages/BlackHousePage.dart';
+import '../pages/about_page.dart';
+import '../pages/black_house_page.dart';
 import '../pages/PublishTweetPage.dart';
-import '../pages/SettingsPage.dart';
+import '../pages/setting_page.dart';
 
 class MyDrawer extends StatelessWidget {
 
@@ -104,7 +104,7 @@ class MyDrawer extends StatelessWidget {
             // 设置
             Navigator.of(context).push(MaterialPageRoute(
                 builder: (ctx) {
-                  return SettingsPage();
+              return SettingPage();
                 }
             ));
             break;

+ 1 - 1
lib/widgets/SlideView.dart

@@ -1,5 +1,5 @@
 import 'package:flutter/material.dart';
-import '../pages/NewsDetailPage.dart';
+import '../pages/news_detail_page.dart';
 
 class SlideView extends StatefulWidget {
   var data;

+ 48 - 48
pubspec.lock

@@ -5,91 +5,91 @@ packages:
     dependency: transitive
     description:
       name: async
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.8.2"
   barcode_scan:
     dependency: "direct main"
     description:
       name: barcode_scan
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.0.1"
   boolean_selector:
     dependency: transitive
     description:
       name: boolean_selector
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.0"
   characters:
     dependency: transitive
     description:
       name: characters
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.2.0"
   charcode:
     dependency: transitive
     description:
       name: charcode
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.3.1"
   clock:
     dependency: transitive
     description:
       name: clock
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.1.0"
   collection:
     dependency: transitive
     description:
       name: collection
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.15.0"
   cupertino_icons:
     dependency: "direct main"
     description:
       name: cupertino_icons
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.0.5"
   event_bus:
     dependency: "direct main"
     description:
       name: event_bus
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.1.1"
   fake_async:
     dependency: transitive
     description:
       name: fake_async
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.2.0"
   ffi:
     dependency: transitive
     description:
       name: ffi
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.2.1"
   file:
     dependency: transitive
     description:
       name: file
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "6.1.2"
   fixnum:
     dependency: transitive
     description:
       name: fixnum
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.10.11"
   flutter:
@@ -111,175 +111,175 @@ packages:
     dependency: "direct main"
     description:
       name: flutter_webview_plugin
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.4.0"
   http:
     dependency: "direct main"
     description:
       name: http
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.12.2"
   http_parser:
     dependency: transitive
     description:
       name: http_parser
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.1.4"
   image_picker:
     dependency: "direct main"
     description:
       name: image_picker
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.4.12+1"
   js:
     dependency: transitive
     description:
       name: js
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.6.3"
   matcher:
     dependency: transitive
     description:
       name: matcher
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.12.11"
   material_color_utilities:
     dependency: transitive
     description:
       name: material_color_utilities
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.1.3"
   meta:
     dependency: transitive
     description:
       name: meta
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.7.0"
   path:
     dependency: transitive
     description:
       name: path
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.8.0"
   path_provider_linux:
     dependency: transitive
     description:
       name: path_provider_linux
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.7"
   path_provider_platform_interface:
     dependency: transitive
     description:
       name: path_provider_platform_interface
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.4"
   path_provider_windows:
     dependency: transitive
     description:
       name: path_provider_windows
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.7"
   pedantic:
     dependency: transitive
     description:
       name: pedantic
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.11.1"
   platform:
     dependency: transitive
     description:
       name: platform
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.1.0"
   plugin_platform_interface:
     dependency: transitive
     description:
       name: plugin_platform_interface
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.2"
   process:
     dependency: transitive
     description:
       name: process
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "4.2.4"
   protobuf:
     dependency: transitive
     description:
       name: protobuf
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.1.4"
   shared_preferences:
     dependency: "direct main"
     description:
       name: shared_preferences
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.15"
   shared_preferences_android:
     dependency: transitive
     description:
       name: shared_preferences_android
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.12"
   shared_preferences_ios:
     dependency: transitive
     description:
       name: shared_preferences_ios
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.1"
   shared_preferences_linux:
     dependency: transitive
     description:
       name: shared_preferences_linux
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.1"
   shared_preferences_macos:
     dependency: transitive
     description:
       name: shared_preferences_macos
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.4"
   shared_preferences_platform_interface:
     dependency: transitive
     description:
       name: shared_preferences_platform_interface
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.0"
   shared_preferences_web:
     dependency: transitive
     description:
       name: shared_preferences_web
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.4"
   shared_preferences_windows:
     dependency: transitive
     description:
       name: shared_preferences_windows
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.1"
   sky_engine:
@@ -291,70 +291,70 @@ packages:
     dependency: transitive
     description:
       name: source_span
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.8.1"
   stack_trace:
     dependency: transitive
     description:
       name: stack_trace
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.10.0"
   stream_channel:
     dependency: transitive
     description:
       name: stream_channel
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.0"
   string_scanner:
     dependency: transitive
     description:
       name: string_scanner
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.1.0"
   term_glyph:
     dependency: transitive
     description:
       name: term_glyph
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.2.0"
   test_api:
     dependency: transitive
     description:
       name: test_api
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.4.8"
   typed_data:
     dependency: transitive
     description:
       name: typed_data
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.3.0"
   vector_math:
     dependency: transitive
     description:
       name: vector_math
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.1"
   win32:
     dependency: transitive
     description:
       name: win32
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.5.2"
   xdg_directories:
     dependency: transitive
     description:
       name: xdg_directories
-      url: "https://pub.dartlang.org"
+      url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.2.0+1"
 sdks:

Some files were not shown because too many files changed in this diff