update
This commit is contained in:
@@ -1,16 +1,22 @@
|
|||||||
import 'package:chat/utils/network/http.dart';
|
import 'package:chat/utils/network/http.dart';
|
||||||
import 'package:chat/utils/ui_tools.dart';
|
import 'package:chat/utils/ui_tools.dart';
|
||||||
|
import 'package:package_info_plus/package_info_plus.dart';
|
||||||
|
|
||||||
class PublicProvider {
|
class PublicProvider {
|
||||||
/// 检测更新
|
/// 检测更新
|
||||||
static Future checkUpgrade() async {
|
static Future checkUpgrade(PackageInfo? packageInfo) async {
|
||||||
try {
|
try {
|
||||||
return await Http.get(
|
if (packageInfo == null) {
|
||||||
'version/check',
|
return null;
|
||||||
params: {
|
} else {
|
||||||
'version': '',
|
return await Http.get(
|
||||||
},
|
'version/check',
|
||||||
);
|
params: {
|
||||||
|
'package_name': packageInfo.packageName,
|
||||||
|
'version': packageInfo.version,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
UiTools.toast(e.toString());
|
UiTools.toast(e.toString());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:chat/views/home/index_page.dart';
|
import 'package:chat/views/home/index_page.dart';
|
||||||
import 'package:chat/views/public/app_page.dart';
|
import 'package:chat/views/public/app_page.dart';
|
||||||
import 'package:chat/views/public/scan_page.dart';
|
import 'package:chat/views/public/result_page.dart';
|
||||||
|
import 'package:chat/views/public/scan/index_page.dart';
|
||||||
import 'package:chat/views/public/transit_page.dart';
|
import 'package:chat/views/public/transit_page.dart';
|
||||||
import 'package:chat/views/search/index_page.dart';
|
import 'package:chat/views/search/index_page.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
@@ -12,6 +13,7 @@ abstract class AppRoutes {
|
|||||||
static const String transit = '/transit';
|
static const String transit = '/transit';
|
||||||
static const String notfound = '/notfound';
|
static const String notfound = '/notfound';
|
||||||
static const String scan = '/scan';
|
static const String scan = '/scan';
|
||||||
|
static const String scanResult = '/scan/result';
|
||||||
|
|
||||||
static const String home = '/home';
|
static const String home = '/home';
|
||||||
static const String search = '/search';
|
static const String search = '/search';
|
||||||
@@ -27,6 +29,12 @@ abstract class AppRoutes {
|
|||||||
GetPage(
|
GetPage(
|
||||||
name: AppRoutes.scan,
|
name: AppRoutes.scan,
|
||||||
page: () => const ScanPage(),
|
page: () => const ScanPage(),
|
||||||
|
children: [
|
||||||
|
GetPage(
|
||||||
|
name: '/result',
|
||||||
|
page: () => const ScanResultPage(),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
GetPage(
|
GetPage(
|
||||||
name: AppRoutes.home,
|
name: AppRoutes.home,
|
||||||
|
|||||||
48
lib/views/public/result_page.dart
Normal file
48
lib/views/public/result_page.dart
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
import 'package:chat/configs/app_colors.dart';
|
||||||
|
import 'package:chat/utils/ui_tools.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
|
class ScanResultPage extends StatelessWidget {
|
||||||
|
const ScanResultPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
String content = Get.arguments;
|
||||||
|
return Scaffold(
|
||||||
|
backgroundColor: AppColors.white,
|
||||||
|
appBar: AppBar(
|
||||||
|
title: const Text('扫码结果'),
|
||||||
|
actions: [
|
||||||
|
TextButton(
|
||||||
|
onPressed: () {
|
||||||
|
Clipboard.setData(
|
||||||
|
ClipboardData(
|
||||||
|
text: content,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
UiTools.toast('复制成功');
|
||||||
|
},
|
||||||
|
child: const Text('复制结果'),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
body: ListView(
|
||||||
|
padding: const EdgeInsets.symmetric(
|
||||||
|
horizontal: 16,
|
||||||
|
vertical: 8,
|
||||||
|
),
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
content,
|
||||||
|
style: const TextStyle(
|
||||||
|
height: 1.5,
|
||||||
|
fontSize: 16,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:chat/configs/app_colors.dart';
|
import 'package:chat/configs/app_colors.dart';
|
||||||
|
import 'package:chat/routes/app_routes.dart';
|
||||||
import 'package:chat/routes/user_routes.dart';
|
import 'package:chat/routes/user_routes.dart';
|
||||||
import 'package:chat/utils/ui_tools.dart';
|
import 'package:chat/utils/ui_tools.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -24,17 +25,16 @@ class _ScanPageState extends State<ScanPage> {
|
|||||||
|
|
||||||
switch (split.first) {
|
switch (split.first) {
|
||||||
case 'TRANSFER':
|
case 'TRANSFER':
|
||||||
// 处理扫码转账
|
|
||||||
Get.back(result: split.last);
|
|
||||||
break;
|
break;
|
||||||
case 'BEFRIEND':
|
case 'BEFRIEND':
|
||||||
// 加好友
|
|
||||||
break;
|
break;
|
||||||
case 'JOINGROUP':
|
case 'JOINGROUP':
|
||||||
// 加群
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
UiTools.toast(str);
|
Get.offNamed(
|
||||||
|
AppRoutes.scanResult,
|
||||||
|
arguments: str,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import 'package:chat/configs/app_colors.dart';
|
import 'package:chat/configs/app_colors.dart';
|
||||||
import 'package:chat/services/auth_service.dart';
|
import 'package:chat/services/auth_service.dart';
|
||||||
import 'package:chat/views/home/widgets/pop_menu_item.dart';
|
import 'package:chat/views/home/widgets/pop_menu_item.dart';
|
||||||
import 'package:chat/views/public/scan_page.dart';
|
import 'package:chat/views/public/scan/index_page.dart';
|
||||||
import 'package:chat/widgets/custom_avatar.dart';
|
import 'package:chat/widgets/custom_avatar.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
import 'package:adaptive_dialog/adaptive_dialog.dart';
|
import 'package:adaptive_dialog/adaptive_dialog.dart';
|
||||||
import 'package:chat/configs/app_colors.dart';
|
import 'package:chat/configs/app_colors.dart';
|
||||||
|
import 'package:chat/providers/public_provider.dart';
|
||||||
import 'package:chat/routes/user_routes.dart';
|
import 'package:chat/routes/user_routes.dart';
|
||||||
import 'package:chat/services/auth_service.dart';
|
import 'package:chat/services/auth_service.dart';
|
||||||
import 'package:chat/views/home/widgets/action_button.dart';
|
import 'package:chat/views/home/widgets/action_button.dart';
|
||||||
import 'package:chat/views/home/widgets/action_item.dart';
|
import 'package:chat/views/home/widgets/action_item.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:package_info_plus/package_info_plus.dart';
|
||||||
|
|
||||||
class UserSettingPage extends StatefulWidget {
|
class UserSettingPage extends StatefulWidget {
|
||||||
const UserSettingPage({Key? key}) : super(key: key);
|
const UserSettingPage({Key? key}) : super(key: key);
|
||||||
@@ -15,6 +17,18 @@ class UserSettingPage extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _UserSettingPageState extends State<UserSettingPage> {
|
class _UserSettingPageState extends State<UserSettingPage> {
|
||||||
|
PackageInfo? packageInfo;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
PackageInfo.fromPlatform().then((value) {
|
||||||
|
setState(() {
|
||||||
|
packageInfo = value;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
@@ -63,10 +77,12 @@ class _UserSettingPageState extends State<UserSettingPage> {
|
|||||||
const SizedBox(height: 8),
|
const SizedBox(height: 8),
|
||||||
ActionItem(
|
ActionItem(
|
||||||
'版本更新',
|
'版本更新',
|
||||||
extend: '1.0.0',
|
extend: packageInfo?.version,
|
||||||
isFirst: true,
|
isFirst: true,
|
||||||
isLast: true,
|
isLast: true,
|
||||||
onTap: () {},
|
onTap: () async {
|
||||||
|
PublicProvider.checkUpgrade(packageInfo);
|
||||||
|
},
|
||||||
),
|
),
|
||||||
const SizedBox(height: 8),
|
const SizedBox(height: 8),
|
||||||
ActionButton(
|
ActionButton(
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import 'package:chat/configs/app_colors.dart';
|
||||||
import 'package:chat/providers/user_provider.dart';
|
import 'package:chat/providers/user_provider.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
@@ -20,18 +21,28 @@ class _UserSharePageState extends State<UserSharePage> {
|
|||||||
body: FutureBuilder(
|
body: FutureBuilder(
|
||||||
future: UserProvider.downloadUrl(),
|
future: UserProvider.downloadUrl(),
|
||||||
builder: (context, AsyncSnapshot<String?> data) {
|
builder: (context, AsyncSnapshot<String?> data) {
|
||||||
return Center(
|
return data.data != null
|
||||||
child: Column(
|
? Center(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
child: Container(
|
||||||
children: [
|
decoration: BoxDecoration(
|
||||||
QrImage(
|
color: AppColors.white,
|
||||||
data: '${data.data}',
|
borderRadius: BorderRadius.circular(8),
|
||||||
size: Get.width * 0.8,
|
),
|
||||||
),
|
padding: const EdgeInsets.all(16),
|
||||||
const Text('扫一扫上面的二维码,下载ZH-CHAT'),
|
child: Column(
|
||||||
],
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
),
|
mainAxisSize: MainAxisSize.min,
|
||||||
);
|
children: [
|
||||||
|
QrImage(
|
||||||
|
data: '${data.data}',
|
||||||
|
size: Get.width * 0.8,
|
||||||
|
),
|
||||||
|
const Text('扫一扫上面的二维码,下载ZH-CHAT'),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: Container();
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
54
pubspec.lock
54
pubspec.lock
@@ -28,7 +28,7 @@ packages:
|
|||||||
name: asn1lib
|
name: asn1lib
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.2"
|
version: "1.3.0"
|
||||||
async:
|
async:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -336,7 +336,7 @@ packages:
|
|||||||
name: flutter_plugin_record_plus
|
name: flutter_plugin_record_plus
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.0.11"
|
version: "0.0.15"
|
||||||
flutter_spinkit:
|
flutter_spinkit:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -556,7 +556,49 @@ packages:
|
|||||||
name: otp
|
name: otp
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.1"
|
version: "3.1.3"
|
||||||
|
package_info_plus:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: package_info_plus
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.4.2"
|
||||||
|
package_info_plus_linux:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: package_info_plus_linux
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.5"
|
||||||
|
package_info_plus_macos:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: package_info_plus_macos
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.3.0"
|
||||||
|
package_info_plus_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: package_info_plus_platform_interface
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.2"
|
||||||
|
package_info_plus_web:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: package_info_plus_web
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.6"
|
||||||
|
package_info_plus_windows:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: package_info_plus_windows
|
||||||
|
url: "https://pub.flutter-io.cn"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.5"
|
||||||
path:
|
path:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -745,7 +787,7 @@ packages:
|
|||||||
name: rxdart
|
name: rxdart
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.27.5"
|
version: "0.27.6"
|
||||||
scan:
|
scan:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -820,7 +862,7 @@ packages:
|
|||||||
name: stream_transform
|
name: stream_transform
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.1"
|
version: "2.1.0"
|
||||||
string_scanner:
|
string_scanner:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -890,7 +932,7 @@ packages:
|
|||||||
name: uuid
|
name: uuid
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.6"
|
version: "3.0.7"
|
||||||
vector_math:
|
vector_math:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -51,6 +51,8 @@ dependencies:
|
|||||||
filesize: ^2.0.1
|
filesize: ^2.0.1
|
||||||
file_picker: ^4.6.1
|
file_picker: ^4.6.1
|
||||||
otp: ^3.1.1
|
otp: ^3.1.1
|
||||||
|
package_info_plus: ^1.4.2
|
||||||
|
package_info_plus_web: ^1.0.6
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
Reference in New Issue
Block a user