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