mirror of
https://mirror.ghproxy.com/https://github.com/StarCitizenToolBox/app.git
synced 2024-12-22 19:53:43 +08:00
add Party Room Module
This commit is contained in:
parent
71eadd86f5
commit
7240878148
@ -52,7 +52,9 @@ class BaseUIModel extends ChangeNotifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<T?> handleError<T>(Future<T> Function() requestFunc,
|
Future<T?> handleError<T>(Future<T> Function() requestFunc,
|
||||||
{bool showFullScreenError = false, String? errorOverride}) async {
|
{bool showFullScreenError = false,
|
||||||
|
String? errorOverride,
|
||||||
|
bool noAlert = false}) async {
|
||||||
uiErrorMsg = "";
|
uiErrorMsg = "";
|
||||||
if (mounted) notifyListeners();
|
if (mounted) notifyListeners();
|
||||||
try {
|
try {
|
||||||
@ -72,7 +74,7 @@ class BaseUIModel extends ChangeNotifier {
|
|||||||
notifyListeners();
|
notifyListeners();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
showToast(context!, errorOverride ?? errorMsg);
|
if (!noAlert) showToast(context!, errorOverride ?? errorMsg);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -17,9 +17,9 @@ import 'package:window_manager/window_manager.dart';
|
|||||||
import '../base/ui.dart';
|
import '../base/ui.dart';
|
||||||
|
|
||||||
class AppConf {
|
class AppConf {
|
||||||
static const String appVersion = "2.10.1 Beta";
|
static const String appVersion = "2.11.0 Beta";
|
||||||
static const int appVersionCode = 36;
|
static const int appVersionCode = 36;
|
||||||
static const String appVersionDate = "2023-12-12";
|
static const String appVersionDate = "2024-01-07";
|
||||||
|
|
||||||
static const String giteaAttachmentsUrl =
|
static const String giteaAttachmentsUrl =
|
||||||
"https://git.sctoolbox.sccsgo.com/SCToolBox/Release";
|
"https://git.sctoolbox.sccsgo.com/SCToolBox/Release";
|
||||||
|
97
lib/generated/grpc/party_room_server/index.pb.dart
Normal file
97
lib/generated/grpc/party_room_server/index.pb.dart
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
//
|
||||||
|
// Generated code. Do not modify.
|
||||||
|
// source: index.proto
|
||||||
|
//
|
||||||
|
// @dart = 2.12
|
||||||
|
|
||||||
|
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||||
|
// ignore_for_file: constant_identifier_names, library_prefixes
|
||||||
|
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||||
|
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||||
|
|
||||||
|
import 'dart:core' as $core;
|
||||||
|
|
||||||
|
import 'package:fixnum/fixnum.dart' as $fixnum;
|
||||||
|
import 'package:protobuf/protobuf.dart' as $pb;
|
||||||
|
|
||||||
|
class PingData extends $pb.GeneratedMessage {
|
||||||
|
factory PingData({
|
||||||
|
$core.String? data,
|
||||||
|
$fixnum.Int64? clientVersion,
|
||||||
|
$fixnum.Int64? serverVersion,
|
||||||
|
}) {
|
||||||
|
final $result = create();
|
||||||
|
if (data != null) {
|
||||||
|
$result.data = data;
|
||||||
|
}
|
||||||
|
if (clientVersion != null) {
|
||||||
|
$result.clientVersion = clientVersion;
|
||||||
|
}
|
||||||
|
if (serverVersion != null) {
|
||||||
|
$result.serverVersion = serverVersion;
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
PingData._() : super();
|
||||||
|
factory PingData.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
||||||
|
factory PingData.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
||||||
|
|
||||||
|
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'PingData', createEmptyInstance: create)
|
||||||
|
..aOS(1, _omitFieldNames ? '' : 'data')
|
||||||
|
..a<$fixnum.Int64>(2, _omitFieldNames ? '' : 'clientVersion', $pb.PbFieldType.OS6, protoName: 'clientVersion', defaultOrMaker: $fixnum.Int64.ZERO)
|
||||||
|
..a<$fixnum.Int64>(3, _omitFieldNames ? '' : 'serverVersion', $pb.PbFieldType.OS6, protoName: 'serverVersion', defaultOrMaker: $fixnum.Int64.ZERO)
|
||||||
|
..hasRequiredFields = false
|
||||||
|
;
|
||||||
|
|
||||||
|
@$core.Deprecated(
|
||||||
|
'Using this can add significant overhead to your binary. '
|
||||||
|
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
|
||||||
|
'Will be removed in next major version')
|
||||||
|
PingData clone() => PingData()..mergeFromMessage(this);
|
||||||
|
@$core.Deprecated(
|
||||||
|
'Using this can add significant overhead to your binary. '
|
||||||
|
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
|
||||||
|
'Will be removed in next major version')
|
||||||
|
PingData copyWith(void Function(PingData) updates) => super.copyWith((message) => updates(message as PingData)) as PingData;
|
||||||
|
|
||||||
|
$pb.BuilderInfo get info_ => _i;
|
||||||
|
|
||||||
|
@$core.pragma('dart2js:noInline')
|
||||||
|
static PingData create() => PingData._();
|
||||||
|
PingData createEmptyInstance() => create();
|
||||||
|
static $pb.PbList<PingData> createRepeated() => $pb.PbList<PingData>();
|
||||||
|
@$core.pragma('dart2js:noInline')
|
||||||
|
static PingData getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<PingData>(create);
|
||||||
|
static PingData? _defaultInstance;
|
||||||
|
|
||||||
|
@$pb.TagNumber(1)
|
||||||
|
$core.String get data => $_getSZ(0);
|
||||||
|
@$pb.TagNumber(1)
|
||||||
|
set data($core.String v) { $_setString(0, v); }
|
||||||
|
@$pb.TagNumber(1)
|
||||||
|
$core.bool hasData() => $_has(0);
|
||||||
|
@$pb.TagNumber(1)
|
||||||
|
void clearData() => clearField(1);
|
||||||
|
|
||||||
|
@$pb.TagNumber(2)
|
||||||
|
$fixnum.Int64 get clientVersion => $_getI64(1);
|
||||||
|
@$pb.TagNumber(2)
|
||||||
|
set clientVersion($fixnum.Int64 v) { $_setInt64(1, v); }
|
||||||
|
@$pb.TagNumber(2)
|
||||||
|
$core.bool hasClientVersion() => $_has(1);
|
||||||
|
@$pb.TagNumber(2)
|
||||||
|
void clearClientVersion() => clearField(2);
|
||||||
|
|
||||||
|
@$pb.TagNumber(3)
|
||||||
|
$fixnum.Int64 get serverVersion => $_getI64(2);
|
||||||
|
@$pb.TagNumber(3)
|
||||||
|
set serverVersion($fixnum.Int64 v) { $_setInt64(2, v); }
|
||||||
|
@$pb.TagNumber(3)
|
||||||
|
$core.bool hasServerVersion() => $_has(2);
|
||||||
|
@$pb.TagNumber(3)
|
||||||
|
void clearServerVersion() => clearField(3);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names');
|
||||||
|
const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names');
|
11
lib/generated/grpc/party_room_server/index.pbenum.dart
Normal file
11
lib/generated/grpc/party_room_server/index.pbenum.dart
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
//
|
||||||
|
// Generated code. Do not modify.
|
||||||
|
// source: index.proto
|
||||||
|
//
|
||||||
|
// @dart = 2.12
|
||||||
|
|
||||||
|
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||||
|
// ignore_for_file: constant_identifier_names, library_prefixes
|
||||||
|
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||||
|
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||||
|
|
59
lib/generated/grpc/party_room_server/index.pbgrpc.dart
Normal file
59
lib/generated/grpc/party_room_server/index.pbgrpc.dart
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
//
|
||||||
|
// Generated code. Do not modify.
|
||||||
|
// source: index.proto
|
||||||
|
//
|
||||||
|
// @dart = 2.12
|
||||||
|
|
||||||
|
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||||
|
// ignore_for_file: constant_identifier_names, library_prefixes
|
||||||
|
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||||
|
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||||
|
|
||||||
|
import 'dart:async' as $async;
|
||||||
|
import 'dart:core' as $core;
|
||||||
|
|
||||||
|
import 'package:grpc/service_api.dart' as $grpc;
|
||||||
|
import 'package:protobuf/protobuf.dart' as $pb;
|
||||||
|
|
||||||
|
import 'index.pb.dart' as $0;
|
||||||
|
|
||||||
|
export 'index.pb.dart';
|
||||||
|
|
||||||
|
@$pb.GrpcServiceName('IndexService')
|
||||||
|
class IndexServiceClient extends $grpc.Client {
|
||||||
|
static final _$pingServer = $grpc.ClientMethod<$0.PingData, $0.PingData>(
|
||||||
|
'/IndexService/PingServer',
|
||||||
|
($0.PingData value) => value.writeToBuffer(),
|
||||||
|
($core.List<$core.int> value) => $0.PingData.fromBuffer(value));
|
||||||
|
|
||||||
|
IndexServiceClient($grpc.ClientChannel channel,
|
||||||
|
{$grpc.CallOptions? options,
|
||||||
|
$core.Iterable<$grpc.ClientInterceptor>? interceptors})
|
||||||
|
: super(channel, options: options,
|
||||||
|
interceptors: interceptors);
|
||||||
|
|
||||||
|
$grpc.ResponseFuture<$0.PingData> pingServer($0.PingData request, {$grpc.CallOptions? options}) {
|
||||||
|
return $createUnaryCall(_$pingServer, request, options: options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@$pb.GrpcServiceName('IndexService')
|
||||||
|
abstract class IndexServiceBase extends $grpc.Service {
|
||||||
|
$core.String get $name => 'IndexService';
|
||||||
|
|
||||||
|
IndexServiceBase() {
|
||||||
|
$addMethod($grpc.ServiceMethod<$0.PingData, $0.PingData>(
|
||||||
|
'PingServer',
|
||||||
|
pingServer_Pre,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
($core.List<$core.int> value) => $0.PingData.fromBuffer(value),
|
||||||
|
($0.PingData value) => value.writeToBuffer()));
|
||||||
|
}
|
||||||
|
|
||||||
|
$async.Future<$0.PingData> pingServer_Pre($grpc.ServiceCall call, $async.Future<$0.PingData> request) async {
|
||||||
|
return pingServer(call, await request);
|
||||||
|
}
|
||||||
|
|
||||||
|
$async.Future<$0.PingData> pingServer($grpc.ServiceCall call, $0.PingData request);
|
||||||
|
}
|
30
lib/generated/grpc/party_room_server/index.pbjson.dart
Normal file
30
lib/generated/grpc/party_room_server/index.pbjson.dart
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
//
|
||||||
|
// Generated code. Do not modify.
|
||||||
|
// source: index.proto
|
||||||
|
//
|
||||||
|
// @dart = 2.12
|
||||||
|
|
||||||
|
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||||
|
// ignore_for_file: constant_identifier_names, library_prefixes
|
||||||
|
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||||
|
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||||
|
|
||||||
|
import 'dart:convert' as $convert;
|
||||||
|
import 'dart:core' as $core;
|
||||||
|
import 'dart:typed_data' as $typed_data;
|
||||||
|
|
||||||
|
@$core.Deprecated('Use pingDataDescriptor instead')
|
||||||
|
const PingData$json = {
|
||||||
|
'1': 'PingData',
|
||||||
|
'2': [
|
||||||
|
{'1': 'data', '3': 1, '4': 1, '5': 9, '10': 'data'},
|
||||||
|
{'1': 'clientVersion', '3': 2, '4': 1, '5': 18, '10': 'clientVersion'},
|
||||||
|
{'1': 'serverVersion', '3': 3, '4': 1, '5': 18, '10': 'serverVersion'},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Descriptor for `PingData`. Decode as a `google.protobuf.DescriptorProto`.
|
||||||
|
final $typed_data.Uint8List pingDataDescriptor = $convert.base64Decode(
|
||||||
|
'CghQaW5nRGF0YRISCgRkYXRhGAEgASgJUgRkYXRhEiQKDWNsaWVudFZlcnNpb24YAiABKBJSDW'
|
||||||
|
'NsaWVudFZlcnNpb24SJAoNc2VydmVyVmVyc2lvbhgDIAEoElINc2VydmVyVmVyc2lvbg==');
|
||||||
|
|
26
lib/grpc/party_room_server.dart
Normal file
26
lib/grpc/party_room_server.dart
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import 'package:fixnum/fixnum.dart';
|
||||||
|
import 'package:grpc/grpc.dart';
|
||||||
|
import 'package:starcitizen_doctor/base/ui.dart';
|
||||||
|
import 'package:starcitizen_doctor/generated/grpc/party_room_server/index.pbgrpc.dart';
|
||||||
|
|
||||||
|
class PartyRoomGrpcServer {
|
||||||
|
static const clientVersion = 0;
|
||||||
|
static final _channel = ClientChannel(
|
||||||
|
"127.0.0.1",
|
||||||
|
port: 39399,
|
||||||
|
options: ChannelOptions(
|
||||||
|
credentials: const ChannelCredentials.insecure(),
|
||||||
|
codecRegistry:
|
||||||
|
CodecRegistry(codecs: const [GzipCodec(), IdentityCodec()]),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
static final _indexService = IndexServiceClient(_channel);
|
||||||
|
|
||||||
|
static Future<PingData> pingServer() async {
|
||||||
|
final r = await _indexService.pingServer(PingData(
|
||||||
|
data: "PING", clientVersion: Int64.parseInt(clientVersion.toString())));
|
||||||
|
dPrint(r.writeToJson());
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
}
|
@ -4,6 +4,7 @@ import 'package:starcitizen_doctor/main.dart';
|
|||||||
import 'package:starcitizen_doctor/ui/about/about_ui.dart';
|
import 'package:starcitizen_doctor/ui/about/about_ui.dart';
|
||||||
import 'package:starcitizen_doctor/ui/about/about_ui_model.dart';
|
import 'package:starcitizen_doctor/ui/about/about_ui_model.dart';
|
||||||
import 'package:starcitizen_doctor/ui/home/home_ui.dart';
|
import 'package:starcitizen_doctor/ui/home/home_ui.dart';
|
||||||
|
import 'package:starcitizen_doctor/ui/party_room/party_room_home_ui_model.dart';
|
||||||
import 'package:starcitizen_doctor/ui/settings/settings_ui.dart';
|
import 'package:starcitizen_doctor/ui/settings/settings_ui.dart';
|
||||||
import 'package:starcitizen_doctor/ui/settings/settings_ui_model.dart';
|
import 'package:starcitizen_doctor/ui/settings/settings_ui_model.dart';
|
||||||
import 'package:starcitizen_doctor/ui/tools/tools_ui.dart';
|
import 'package:starcitizen_doctor/ui/tools/tools_ui.dart';
|
||||||
@ -12,6 +13,7 @@ import 'package:window_manager/window_manager.dart';
|
|||||||
|
|
||||||
import 'home/home_ui_model.dart';
|
import 'home/home_ui_model.dart';
|
||||||
import 'index_ui_model.dart';
|
import 'index_ui_model.dart';
|
||||||
|
import 'party_room/party_room_home_ui.dart';
|
||||||
|
|
||||||
class IndexUI extends BaseUI<IndexUIModel> {
|
class IndexUI extends BaseUI<IndexUIModel> {
|
||||||
@override
|
@override
|
||||||
@ -67,16 +69,21 @@ class IndexUI extends BaseUI<IndexUIModel> {
|
|||||||
modelCreate: () =>
|
modelCreate: () =>
|
||||||
model.getChildUIModelProviders<HomeUIModel>("home"));
|
model.getChildUIModelProviders<HomeUIModel>("home"));
|
||||||
case 1:
|
case 1:
|
||||||
|
return BaseUIContainer(
|
||||||
|
uiCreate: () => PartyRoomHomeUI(),
|
||||||
|
modelCreate: () =>
|
||||||
|
model.getChildUIModelProviders<PartyRoomHomeUIModel>("party"));
|
||||||
|
case 2:
|
||||||
return BaseUIContainer(
|
return BaseUIContainer(
|
||||||
uiCreate: () => ToolsUI(),
|
uiCreate: () => ToolsUI(),
|
||||||
modelCreate: () =>
|
modelCreate: () =>
|
||||||
model.getChildUIModelProviders<ToolsUIModel>("tools"));
|
model.getChildUIModelProviders<ToolsUIModel>("tools"));
|
||||||
case 2:
|
case 3:
|
||||||
return BaseUIContainer(
|
return BaseUIContainer(
|
||||||
uiCreate: () => SettingUI(),
|
uiCreate: () => SettingUI(),
|
||||||
modelCreate: () =>
|
modelCreate: () =>
|
||||||
model.getChildUIModelProviders<SettingUIModel>("settings"));
|
model.getChildUIModelProviders<SettingUIModel>("settings"));
|
||||||
case 3:
|
case 4:
|
||||||
return BaseUIContainer(
|
return BaseUIContainer(
|
||||||
uiCreate: () => AboutUI(),
|
uiCreate: () => AboutUI(),
|
||||||
modelCreate: () =>
|
modelCreate: () =>
|
||||||
@ -88,6 +95,7 @@ class IndexUI extends BaseUI<IndexUIModel> {
|
|||||||
List<NavigationPaneItem> getNavigationPaneItems(IndexUIModel model) {
|
List<NavigationPaneItem> getNavigationPaneItems(IndexUIModel model) {
|
||||||
final menus = {
|
final menus = {
|
||||||
FluentIcons.home: "首页",
|
FluentIcons.home: "首页",
|
||||||
|
FluentIcons.game: "大厅",
|
||||||
FluentIcons.toolbox: "工具",
|
FluentIcons.toolbox: "工具",
|
||||||
FluentIcons.settings: "设置",
|
FluentIcons.settings: "设置",
|
||||||
FluentIcons.info: "关于",
|
FluentIcons.info: "关于",
|
||||||
|
@ -10,6 +10,8 @@ import 'package:starcitizen_doctor/ui/settings/settings_ui_model.dart';
|
|||||||
import 'package:starcitizen_doctor/ui/tools/tools_ui_model.dart';
|
import 'package:starcitizen_doctor/ui/tools/tools_ui_model.dart';
|
||||||
import 'package:url_launcher/url_launcher_string.dart';
|
import 'package:url_launcher/url_launcher_string.dart';
|
||||||
|
|
||||||
|
import 'party_room/party_room_home_ui_model.dart';
|
||||||
|
|
||||||
class IndexUIModel extends BaseUIModel {
|
class IndexUIModel extends BaseUIModel {
|
||||||
int curIndex = 0;
|
int curIndex = 0;
|
||||||
|
|
||||||
@ -32,6 +34,8 @@ class IndexUIModel extends BaseUIModel {
|
|||||||
return SettingUIModel();
|
return SettingUIModel();
|
||||||
case "about":
|
case "about":
|
||||||
return AboutUIModel();
|
return AboutUIModel();
|
||||||
|
case "party":
|
||||||
|
return PartyRoomHomeUIModel();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -39,9 +43,10 @@ class IndexUIModel extends BaseUIModel {
|
|||||||
void onIndexMenuTap(String value) {
|
void onIndexMenuTap(String value) {
|
||||||
final index = {
|
final index = {
|
||||||
"首页": 0,
|
"首页": 0,
|
||||||
"工具": 1,
|
"大厅": 1,
|
||||||
"设置": 2,
|
"工具": 2,
|
||||||
"关于": 3,
|
"设置": 3,
|
||||||
|
"关于": 4,
|
||||||
};
|
};
|
||||||
curIndex = index[value] ?? 0;
|
curIndex = index[value] ?? 0;
|
||||||
switch (curIndex) {
|
switch (curIndex) {
|
||||||
@ -49,9 +54,12 @@ class IndexUIModel extends BaseUIModel {
|
|||||||
getCreatedChildUIModel("home")?.reloadData();
|
getCreatedChildUIModel("home")?.reloadData();
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
getCreatedChildUIModel("tools")?.reloadData();
|
getCreatedChildUIModel("party")?.reloadData();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
getCreatedChildUIModel("tools")?.reloadData();
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
getCreatedChildUIModel("settings")?.reloadData();
|
getCreatedChildUIModel("settings")?.reloadData();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
22
lib/ui/party_room/party_room_home_ui.dart
Normal file
22
lib/ui/party_room/party_room_home_ui.dart
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import 'package:starcitizen_doctor/base/ui.dart';
|
||||||
|
|
||||||
|
import 'party_room_home_ui_model.dart';
|
||||||
|
|
||||||
|
class PartyRoomHomeUI extends BaseUI<PartyRoomHomeUIModel> {
|
||||||
|
@override
|
||||||
|
Widget? buildBody(BuildContext context, PartyRoomHomeUIModel model) {
|
||||||
|
if (model.pingServerMessage == null) return makeLoading(context);
|
||||||
|
if (model.pingServerMessage!.isNotEmpty) {
|
||||||
|
return Center(
|
||||||
|
child: Text("${model.pingServerMessage}"),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return Center(
|
||||||
|
child: Text("PartyRoom"),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String getUITitle(BuildContext context, PartyRoomHomeUIModel model) =>
|
||||||
|
"PartyRoom";
|
||||||
|
}
|
29
lib/ui/party_room/party_room_home_ui_model.dart
Normal file
29
lib/ui/party_room/party_room_home_ui_model.dart
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import 'package:starcitizen_doctor/base/ui_model.dart';
|
||||||
|
import 'package:starcitizen_doctor/grpc/party_room_server.dart';
|
||||||
|
|
||||||
|
class PartyRoomHomeUIModel extends BaseUIModel {
|
||||||
|
String? pingServerMessage;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future loadData() async {
|
||||||
|
if (pingServerMessage != "") {
|
||||||
|
pingServerMessage = null;
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
|
await _pingServer();
|
||||||
|
}
|
||||||
|
|
||||||
|
_pingServer() async {
|
||||||
|
try {
|
||||||
|
final r = await PartyRoomGrpcServer.pingServer();
|
||||||
|
dPrint(
|
||||||
|
"[PartyRoomHomeUIModel] Connected! serverVersion ==> ${r.serverVersion}");
|
||||||
|
pingServerMessage = "";
|
||||||
|
notifyListeners();
|
||||||
|
} catch (e) {
|
||||||
|
pingServerMessage = "服务器连接失败,请稍后重试。\n$e";
|
||||||
|
notifyListeners();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -66,6 +66,9 @@ dependencies:
|
|||||||
dart_rss: ^3.0.1
|
dart_rss: ^3.0.1
|
||||||
html: ^0.15.4
|
html: ^0.15.4
|
||||||
xml: ^6.5.0
|
xml: ^6.5.0
|
||||||
|
fixnum: ^1.1.0
|
||||||
|
protobuf: ^3.1.0
|
||||||
|
grpc: ^3.2.4
|
||||||
|
|
||||||
dependency_overrides:
|
dependency_overrides:
|
||||||
http: ^1.1.2
|
http: ^1.1.2
|
||||||
@ -81,7 +84,7 @@ dev_dependencies:
|
|||||||
# rules and activating additional ones.
|
# rules and activating additional ones.
|
||||||
flutter_lints: ^3.0.0
|
flutter_lints: ^3.0.0
|
||||||
msix: ^3.16.4
|
msix: ^3.16.4
|
||||||
ffigen: ^10.0.0
|
ffigen: ^11.0.0
|
||||||
build_runner: ^2.4.6
|
build_runner: ^2.4.6
|
||||||
freezed: ^2.4.5
|
freezed: ^2.4.5
|
||||||
|
|
||||||
|
1
update_grpc.bat
Normal file
1
update_grpc.bat
Normal file
@ -0,0 +1 @@
|
|||||||
|
protoc --dart_out=grpc:lib/generated/grpc/party_room_server -I../party_room_server/protos/ ../party_room_server/protos/*.proto
|
Loading…
Reference in New Issue
Block a user