Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 747d17f27c | |||
| 8398de5af1 | |||
| a42cb45534 | |||
|
|
968a2a957b | ||
|
|
3757c27939 | ||
|
|
2a940b9312 | ||
|
|
2f17dba2fa | ||
|
|
6e1e50f34e | ||
|
|
bfc0c5d3d7 | ||
|
|
8c6c980bb8 | ||
|
|
6a6360540b | ||
|
|
d905f8c13e | ||
|
|
0d70cb711a | ||
|
|
f283f4db43 | ||
|
|
3ce635075c | ||
|
|
ffd32ec7ff | ||
|
|
ba102bbab8 | ||
|
|
79d56dd267 | ||
|
|
134b4f0983 | ||
|
|
6090d772fe | ||
|
|
3da318ec71 | ||
|
|
f453821e15 | ||
|
|
de955f1226 | ||
|
|
636f5cdb53 | ||
|
|
340e38a8e7 | ||
|
|
f0a3b527cf | ||
|
|
d1c7f2b72b | ||
|
|
e5d83aea04 |
71
.github/workflows/windows_test.yaml
vendored
Normal file
71
.github/workflows/windows_test.yaml
vendored
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
name: "Windows Nightly Build"
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "19 21 * * *" # every day at midnight
|
||||||
|
workflow_dispatch:
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: windows
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up MSbuild
|
||||||
|
uses: microsoft/setup-msbuild@v2
|
||||||
|
|
||||||
|
- name: Set up Flutter
|
||||||
|
uses: subosito/flutter-action@v2
|
||||||
|
with:
|
||||||
|
channel: 'stable'
|
||||||
|
cache: true
|
||||||
|
cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' # optional, change this to force refresh cache
|
||||||
|
cache-path: '${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:' # optional, change this to specify the cache path
|
||||||
|
|
||||||
|
- run: flutter --version
|
||||||
|
|
||||||
|
- name: Set up Rust
|
||||||
|
uses: dtolnay/rust-toolchain@stable
|
||||||
|
|
||||||
|
- name: Rust Version
|
||||||
|
run: |
|
||||||
|
rustup --version
|
||||||
|
cargo --version
|
||||||
|
- name: Rust Cache
|
||||||
|
uses: Swatinem/rust-cache@v2
|
||||||
|
with:
|
||||||
|
workspaces: "rust"
|
||||||
|
cache-all-crates: true
|
||||||
|
|
||||||
|
- name: Set up LLVM
|
||||||
|
uses: KyleMayes/install-llvm-action@v2
|
||||||
|
with:
|
||||||
|
version: "18"
|
||||||
|
|
||||||
|
- name: Flutter pub get
|
||||||
|
run: flutter pub get
|
||||||
|
- name: Flutter build runner
|
||||||
|
run: dart run build_runner build --delete-conflicting-outputs
|
||||||
|
- name: Rust cargo update
|
||||||
|
run: cargo update
|
||||||
|
working-directory: rust
|
||||||
|
|
||||||
|
- name: Set up Flutter rust bridge
|
||||||
|
run: |
|
||||||
|
cargo install cargo-expand
|
||||||
|
cargo install 'flutter_rust_bridge_codegen@^2.0.0-dev.0'
|
||||||
|
|
||||||
|
- name: Flutter Rust bridge generate
|
||||||
|
run: flutter_rust_bridge_codegen generate
|
||||||
|
- name: flutter gen l10n
|
||||||
|
run: |
|
||||||
|
flutter pub global activate intl_utils
|
||||||
|
flutter pub global run intl_utils:generate
|
||||||
|
- name: Flutter build Windows
|
||||||
|
run: flutter build windows
|
||||||
|
|
||||||
|
- name: Archive build
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: windows
|
||||||
|
path: build/windows/x64/runner/Release
|
||||||
|
|
||||||
@ -287,8 +287,7 @@ async function getRSILauncherToken(channelId) {
|
|||||||
let libraryData = (await libraryR.json())["data"]
|
let libraryData = (await libraryR.json())["data"]
|
||||||
|
|
||||||
// get user avatar
|
// get user avatar
|
||||||
let $avatarElement = $(".c-account-sidebar__profile-metas-avatar");
|
let avatarUrl = $(".a-avatarButton__image").attr("src");
|
||||||
let avatarUrl = $avatarElement.css("background-image");
|
|
||||||
|
|
||||||
//post message
|
//post message
|
||||||
window.chrome.webview.postMessage({
|
window.chrome.webview.postMessage({
|
||||||
|
|||||||
@ -24,7 +24,9 @@ mixin _$AppGlobalState {
|
|||||||
Locale? get appLocale => throw _privateConstructorUsedError;
|
Locale? get appLocale => throw _privateConstructorUsedError;
|
||||||
Box<dynamic>? get appConfBox => throw _privateConstructorUsedError;
|
Box<dynamic>? get appConfBox => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of AppGlobalState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$AppGlobalStateCopyWith<AppGlobalState> get copyWith =>
|
$AppGlobalStateCopyWith<AppGlobalState> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -57,6 +59,8 @@ class _$AppGlobalStateCopyWithImpl<$Res, $Val extends AppGlobalState>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of AppGlobalState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -100,6 +104,8 @@ class _$AppGlobalStateCopyWithImpl<$Res, $Val extends AppGlobalState>
|
|||||||
) as $Val);
|
) as $Val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Create a copy of AppGlobalState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
$ThemeConfCopyWith<$Res> get themeConf {
|
$ThemeConfCopyWith<$Res> get themeConf {
|
||||||
@ -138,6 +144,8 @@ class __$$AppGlobalStateImplCopyWithImpl<$Res>
|
|||||||
_$AppGlobalStateImpl _value, $Res Function(_$AppGlobalStateImpl) _then)
|
_$AppGlobalStateImpl _value, $Res Function(_$AppGlobalStateImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of AppGlobalState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -249,7 +257,9 @@ class _$AppGlobalStateImpl implements _AppGlobalState {
|
|||||||
appLocale,
|
appLocale,
|
||||||
appConfBox);
|
appConfBox);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of AppGlobalState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$AppGlobalStateImplCopyWith<_$AppGlobalStateImpl> get copyWith =>
|
_$$AppGlobalStateImplCopyWith<_$AppGlobalStateImpl> get copyWith =>
|
||||||
@ -281,8 +291,11 @@ abstract class _AppGlobalState implements AppGlobalState {
|
|||||||
Locale? get appLocale;
|
Locale? get appLocale;
|
||||||
@override
|
@override
|
||||||
Box<dynamic>? get appConfBox;
|
Box<dynamic>? get appConfBox;
|
||||||
|
|
||||||
|
/// Create a copy of AppGlobalState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$AppGlobalStateImplCopyWith<_$AppGlobalStateImpl> get copyWith =>
|
_$$AppGlobalStateImplCopyWith<_$AppGlobalStateImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -293,7 +306,9 @@ mixin _$ThemeConf {
|
|||||||
Color get menuColor => throw _privateConstructorUsedError;
|
Color get menuColor => throw _privateConstructorUsedError;
|
||||||
Color get micaColor => throw _privateConstructorUsedError;
|
Color get micaColor => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of ThemeConf
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$ThemeConfCopyWith<ThemeConf> get copyWith =>
|
$ThemeConfCopyWith<ThemeConf> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -316,6 +331,8 @@ class _$ThemeConfCopyWithImpl<$Res, $Val extends ThemeConf>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of ThemeConf
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -359,6 +376,8 @@ class __$$ThemeConfImplCopyWithImpl<$Res>
|
|||||||
_$ThemeConfImpl _value, $Res Function(_$ThemeConfImpl) _then)
|
_$ThemeConfImpl _value, $Res Function(_$ThemeConfImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of ThemeConf
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -423,7 +442,9 @@ class _$ThemeConfImpl implements _ThemeConf {
|
|||||||
int get hashCode =>
|
int get hashCode =>
|
||||||
Object.hash(runtimeType, backgroundColor, menuColor, micaColor);
|
Object.hash(runtimeType, backgroundColor, menuColor, micaColor);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of ThemeConf
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$ThemeConfImplCopyWith<_$ThemeConfImpl> get copyWith =>
|
_$$ThemeConfImplCopyWith<_$ThemeConfImpl> get copyWith =>
|
||||||
@ -442,8 +463,11 @@ abstract class _ThemeConf implements ThemeConf {
|
|||||||
Color get menuColor;
|
Color get menuColor;
|
||||||
@override
|
@override
|
||||||
Color get micaColor;
|
Color get micaColor;
|
||||||
|
|
||||||
|
/// Create a copy of ThemeConf
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$ThemeConfImplCopyWith<_$ThemeConfImpl> get copyWith =>
|
_$$ThemeConfImplCopyWith<_$ThemeConfImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,7 +20,7 @@ final routerProvider = AutoDisposeProvider<GoRouter>.internal(
|
|||||||
);
|
);
|
||||||
|
|
||||||
typedef RouterRef = AutoDisposeProviderRef<GoRouter>;
|
typedef RouterRef = AutoDisposeProviderRef<GoRouter>;
|
||||||
String _$appGlobalModelHash() => r'9dccbb898714695ef8b640a5b5dfb361783a0f45';
|
String _$appGlobalModelHash() => r'cf3d526a61cbadea4252c6f8e096a527d5cef50f';
|
||||||
|
|
||||||
/// See also [AppGlobalModel].
|
/// See also [AppGlobalModel].
|
||||||
@ProviderFor(AppGlobalModel)
|
@ProviderFor(AppGlobalModel)
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
class ConstConf {
|
class ConstConf {
|
||||||
static const String appVersion = "2.12.0";
|
static const String appVersion = "2.12.2";
|
||||||
static const int appVersionCode = 54;
|
static const int appVersionCode = 56;
|
||||||
static const String appVersionDate = "2024-6-28";
|
static const String appVersionDate = "2024-6-28";
|
||||||
static const gameChannels = ["LIVE", "PTU", "EPTU", "TECH-PREVIEW"];
|
static const gameChannels = ["LIVE", "PTU", "EPTU", "TECH-PREVIEW", "HOTFIX"];
|
||||||
static const isMSE =
|
static const isMSE =
|
||||||
String.fromEnvironment("MSE", defaultValue: "false") == "true";
|
String.fromEnvironment("MSE", defaultValue: "false") == "true";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,16 +36,7 @@ class SCLoggerHelper {
|
|||||||
final jsonLogPath = await getLogFilePath();
|
final jsonLogPath = await getLogFilePath();
|
||||||
if (jsonLogPath == null) throw "no file path";
|
if (jsonLogPath == null) throw "no file path";
|
||||||
var jsonString = utf8.decode(await File(jsonLogPath).readAsBytes());
|
var jsonString = utf8.decode(await File(jsonLogPath).readAsBytes());
|
||||||
if (jsonString.endsWith("\n")) {
|
return jsonString.split("\n");
|
||||||
jsonString = jsonString.substring(0, jsonString.length - 3);
|
|
||||||
}
|
|
||||||
if (jsonString.endsWith(" ")) {
|
|
||||||
jsonString = jsonString.substring(0, jsonString.length - 3);
|
|
||||||
}
|
|
||||||
if (jsonString.endsWith(",")) {
|
|
||||||
jsonString = jsonString.substring(0, jsonString.length - 3);
|
|
||||||
}
|
|
||||||
return json.decode("[$jsonString]");
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
dPrint(e);
|
dPrint(e);
|
||||||
return [];
|
return [];
|
||||||
@ -58,6 +49,8 @@ class SCLoggerHelper {
|
|||||||
List<String> scInstallPaths = [];
|
List<String> scInstallPaths = [];
|
||||||
|
|
||||||
checkAndAddPath(String path, bool checkExists) async {
|
checkAndAddPath(String path, bool checkExists) async {
|
||||||
|
// 将所有连续的 \\ 替换为 \
|
||||||
|
path = path.replaceAll(RegExp(r'\\+'), "\\");
|
||||||
if (path.isNotEmpty && !scInstallPaths.contains(path)) {
|
if (path.isNotEmpty && !scInstallPaths.contains(path)) {
|
||||||
if (!checkExists) {
|
if (!checkExists) {
|
||||||
dPrint("find installPath == $path");
|
dPrint("find installPath == $path");
|
||||||
@ -80,36 +73,27 @@ class SCLoggerHelper {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
for (var v in withVersion) {
|
for (var v in withVersion) {
|
||||||
|
String pattern =
|
||||||
|
r'([a-zA-Z]:\\\\[^\\\\]*\\\\[^\\\\]*\\\\StarCitizen\\\\' + v + r')';
|
||||||
|
RegExp regExp = RegExp(pattern, caseSensitive: false);
|
||||||
for (var i = listData.length - 1; i > 0; i--) {
|
for (var i = listData.length - 1; i > 0; i--) {
|
||||||
final m = listData[i];
|
final line = listData[i];
|
||||||
final info = m["[browser][info] "];
|
final matches = regExp.allMatches(line);
|
||||||
if (info is String) {
|
for (var match in matches) {
|
||||||
String installPath = "";
|
await checkAndAddPath(match.group(0)!, checkExists);
|
||||||
if (info.contains("Installing Star Citizen $v")) {
|
|
||||||
installPath = "${info.split(" at ")[1]}\\$v";
|
|
||||||
}
|
|
||||||
if (info.contains("Verifying Star Citizen $v")) {
|
|
||||||
installPath = "${info.split(" at ")[1]}\\$v";
|
|
||||||
}
|
|
||||||
if (info.contains("Launching Star Citizen $v from")) {
|
|
||||||
installPath = info
|
|
||||||
.replaceAll("Launching Star Citizen $v from (", "")
|
|
||||||
.replaceAll(")", "");
|
|
||||||
}
|
|
||||||
await checkAndAddPath(installPath, checkExists);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (scInstallPaths.isNotEmpty) {
|
if (scInstallPaths.isNotEmpty) {
|
||||||
// 动态检测更多位置
|
// 动态检测更多位置
|
||||||
|
for (var fileName in List.from(scInstallPaths)) {
|
||||||
for (var v in withVersion) {
|
for (var v in withVersion) {
|
||||||
for (var fileName in List.from(scInstallPaths)) {
|
if (fileName.toString().endsWith(v)) {
|
||||||
if (fileName.toString().endsWith(v)) {
|
for (var nv in withVersion) {
|
||||||
for (var nv in withVersion) {
|
final nextName =
|
||||||
final nextName =
|
"${fileName.toString().replaceAll("\\$v", "")}\\$nv";
|
||||||
"${fileName.toString().replaceAll("\\$v", "")}\\$nv";
|
await checkAndAddPath(nextName, true);
|
||||||
await checkAndAddPath(nextName, true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,8 +8,8 @@ class SystemHelper {
|
|||||||
|
|
||||||
static initPowershellPath() async {
|
static initPowershellPath() async {
|
||||||
try {
|
try {
|
||||||
var result = await Process.run(powershellPath, ["echo", "ping"]);
|
var result = await Process.run(powershellPath, ["echo", "pong"]);
|
||||||
if (!result.stdout.toString().startsWith("ping") &&
|
if (!result.stdout.toString().startsWith("pong") &&
|
||||||
powershellPath == "powershell.exe") {
|
powershellPath == "powershell.exe") {
|
||||||
throw "powershell check failed";
|
throw "powershell check failed";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
// This file is automatically generated, so please do not edit it.
|
// This file is automatically generated, so please do not edit it.
|
||||||
// Generated by `flutter_rust_bridge`@ 2.1.0.
|
// @generated by `flutter_rust_bridge`@ 2.4.0.
|
||||||
|
|
||||||
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
|
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
// This file is automatically generated, so please do not edit it.
|
// This file is automatically generated, so please do not edit it.
|
||||||
// Generated by `flutter_rust_bridge`@ 2.1.0.
|
// @generated by `flutter_rust_bridge`@ 2.4.0.
|
||||||
|
|
||||||
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
|
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
// This file is automatically generated, so please do not edit it.
|
// This file is automatically generated, so please do not edit it.
|
||||||
// Generated by `flutter_rust_bridge`@ 2.1.0.
|
// @generated by `flutter_rust_bridge`@ 2.4.0.
|
||||||
|
|
||||||
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
|
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
// This file is automatically generated, so please do not edit it.
|
// This file is automatically generated, so please do not edit it.
|
||||||
// Generated by `flutter_rust_bridge`@ 2.1.0.
|
// @generated by `flutter_rust_bridge`@ 2.4.0.
|
||||||
|
|
||||||
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
|
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
// This file is automatically generated, so please do not edit it.
|
// This file is automatically generated, so please do not edit it.
|
||||||
// Generated by `flutter_rust_bridge`@ 2.1.0.
|
// @generated by `flutter_rust_bridge`@ 2.4.0.
|
||||||
|
|
||||||
// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field
|
// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field
|
||||||
|
|
||||||
@ -35,6 +35,16 @@ class RustLib extends BaseEntrypoint<RustLibApi, RustLibApiImpl, RustLibWire> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Initialize flutter_rust_bridge in mock mode.
|
||||||
|
/// No libraries for FFI are loaded.
|
||||||
|
static void initMock({
|
||||||
|
required RustLibApi api,
|
||||||
|
}) {
|
||||||
|
instance.initMockImpl(
|
||||||
|
api: api,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/// Dispose flutter_rust_bridge
|
/// Dispose flutter_rust_bridge
|
||||||
///
|
///
|
||||||
/// The call to this function is optional, since flutter_rust_bridge (and everything else)
|
/// The call to this function is optional, since flutter_rust_bridge (and everything else)
|
||||||
@ -57,7 +67,7 @@ class RustLib extends BaseEntrypoint<RustLibApi, RustLibApiImpl, RustLibWire> {
|
|||||||
kDefaultExternalLibraryLoaderConfig;
|
kDefaultExternalLibraryLoaderConfig;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get codegenVersion => '2.1.0';
|
String get codegenVersion => '2.4.0';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get rustContentHash => 1832496273;
|
int get rustContentHash => 1832496273;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
// This file is automatically generated, so please do not edit it.
|
// This file is automatically generated, so please do not edit it.
|
||||||
// Generated by `flutter_rust_bridge`@ 2.1.0.
|
// @generated by `flutter_rust_bridge`@ 2.4.0.
|
||||||
|
|
||||||
// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field
|
// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
// This file is automatically generated, so please do not edit it.
|
// This file is automatically generated, so please do not edit it.
|
||||||
// Generated by `flutter_rust_bridge`@ 2.1.0.
|
// @generated by `flutter_rust_bridge`@ 2.4.0.
|
||||||
|
|
||||||
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
|
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
|
||||||
|
|
||||||
|
|||||||
@ -241,7 +241,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"app_splash_dialog_u_a_p_p": MessageLookupByLibrary.simpleMessage(
|
"app_splash_dialog_u_a_p_p": MessageLookupByLibrary.simpleMessage(
|
||||||
"User Agreement and Privacy Policy"),
|
"User Agreement and Privacy Policy"),
|
||||||
"app_splash_dialog_u_a_p_p_content": MessageLookupByLibrary.simpleMessage(
|
"app_splash_dialog_u_a_p_p_content": MessageLookupByLibrary.simpleMessage(
|
||||||
"Thank you for choosing the SCToolBox box. We are committed to providing you with a safe, convenient and reliable experience. Before you start using your application, please read and agree to the following:\n\n 1. This application is an open source software under the GNU General Public License V3.0 protocol. You can use, modify, and distribute this software freely under the premise of obeying the agreement. Our source code is located at: [github.com/starCitizentoolBox/app] (https://github.com/starCitizantoolBox/app).\n2. The copyright of the Internet content in this application (including but not limited to localized documents, tool websites, news, videos, etc.) is created by its authors and is not part of GPL. Please use it under the corresponding authorization agreement.\n3. The official free release channels for this application are: [Microsoft App Store] (https://apps.microsoft.com/detail/9NF3SWFWNKL1) and [Official Website of Star Citizen Chinese] ), If you get from other third parties, please identify it carefully to avoid suffering from property losses.\n4. This application will send anonymous statistics to our server during use to improve software quality, and we will not collect any personal privacy information of your personal privacy.\n5. This application is supported by the community and has no direct connection with Cloud Imperium Games or other third -party commercial companies.\n6. We provide limited community support. If necessary, please go to the page to learn how to contact us."),
|
"Thank you for choosing the SCToolBox box. We are committed to providing you with a safe, convenient and reliable experience. Before you start using your application, please read and agree to the following:\n\n 1. This application is an open source software under the GNU General Public License V3.0 protocol. You can use, modify, and distribute this software freely under the premise of obeying the agreement. Our source code is located at: [Github.com/StarCitizenToolBox/app](https://github.com/StarCitizenToolBox/app).\n2. The copyright of the Internet content in this application (including but not limited to localized documents, tool websites, news, videos, etc.) is created by its authors and is not part of GPL. Please use it under the corresponding authorization agreement.\n3. The official free release channels for this application are: [Microsoft App Store] (https://apps.microsoft.com/detail/9NF3SWFWNKL1) and [Official Website of Star Citizen Chinese] ), If you get from other third parties, please identify it carefully to avoid suffering from property losses.\n4. This application will send anonymous statistics to our server during use to improve software quality, and we will not collect any personal privacy information of your personal privacy.\n5. This application is supported by the community and has no direct connection with Cloud Imperium Games or other third -party commercial companies.\n6. We provide limited community support. If necessary, please go to the page to learn how to contact us."),
|
||||||
"app_upgrade_action_next_time":
|
"app_upgrade_action_next_time":
|
||||||
MessageLookupByLibrary.simpleMessage("Next time"),
|
MessageLookupByLibrary.simpleMessage("Next time"),
|
||||||
"app_upgrade_action_update_now":
|
"app_upgrade_action_update_now":
|
||||||
@ -719,8 +719,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"localization_info_remove_incompatible_translation_params":
|
"localization_info_remove_incompatible_translation_params":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Whether to remove incompatible Localization parameters"),
|
"Whether to remove incompatible Localization parameters"),
|
||||||
"localization_info_translation_status":
|
"localization_info_translation":
|
||||||
MessageLookupByLibrary.simpleMessage("Localization status"),
|
MessageLookupByLibrary.simpleMessage("Game localization"),
|
||||||
"localization_info_unavailable":
|
"localization_info_unavailable":
|
||||||
MessageLookupByLibrary.simpleMessage("Unavailable"),
|
MessageLookupByLibrary.simpleMessage("Unavailable"),
|
||||||
"localization_info_update_time": m40,
|
"localization_info_update_time": m40,
|
||||||
|
|||||||
@ -646,8 +646,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"localization_info_note": MessageLookupByLibrary.simpleMessage("备注:"),
|
"localization_info_note": MessageLookupByLibrary.simpleMessage("备注:"),
|
||||||
"localization_info_remove_incompatible_translation_params":
|
"localization_info_remove_incompatible_translation_params":
|
||||||
MessageLookupByLibrary.simpleMessage("是否移除不兼容的汉化参数"),
|
MessageLookupByLibrary.simpleMessage("是否移除不兼容的汉化参数"),
|
||||||
"localization_info_translation_status":
|
"localization_info_translation":
|
||||||
MessageLookupByLibrary.simpleMessage("汉化状态"),
|
MessageLookupByLibrary.simpleMessage("游戏汉化"),
|
||||||
"localization_info_unavailable":
|
"localization_info_unavailable":
|
||||||
MessageLookupByLibrary.simpleMessage("不可用"),
|
MessageLookupByLibrary.simpleMessage("不可用"),
|
||||||
"localization_info_update_time": m40,
|
"localization_info_update_time": m40,
|
||||||
|
|||||||
@ -649,8 +649,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"localization_info_note": MessageLookupByLibrary.simpleMessage("備註:"),
|
"localization_info_note": MessageLookupByLibrary.simpleMessage("備註:"),
|
||||||
"localization_info_remove_incompatible_translation_params":
|
"localization_info_remove_incompatible_translation_params":
|
||||||
MessageLookupByLibrary.simpleMessage("是否移除不相容的翻譯參數"),
|
MessageLookupByLibrary.simpleMessage("是否移除不相容的翻譯參數"),
|
||||||
"localization_info_translation_status":
|
"localization_info_translation":
|
||||||
MessageLookupByLibrary.simpleMessage("翻譯狀態"),
|
MessageLookupByLibrary.simpleMessage("遊戲翻譯"),
|
||||||
"localization_info_unavailable":
|
"localization_info_unavailable":
|
||||||
MessageLookupByLibrary.simpleMessage("無法使用"),
|
MessageLookupByLibrary.simpleMessage("無法使用"),
|
||||||
"localization_info_update_time": m40,
|
"localization_info_update_time": m40,
|
||||||
|
|||||||
@ -1661,11 +1661,11 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Localization status`
|
/// `Game localization`
|
||||||
String get localization_info_translation_status {
|
String get localization_info_translation {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Localization status',
|
'Game localization',
|
||||||
name: 'localization_info_translation_status',
|
name: 'localization_info_translation',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
);
|
);
|
||||||
@ -3512,10 +3512,10 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Thank you for choosing the SCToolBox box. We are committed to providing you with a safe, convenient and reliable experience. Before you start using your application, please read and agree to the following:\n\n 1. This application is an open source software under the GNU General Public License V3.0 protocol. You can use, modify, and distribute this software freely under the premise of obeying the agreement. Our source code is located at: [github.com/starCitizentoolBox/app] (https://github.com/starCitizantoolBox/app).\n2. The copyright of the Internet content in this application (including but not limited to localized documents, tool websites, news, videos, etc.) is created by its authors and is not part of GPL. Please use it under the corresponding authorization agreement.\n3. The official free release channels for this application are: [Microsoft App Store] (https://apps.microsoft.com/detail/9NF3SWFWNKL1) and [Official Website of Star Citizen Chinese] ), If you get from other third parties, please identify it carefully to avoid suffering from property losses.\n4. This application will send anonymous statistics to our server during use to improve software quality, and we will not collect any personal privacy information of your personal privacy.\n5. This application is supported by the community and has no direct connection with Cloud Imperium Games or other third -party commercial companies.\n6. We provide limited community support. If necessary, please go to the page to learn how to contact us.`
|
/// `Thank you for choosing the SCToolBox box. We are committed to providing you with a safe, convenient and reliable experience. Before you start using your application, please read and agree to the following:\n\n 1. This application is an open source software under the GNU General Public License V3.0 protocol. You can use, modify, and distribute this software freely under the premise of obeying the agreement. Our source code is located at: [Github.com/StarCitizenToolBox/app](https://github.com/StarCitizenToolBox/app).\n2. The copyright of the Internet content in this application (including but not limited to localized documents, tool websites, news, videos, etc.) is created by its authors and is not part of GPL. Please use it under the corresponding authorization agreement.\n3. The official free release channels for this application are: [Microsoft App Store] (https://apps.microsoft.com/detail/9NF3SWFWNKL1) and [Official Website of Star Citizen Chinese] ), If you get from other third parties, please identify it carefully to avoid suffering from property losses.\n4. This application will send anonymous statistics to our server during use to improve software quality, and we will not collect any personal privacy information of your personal privacy.\n5. This application is supported by the community and has no direct connection with Cloud Imperium Games or other third -party commercial companies.\n6. We provide limited community support. If necessary, please go to the page to learn how to contact us.`
|
||||||
String get app_splash_dialog_u_a_p_p_content {
|
String get app_splash_dialog_u_a_p_p_content {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Thank you for choosing the SCToolBox box. We are committed to providing you with a safe, convenient and reliable experience. Before you start using your application, please read and agree to the following:\n\n 1. This application is an open source software under the GNU General Public License V3.0 protocol. You can use, modify, and distribute this software freely under the premise of obeying the agreement. Our source code is located at: [github.com/starCitizentoolBox/app] (https://github.com/starCitizantoolBox/app).\n2. The copyright of the Internet content in this application (including but not limited to localized documents, tool websites, news, videos, etc.) is created by its authors and is not part of GPL. Please use it under the corresponding authorization agreement.\n3. The official free release channels for this application are: [Microsoft App Store] (https://apps.microsoft.com/detail/9NF3SWFWNKL1) and [Official Website of Star Citizen Chinese] ), If you get from other third parties, please identify it carefully to avoid suffering from property losses.\n4. This application will send anonymous statistics to our server during use to improve software quality, and we will not collect any personal privacy information of your personal privacy.\n5. This application is supported by the community and has no direct connection with Cloud Imperium Games or other third -party commercial companies.\n6. We provide limited community support. If necessary, please go to the page to learn how to contact us.',
|
'Thank you for choosing the SCToolBox box. We are committed to providing you with a safe, convenient and reliable experience. Before you start using your application, please read and agree to the following:\n\n 1. This application is an open source software under the GNU General Public License V3.0 protocol. You can use, modify, and distribute this software freely under the premise of obeying the agreement. Our source code is located at: [Github.com/StarCitizenToolBox/app](https://github.com/StarCitizenToolBox/app).\n2. The copyright of the Internet content in this application (including but not limited to localized documents, tool websites, news, videos, etc.) is created by its authors and is not part of GPL. Please use it under the corresponding authorization agreement.\n3. The official free release channels for this application are: [Microsoft App Store] (https://apps.microsoft.com/detail/9NF3SWFWNKL1) and [Official Website of Star Citizen Chinese] ), If you get from other third parties, please identify it carefully to avoid suffering from property losses.\n4. This application will send anonymous statistics to our server during use to improve software quality, and we will not collect any personal privacy information of your personal privacy.\n5. This application is supported by the community and has no direct connection with Cloud Imperium Games or other third -party commercial companies.\n6. We provide limited community support. If necessary, please go to the page to learn how to contact us.',
|
||||||
name: 'app_splash_dialog_u_a_p_p_content',
|
name: 'app_splash_dialog_u_a_p_p_content',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
|
|||||||
@ -323,8 +323,8 @@
|
|||||||
"@home_action_info_warning": {},
|
"@home_action_info_warning": {},
|
||||||
"localization_info_machine_translation_warning": "You are using the game built -in text. The official text is currently a machine translation (as of 3.21.0), and it is recommended that you install community Localization below.",
|
"localization_info_machine_translation_warning": "You are using the game built -in text. The official text is currently a machine translation (as of 3.21.0), and it is recommended that you install community Localization below.",
|
||||||
"@localization_info_machine_translation_warning": {},
|
"@localization_info_machine_translation_warning": {},
|
||||||
"localization_info_translation_status": "Localization status",
|
"localization_info_translation": "Game localization",
|
||||||
"@localization_info_translation_status": {},
|
"@localization_info_translation": {},
|
||||||
"localization_info_enabled": "Enable ({v0}):",
|
"localization_info_enabled": "Enable ({v0}):",
|
||||||
"@localization_info_enabled": {},
|
"@localization_info_enabled": {},
|
||||||
"localization_info_installed_version": "The installed version: {v0}",
|
"localization_info_installed_version": "The installed version: {v0}",
|
||||||
@ -693,7 +693,7 @@
|
|||||||
"@app_common_loading_images": {},
|
"@app_common_loading_images": {},
|
||||||
"app_splash_dialog_u_a_p_p": "User Agreement and Privacy Policy",
|
"app_splash_dialog_u_a_p_p": "User Agreement and Privacy Policy",
|
||||||
"@app_splash_dialog_u_a_p_p": {},
|
"@app_splash_dialog_u_a_p_p": {},
|
||||||
"app_splash_dialog_u_a_p_p_content": "Thank you for choosing the SCToolBox box. We are committed to providing you with a safe, convenient and reliable experience. Before you start using your application, please read and agree to the following:\n\n 1. This application is an open source software under the GNU General Public License V3.0 protocol. You can use, modify, and distribute this software freely under the premise of obeying the agreement. Our source code is located at: [github.com/starCitizentoolBox/app] (https://github.com/starCitizantoolBox/app).\n2. The copyright of the Internet content in this application (including but not limited to localized documents, tool websites, news, videos, etc.) is created by its authors and is not part of GPL. Please use it under the corresponding authorization agreement.\n3. The official free release channels for this application are: [Microsoft App Store] (https://apps.microsoft.com/detail/9NF3SWFWNKL1) and [Official Website of Star Citizen Chinese] ), If you get from other third parties, please identify it carefully to avoid suffering from property losses.\n4. This application will send anonymous statistics to our server during use to improve software quality, and we will not collect any personal privacy information of your personal privacy.\n5. This application is supported by the community and has no direct connection with Cloud Imperium Games or other third -party commercial companies.\n6. We provide limited community support. If necessary, please go to the page to learn how to contact us.",
|
"app_splash_dialog_u_a_p_p_content": "Thank you for choosing the SCToolBox box. We are committed to providing you with a safe, convenient and reliable experience. Before you start using your application, please read and agree to the following:\n\n 1. This application is an open source software under the GNU General Public License V3.0 protocol. You can use, modify, and distribute this software freely under the premise of obeying the agreement. Our source code is located at: [Github.com/StarCitizenToolBox/app](https://github.com/StarCitizenToolBox/app).\n2. The copyright of the Internet content in this application (including but not limited to localized documents, tool websites, news, videos, etc.) is created by its authors and is not part of GPL. Please use it under the corresponding authorization agreement.\n3. The official free release channels for this application are: [Microsoft App Store] (https://apps.microsoft.com/detail/9NF3SWFWNKL1) and [Official Website of Star Citizen Chinese] ), If you get from other third parties, please identify it carefully to avoid suffering from property losses.\n4. This application will send anonymous statistics to our server during use to improve software quality, and we will not collect any personal privacy information of your personal privacy.\n5. This application is supported by the community and has no direct connection with Cloud Imperium Games or other third -party commercial companies.\n6. We provide limited community support. If necessary, please go to the page to learn how to contact us.",
|
||||||
"@app_splash_dialog_u_a_p_p_content": {},
|
"@app_splash_dialog_u_a_p_p_content": {},
|
||||||
"tools_unp4k_msg_init": "Initialization ...",
|
"tools_unp4k_msg_init": "Initialization ...",
|
||||||
"@tools_unp4k_msg_init": {},
|
"@tools_unp4k_msg_init": {},
|
||||||
|
|||||||
@ -322,8 +322,8 @@
|
|||||||
"@home_action_info_warning": {},
|
"@home_action_info_warning": {},
|
||||||
"localization_info_machine_translation_warning": "您正在使用游戏内置文本,官方文本目前为机器翻译(截至3.21.0),建议您在下方安装社区汉化。",
|
"localization_info_machine_translation_warning": "您正在使用游戏内置文本,官方文本目前为机器翻译(截至3.21.0),建议您在下方安装社区汉化。",
|
||||||
"@localization_info_machine_translation_warning": {},
|
"@localization_info_machine_translation_warning": {},
|
||||||
"localization_info_translation_status": "汉化状态",
|
"localization_info_translation": "游戏汉化",
|
||||||
"@localization_info_translation_status": {},
|
"@localization_info_translation": {},
|
||||||
"localization_info_enabled": "启用({v0}):",
|
"localization_info_enabled": "启用({v0}):",
|
||||||
"@localization_info_enabled": {},
|
"@localization_info_enabled": {},
|
||||||
"localization_info_installed_version": "已安装版本:{v0}",
|
"localization_info_installed_version": "已安装版本:{v0}",
|
||||||
|
|||||||
@ -322,8 +322,8 @@
|
|||||||
"@home_action_info_warning": {},
|
"@home_action_info_warning": {},
|
||||||
"localization_info_machine_translation_warning": "您目前正在使用遊戲內建翻譯文件,官方內建文件截止至 3.21.0 都是機器翻譯,建議安裝下方提供的社群翻譯或是來自其他來源的社群翻譯文件。",
|
"localization_info_machine_translation_warning": "您目前正在使用遊戲內建翻譯文件,官方內建文件截止至 3.21.0 都是機器翻譯,建議安裝下方提供的社群翻譯或是來自其他來源的社群翻譯文件。",
|
||||||
"@localization_info_machine_translation_warning": {},
|
"@localization_info_machine_translation_warning": {},
|
||||||
"localization_info_translation_status": "翻譯狀態",
|
"localization_info_translation": "遊戲翻譯",
|
||||||
"@localization_info_translation_status": {},
|
"@localization_info_translation": {},
|
||||||
"localization_info_enabled": "啟用({v0}):",
|
"localization_info_enabled": "啟用({v0}):",
|
||||||
"@localization_info_enabled": {},
|
"@localization_info_enabled": {},
|
||||||
"localization_info_installed_version": "已安裝:{v0}",
|
"localization_info_installed_version": "已安裝:{v0}",
|
||||||
|
|||||||
@ -20,7 +20,9 @@ mixin _$Aria2cModelState {
|
|||||||
Aria2c? get aria2c => throw _privateConstructorUsedError;
|
Aria2c? get aria2c => throw _privateConstructorUsedError;
|
||||||
Aria2GlobalStat? get aria2globalStat => throw _privateConstructorUsedError;
|
Aria2GlobalStat? get aria2globalStat => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of Aria2cModelState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$Aria2cModelStateCopyWith<Aria2cModelState> get copyWith =>
|
$Aria2cModelStateCopyWith<Aria2cModelState> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -45,6 +47,8 @@ class _$Aria2cModelStateCopyWithImpl<$Res, $Val extends Aria2cModelState>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of Aria2cModelState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -89,6 +93,8 @@ class __$$Aria2cModelStateImplCopyWithImpl<$Res>
|
|||||||
$Res Function(_$Aria2cModelStateImpl) _then)
|
$Res Function(_$Aria2cModelStateImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of Aria2cModelState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -159,7 +165,9 @@ class _$Aria2cModelStateImpl
|
|||||||
int get hashCode =>
|
int get hashCode =>
|
||||||
Object.hash(runtimeType, aria2cDir, aria2c, aria2globalStat);
|
Object.hash(runtimeType, aria2cDir, aria2c, aria2globalStat);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of Aria2cModelState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$Aria2cModelStateImplCopyWith<_$Aria2cModelStateImpl> get copyWith =>
|
_$$Aria2cModelStateImplCopyWith<_$Aria2cModelStateImpl> get copyWith =>
|
||||||
@ -179,8 +187,11 @@ abstract class _Aria2cModelState implements Aria2cModelState {
|
|||||||
Aria2c? get aria2c;
|
Aria2c? get aria2c;
|
||||||
@override
|
@override
|
||||||
Aria2GlobalStat? get aria2globalStat;
|
Aria2GlobalStat? get aria2globalStat;
|
||||||
|
|
||||||
|
/// Create a copy of Aria2cModelState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$Aria2cModelStateImplCopyWith<_$Aria2cModelStateImpl> get copyWith =>
|
_$$Aria2cModelStateImplCopyWith<_$Aria2cModelStateImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,7 +26,9 @@ mixin _$Unp4kcState {
|
|||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
String get errorMessage => throw _privateConstructorUsedError;
|
String get errorMessage => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of Unp4kcState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$Unp4kcStateCopyWith<Unp4kcState> get copyWith =>
|
$Unp4kcStateCopyWith<Unp4kcState> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -57,6 +59,8 @@ class _$Unp4kcStateCopyWithImpl<$Res, $Val extends Unp4kcState>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of Unp4kcState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -127,6 +131,8 @@ class __$$Unp4kcStateImplCopyWithImpl<$Res>
|
|||||||
_$Unp4kcStateImpl _value, $Res Function(_$Unp4kcStateImpl) _then)
|
_$Unp4kcStateImpl _value, $Res Function(_$Unp4kcStateImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of Unp4kcState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -255,7 +261,9 @@ class _$Unp4kcStateImpl with DiagnosticableTreeMixin implements _Unp4kcState {
|
|||||||
tempOpenFile,
|
tempOpenFile,
|
||||||
errorMessage);
|
errorMessage);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of Unp4kcState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$Unp4kcStateImplCopyWith<_$Unp4kcStateImpl> get copyWith =>
|
_$$Unp4kcStateImplCopyWith<_$Unp4kcStateImpl> get copyWith =>
|
||||||
@ -286,8 +294,11 @@ abstract class _Unp4kcState implements Unp4kcState {
|
|||||||
MapEntry<String, String>? get tempOpenFile;
|
MapEntry<String, String>? get tempOpenFile;
|
||||||
@override
|
@override
|
||||||
String get errorMessage;
|
String get errorMessage;
|
||||||
|
|
||||||
|
/// Create a copy of Unp4kcState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$Unp4kcStateImplCopyWith<_$Unp4kcStateImpl> get copyWith =>
|
_$$Unp4kcStateImplCopyWith<_$Unp4kcStateImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@ part of 'unp4kc.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$unp4kCModelHash() => r'1fbd18cef164e6c2b40541b2d1d834f01095cd2b';
|
String _$unp4kCModelHash() => r'636da3fe20d1fa94917dd63934f08f8dbffc8a9d';
|
||||||
|
|
||||||
/// See also [Unp4kCModel].
|
/// See also [Unp4kCModel].
|
||||||
@ProviderFor(Unp4kCModel)
|
@ProviderFor(Unp4kCModel)
|
||||||
|
|||||||
@ -63,10 +63,13 @@ class HomeGameLoginUIModel extends _$HomeGameLoginUIModel {
|
|||||||
final webToken = data["webToken"];
|
final webToken = data["webToken"];
|
||||||
final releaseInfo = data["releaseInfo"];
|
final releaseInfo = data["releaseInfo"];
|
||||||
final libraryData = RsiGameLibraryData.fromJson(data["libraryData"]);
|
final libraryData = RsiGameLibraryData.fromJson(data["libraryData"]);
|
||||||
final avatarUrl = data["avatar"]
|
var avatarUrl = data["avatar"]
|
||||||
?.toString()
|
?.toString()
|
||||||
.replaceAll("url(\"", "")
|
.replaceAll("url(\"", "")
|
||||||
.replaceAll("\")", "");
|
.replaceAll("\")", "");
|
||||||
|
if (avatarUrl?.startsWith("/") ?? false) {
|
||||||
|
avatarUrl = "https://robertsspaceindustries.com$avatarUrl";
|
||||||
|
}
|
||||||
final Map<String, dynamic> payload = Jwt.parseJwt(authToken!);
|
final Map<String, dynamic> payload = Jwt.parseJwt(authToken!);
|
||||||
final nickname = payload["nickname"] ?? "";
|
final nickname = payload["nickname"] ?? "";
|
||||||
|
|
||||||
|
|||||||
@ -26,7 +26,9 @@ mixin _$HomeGameLoginState {
|
|||||||
String? get installPath => throw _privateConstructorUsedError;
|
String? get installPath => throw _privateConstructorUsedError;
|
||||||
bool? get isDeviceSupportWinHello => throw _privateConstructorUsedError;
|
bool? get isDeviceSupportWinHello => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of HomeGameLoginState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$HomeGameLoginStateCopyWith<HomeGameLoginState> get copyWith =>
|
$HomeGameLoginStateCopyWith<HomeGameLoginState> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -59,6 +61,8 @@ class _$HomeGameLoginStateCopyWithImpl<$Res, $Val extends HomeGameLoginState>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of HomeGameLoginState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -141,6 +145,8 @@ class __$$LoginStatusImplCopyWithImpl<$Res>
|
|||||||
_$LoginStatusImpl _value, $Res Function(_$LoginStatusImpl) _then)
|
_$LoginStatusImpl _value, $Res Function(_$LoginStatusImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of HomeGameLoginState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -281,7 +287,9 @@ class _$LoginStatusImpl implements _LoginStatus {
|
|||||||
installPath,
|
installPath,
|
||||||
isDeviceSupportWinHello);
|
isDeviceSupportWinHello);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of HomeGameLoginState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$LoginStatusImplCopyWith<_$LoginStatusImpl> get copyWith =>
|
_$$LoginStatusImplCopyWith<_$LoginStatusImpl> get copyWith =>
|
||||||
@ -318,8 +326,11 @@ abstract class _LoginStatus implements HomeGameLoginState {
|
|||||||
String? get installPath;
|
String? get installPath;
|
||||||
@override
|
@override
|
||||||
bool? get isDeviceSupportWinHello;
|
bool? get isDeviceSupportWinHello;
|
||||||
|
|
||||||
|
/// Create a copy of HomeGameLoginState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$LoginStatusImplCopyWith<_$LoginStatusImpl> get copyWith =>
|
_$$LoginStatusImplCopyWith<_$LoginStatusImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,7 +21,9 @@ mixin _$HomeDownloaderUIState {
|
|||||||
List<Aria2Task> get stoppedTasks => throw _privateConstructorUsedError;
|
List<Aria2Task> get stoppedTasks => throw _privateConstructorUsedError;
|
||||||
Aria2GlobalStat? get globalStat => throw _privateConstructorUsedError;
|
Aria2GlobalStat? get globalStat => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of HomeDownloaderUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$HomeDownloaderUIStateCopyWith<HomeDownloaderUIState> get copyWith =>
|
$HomeDownloaderUIStateCopyWith<HomeDownloaderUIState> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -50,6 +52,8 @@ class _$HomeDownloaderUIStateCopyWithImpl<$Res,
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of HomeDownloaderUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -104,6 +108,8 @@ class __$$HomeDownloaderUIStateImplCopyWithImpl<$Res>
|
|||||||
$Res Function(_$HomeDownloaderUIStateImpl) _then)
|
$Res Function(_$HomeDownloaderUIStateImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of HomeDownloaderUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -202,7 +208,9 @@ class _$HomeDownloaderUIStateImpl implements _HomeDownloaderUIState {
|
|||||||
const DeepCollectionEquality().hash(_stoppedTasks),
|
const DeepCollectionEquality().hash(_stoppedTasks),
|
||||||
globalStat);
|
globalStat);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of HomeDownloaderUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$HomeDownloaderUIStateImplCopyWith<_$HomeDownloaderUIStateImpl>
|
_$$HomeDownloaderUIStateImplCopyWith<_$HomeDownloaderUIStateImpl>
|
||||||
@ -225,8 +233,11 @@ abstract class _HomeDownloaderUIState implements HomeDownloaderUIState {
|
|||||||
List<Aria2Task> get stoppedTasks;
|
List<Aria2Task> get stoppedTasks;
|
||||||
@override
|
@override
|
||||||
Aria2GlobalStat? get globalStat;
|
Aria2GlobalStat? get globalStat;
|
||||||
|
|
||||||
|
/// Create a copy of HomeDownloaderUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$HomeDownloaderUIStateImplCopyWith<_$HomeDownloaderUIStateImpl>
|
_$$HomeDownloaderUIStateImplCopyWith<_$HomeDownloaderUIStateImpl>
|
||||||
get copyWith => throw _privateConstructorUsedError;
|
get copyWith => throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,7 +23,9 @@ mixin _$HomeGameDoctorState {
|
|||||||
List<MapEntry<String, String>>? get checkResult =>
|
List<MapEntry<String, String>>? get checkResult =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of HomeGameDoctorState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$HomeGameDoctorStateCopyWith<HomeGameDoctorState> get copyWith =>
|
$HomeGameDoctorStateCopyWith<HomeGameDoctorState> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -52,6 +54,8 @@ class _$HomeGameDoctorStateCopyWithImpl<$Res, $Val extends HomeGameDoctorState>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of HomeGameDoctorState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -110,6 +114,8 @@ class __$$HomeGameDoctorStateImplCopyWithImpl<$Res>
|
|||||||
$Res Function(_$HomeGameDoctorStateImpl) _then)
|
$Res Function(_$HomeGameDoctorStateImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of HomeGameDoctorState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -208,7 +214,9 @@ class _$HomeGameDoctorStateImpl implements _HomeGameDoctorState {
|
|||||||
isFixingString,
|
isFixingString,
|
||||||
const DeepCollectionEquality().hash(_checkResult));
|
const DeepCollectionEquality().hash(_checkResult));
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of HomeGameDoctorState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$HomeGameDoctorStateImplCopyWith<_$HomeGameDoctorStateImpl> get copyWith =>
|
_$$HomeGameDoctorStateImplCopyWith<_$HomeGameDoctorStateImpl> get copyWith =>
|
||||||
@ -235,8 +243,11 @@ abstract class _HomeGameDoctorState implements HomeGameDoctorState {
|
|||||||
String get isFixingString;
|
String get isFixingString;
|
||||||
@override
|
@override
|
||||||
List<MapEntry<String, String>>? get checkResult;
|
List<MapEntry<String, String>>? get checkResult;
|
||||||
|
|
||||||
|
/// Create a copy of HomeGameDoctorState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$HomeGameDoctorStateImplCopyWith<_$HomeGameDoctorStateImpl> get copyWith =>
|
_$$HomeGameDoctorStateImplCopyWith<_$HomeGameDoctorStateImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@ part of 'game_doctor_ui_model.dart';
|
|||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$homeGameDoctorUIModelHash() =>
|
String _$homeGameDoctorUIModelHash() =>
|
||||||
r'137f6393bbbd76f3af0f7d0dd27d44d8473e42cc';
|
r'b69a19a937ca375214a7c7e73b8288f577265625';
|
||||||
|
|
||||||
/// See also [HomeGameDoctorUIModel].
|
/// See also [HomeGameDoctorUIModel].
|
||||||
@ProviderFor(HomeGameDoctorUIModel)
|
@ProviderFor(HomeGameDoctorUIModel)
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:starcitizen_doctor/api/analytics.dart';
|
import 'package:starcitizen_doctor/api/analytics.dart';
|
||||||
import 'package:starcitizen_doctor/common/helper/system_helper.dart';
|
|
||||||
import 'package:starcitizen_doctor/ui/tools/tools_ui_model.dart';
|
import 'package:starcitizen_doctor/ui/tools/tools_ui_model.dart';
|
||||||
import 'package:starcitizen_doctor/widgets/widgets.dart';
|
import 'package:starcitizen_doctor/widgets/widgets.dart';
|
||||||
import 'package:url_launcher/url_launcher_string.dart';
|
import 'package:url_launcher/url_launcher_string.dart';
|
||||||
@ -168,15 +167,6 @@ class HomeUI extends HookConsumerWidget {
|
|||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
const SizedBox(width: 12),
|
const SizedBox(width: 12),
|
||||||
Button(
|
|
||||||
onPressed: () =>
|
|
||||||
SystemHelper.openDir("${homeState.scInstalledPath}"),
|
|
||||||
child: const Padding(
|
|
||||||
padding: EdgeInsets.all(6),
|
|
||||||
child: Icon(FluentIcons.folder_open),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(width: 12),
|
|
||||||
Button(
|
Button(
|
||||||
onPressed: model.reScanPath,
|
onPressed: model.reScanPath,
|
||||||
child: const Padding(
|
child: const Padding(
|
||||||
|
|||||||
@ -33,7 +33,9 @@ mixin _$HomeUIModelState {
|
|||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
Map<String, bool> get isGameRunning => throw _privateConstructorUsedError;
|
Map<String, bool> get isGameRunning => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of HomeUIModelState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$HomeUIModelStateCopyWith<HomeUIModelState> get copyWith =>
|
$HomeUIModelStateCopyWith<HomeUIModelState> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -70,6 +72,8 @@ class _$HomeUIModelStateCopyWithImpl<$Res, $Val extends HomeUIModelState>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of HomeUIModelState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -176,6 +180,8 @@ class __$$HomeUIModelStateImplCopyWithImpl<$Res>
|
|||||||
$Res Function(_$HomeUIModelStateImpl) _then)
|
$Res Function(_$HomeUIModelStateImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of HomeUIModelState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -407,7 +413,9 @@ class _$HomeUIModelStateImpl implements _HomeUIModelState {
|
|||||||
const DeepCollectionEquality().hash(_countdownFestivalListData),
|
const DeepCollectionEquality().hash(_countdownFestivalListData),
|
||||||
const DeepCollectionEquality().hash(_isGameRunning));
|
const DeepCollectionEquality().hash(_isGameRunning));
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of HomeUIModelState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$HomeUIModelStateImplCopyWith<_$HomeUIModelStateImpl> get copyWith =>
|
_$$HomeUIModelStateImplCopyWith<_$HomeUIModelStateImpl> get copyWith =>
|
||||||
@ -457,8 +465,11 @@ abstract class _HomeUIModelState implements HomeUIModelState {
|
|||||||
List<CountdownFestivalItemData>? get countdownFestivalListData;
|
List<CountdownFestivalItemData>? get countdownFestivalListData;
|
||||||
@override
|
@override
|
||||||
Map<String, bool> get isGameRunning;
|
Map<String, bool> get isGameRunning;
|
||||||
|
|
||||||
|
/// Create a copy of HomeUIModelState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$HomeUIModelStateImplCopyWith<_$HomeUIModelStateImpl> get copyWith =>
|
_$$HomeUIModelStateImplCopyWith<_$HomeUIModelStateImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,7 +28,9 @@ mixin _$AdvancedLocalizationUIState {
|
|||||||
int get serverGlobalIniLines => throw _privateConstructorUsedError;
|
int get serverGlobalIniLines => throw _privateConstructorUsedError;
|
||||||
String get errorMessage => throw _privateConstructorUsedError;
|
String get errorMessage => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of AdvancedLocalizationUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$AdvancedLocalizationUIStateCopyWith<AdvancedLocalizationUIState>
|
$AdvancedLocalizationUIStateCopyWith<AdvancedLocalizationUIState>
|
||||||
get copyWith => throw _privateConstructorUsedError;
|
get copyWith => throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -64,6 +66,8 @@ class _$AdvancedLocalizationUIStateCopyWithImpl<$Res,
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of AdvancedLocalizationUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -149,6 +153,8 @@ class __$$AdvancedLocalizationUIStateImplCopyWithImpl<$Res>
|
|||||||
$Res Function(_$AdvancedLocalizationUIStateImpl) _then)
|
$Res Function(_$AdvancedLocalizationUIStateImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of AdvancedLocalizationUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -309,7 +315,9 @@ class _$AdvancedLocalizationUIStateImpl
|
|||||||
serverGlobalIniLines,
|
serverGlobalIniLines,
|
||||||
errorMessage);
|
errorMessage);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of AdvancedLocalizationUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$AdvancedLocalizationUIStateImplCopyWith<_$AdvancedLocalizationUIStateImpl>
|
_$$AdvancedLocalizationUIStateImplCopyWith<_$AdvancedLocalizationUIStateImpl>
|
||||||
@ -348,8 +356,11 @@ abstract class _AdvancedLocalizationUIState
|
|||||||
int get serverGlobalIniLines;
|
int get serverGlobalIniLines;
|
||||||
@override
|
@override
|
||||||
String get errorMessage;
|
String get errorMessage;
|
||||||
|
|
||||||
|
/// Create a copy of AdvancedLocalizationUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$AdvancedLocalizationUIStateImplCopyWith<_$AdvancedLocalizationUIStateImpl>
|
_$$AdvancedLocalizationUIStateImplCopyWith<_$AdvancedLocalizationUIStateImpl>
|
||||||
get copyWith => throw _privateConstructorUsedError;
|
get copyWith => throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@ part of 'advanced_localization_ui_model.dart';
|
|||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$advancedLocalizationUIModelHash() =>
|
String _$advancedLocalizationUIModelHash() =>
|
||||||
r'096e175ecfef1defcb1dfcf657c7d0f6d4a164fa';
|
r'8241143c6dec93cd705e6b2e65cbca711cdfe2fb';
|
||||||
|
|
||||||
/// See also [AdvancedLocalizationUIModel].
|
/// See also [AdvancedLocalizationUIModel].
|
||||||
@ProviderFor(AdvancedLocalizationUIModel)
|
@ProviderFor(AdvancedLocalizationUIModel)
|
||||||
|
|||||||
@ -77,8 +77,9 @@ class LocalizationDialogUI extends HookConsumerWidget {
|
|||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
makeToolsListContainer(context, model, state),
|
||||||
makeListContainer(
|
makeListContainer(
|
||||||
S.current.localization_info_translation_status,
|
S.current.localization_info_translation,
|
||||||
[
|
[
|
||||||
if (state.patchStatus == null)
|
if (state.patchStatus == null)
|
||||||
makeLoading(context)
|
makeLoading(context)
|
||||||
@ -140,30 +141,41 @@ class LocalizationDialogUI extends HookConsumerWidget {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
const SizedBox(height: 12),
|
||||||
|
Container(
|
||||||
|
color: Colors.white.withOpacity(.1),
|
||||||
|
height: 1,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 12),
|
||||||
|
if (state.apiLocalizationData == null)
|
||||||
|
makeLoading(context)
|
||||||
|
else if (state.apiLocalizationData!.isEmpty)
|
||||||
|
Center(
|
||||||
|
child: Text(
|
||||||
|
S.current
|
||||||
|
.localization_info_no_translation_available,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 13,
|
||||||
|
color: Colors.white.withOpacity(.8)),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
else
|
||||||
|
AlignedGridView.count(
|
||||||
|
crossAxisCount: 2,
|
||||||
|
crossAxisSpacing: 12,
|
||||||
|
mainAxisSpacing: 12,
|
||||||
|
itemBuilder: (BuildContext context, int index) {
|
||||||
|
final item = state.apiLocalizationData!.entries
|
||||||
|
.elementAt(index);
|
||||||
|
return makeRemoteList(context, model, item, state);
|
||||||
|
},
|
||||||
|
shrinkWrap: true,
|
||||||
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
|
itemCount: state.apiLocalizationData?.length ?? 0,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
context),
|
context),
|
||||||
makeListContainer(
|
|
||||||
S.current.localization_info_community_translation,
|
|
||||||
[
|
|
||||||
if (state.apiLocalizationData == null)
|
|
||||||
makeLoading(context)
|
|
||||||
else if (state.apiLocalizationData!.isEmpty)
|
|
||||||
Center(
|
|
||||||
child: Text(
|
|
||||||
S.current.localization_info_no_translation_available,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 13,
|
|
||||||
color: Colors.white.withOpacity(.8)),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
else
|
|
||||||
for (final item in state.apiLocalizationData!.entries)
|
|
||||||
makeRemoteList(context, model, item, state),
|
|
||||||
],
|
|
||||||
context,
|
|
||||||
gridViewMode: true),
|
|
||||||
makeToolsListContainer(context, model, state),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -297,7 +297,7 @@ class LocalizationUIModel extends _$LocalizationUIModel {
|
|||||||
for (var value
|
for (var value
|
||||||
in (element.rawContent?.readString() ?? "").split("\n")) {
|
in (element.rawContent?.readString() ?? "").split("\n")) {
|
||||||
final tv = value.trim();
|
final tv = value.trim();
|
||||||
if (tv.isNotEmpty) globalIni.writeln(tv);
|
if (tv.isNotEmpty) globalIni.writeln(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,7 +24,9 @@ mixin _$LocalizationUIState {
|
|||||||
bool? get isInstalledAdvanced => throw _privateConstructorUsedError;
|
bool? get isInstalledAdvanced => throw _privateConstructorUsedError;
|
||||||
List<String>? get customizeList => throw _privateConstructorUsedError;
|
List<String>? get customizeList => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of LocalizationUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$LocalizationUIStateCopyWith<LocalizationUIState> get copyWith =>
|
$LocalizationUIStateCopyWith<LocalizationUIState> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -54,6 +56,8 @@ class _$LocalizationUIStateCopyWithImpl<$Res, $Val extends LocalizationUIState>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of LocalizationUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -118,6 +122,8 @@ class __$$LocalizationUIStateImplCopyWithImpl<$Res>
|
|||||||
$Res Function(_$LocalizationUIStateImpl) _then)
|
$Res Function(_$LocalizationUIStateImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of LocalizationUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -234,7 +240,9 @@ class _$LocalizationUIStateImpl implements _LocalizationUIState {
|
|||||||
isInstalledAdvanced,
|
isInstalledAdvanced,
|
||||||
const DeepCollectionEquality().hash(_customizeList));
|
const DeepCollectionEquality().hash(_customizeList));
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of LocalizationUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$LocalizationUIStateImplCopyWith<_$LocalizationUIStateImpl> get copyWith =>
|
_$$LocalizationUIStateImplCopyWith<_$LocalizationUIStateImpl> get copyWith =>
|
||||||
@ -263,8 +271,11 @@ abstract class _LocalizationUIState implements LocalizationUIState {
|
|||||||
bool? get isInstalledAdvanced;
|
bool? get isInstalledAdvanced;
|
||||||
@override
|
@override
|
||||||
List<String>? get customizeList;
|
List<String>? get customizeList;
|
||||||
|
|
||||||
|
/// Create a copy of LocalizationUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$LocalizationUIStateImplCopyWith<_$LocalizationUIStateImpl> get copyWith =>
|
_$$LocalizationUIStateImplCopyWith<_$LocalizationUIStateImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@ part of 'localization_ui_model.dart';
|
|||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$localizationUIModelHash() =>
|
String _$localizationUIModelHash() =>
|
||||||
r'6fec8805faaafb12e1409fcbb9b0b28d3c4730ce';
|
r'd08a3d100c72b3f1f4a6c96944d4a73bb3c21808';
|
||||||
|
|
||||||
/// See also [LocalizationUIModel].
|
/// See also [LocalizationUIModel].
|
||||||
@ProviderFor(LocalizationUIModel)
|
@ProviderFor(LocalizationUIModel)
|
||||||
|
|||||||
@ -22,7 +22,9 @@ mixin _$HomePerformanceUIState {
|
|||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
String get workingString => throw _privateConstructorUsedError;
|
String get workingString => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of HomePerformanceUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$HomePerformanceUIStateCopyWith<HomePerformanceUIState> get copyWith =>
|
$HomePerformanceUIStateCopyWith<HomePerformanceUIState> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -51,6 +53,8 @@ class _$HomePerformanceUIStateCopyWithImpl<$Res,
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of HomePerformanceUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -106,6 +110,8 @@ class __$$HomePerformanceUIStateImplCopyWithImpl<$Res>
|
|||||||
$Res Function(_$HomePerformanceUIStateImpl) _then)
|
$Res Function(_$HomePerformanceUIStateImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of HomePerformanceUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -194,7 +200,9 @@ class _$HomePerformanceUIStateImpl implements _HomePerformanceUIState {
|
|||||||
const DeepCollectionEquality().hash(_performanceMap),
|
const DeepCollectionEquality().hash(_performanceMap),
|
||||||
workingString);
|
workingString);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of HomePerformanceUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$HomePerformanceUIStateImplCopyWith<_$HomePerformanceUIStateImpl>
|
_$$HomePerformanceUIStateImplCopyWith<_$HomePerformanceUIStateImpl>
|
||||||
@ -217,8 +225,11 @@ abstract class _HomePerformanceUIState implements HomePerformanceUIState {
|
|||||||
Map<String, List<GamePerformanceData>>? get performanceMap;
|
Map<String, List<GamePerformanceData>>? get performanceMap;
|
||||||
@override
|
@override
|
||||||
String get workingString;
|
String get workingString;
|
||||||
|
|
||||||
|
/// Create a copy of HomePerformanceUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$HomePerformanceUIStateImplCopyWith<_$HomePerformanceUIStateImpl>
|
_$$HomePerformanceUIStateImplCopyWith<_$HomePerformanceUIStateImpl>
|
||||||
get copyWith => throw _privateConstructorUsedError;
|
get copyWith => throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -92,8 +92,9 @@ class SettingsUIModel extends _$SettingsUIModel {
|
|||||||
if (r == null || r.files.firstOrNull?.path == null) return;
|
if (r == null || r.files.firstOrNull?.path == null) return;
|
||||||
final fileName = r.files.first.path!;
|
final fileName = r.files.first.path!;
|
||||||
dPrint(fileName);
|
dPrint(fileName);
|
||||||
final fileNameRegExp =
|
final fileNameRegExp = RegExp(
|
||||||
RegExp(r"^(.*\\StarCitizen\\.*\\)Bin64\\StarCitizen\.exe$");
|
r"^(.*\\StarCitizen\\.*\\)Bin64\\StarCitizen\.exe$",
|
||||||
|
caseSensitive: false);
|
||||||
if (fileNameRegExp.hasMatch(fileName)) {
|
if (fileNameRegExp.hasMatch(fileName)) {
|
||||||
RegExp pathRegex = RegExp(r"\\[^\\]+\\Bin64\\StarCitizen\.exe$");
|
RegExp pathRegex = RegExp(r"\\[^\\]+\\Bin64\\StarCitizen\.exe$");
|
||||||
String extractedPath = fileName.replaceFirst(pathRegex, '');
|
String extractedPath = fileName.replaceFirst(pathRegex, '');
|
||||||
|
|||||||
@ -22,7 +22,9 @@ mixin _$SettingsUIState {
|
|||||||
String? get customGamePath => throw _privateConstructorUsedError;
|
String? get customGamePath => throw _privateConstructorUsedError;
|
||||||
int get locationCacheSize => throw _privateConstructorUsedError;
|
int get locationCacheSize => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of SettingsUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$SettingsUIStateCopyWith<SettingsUIState> get copyWith =>
|
$SettingsUIStateCopyWith<SettingsUIState> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -51,6 +53,8 @@ class _$SettingsUIStateCopyWithImpl<$Res, $Val extends SettingsUIState>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of SettingsUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -109,6 +113,8 @@ class __$$SettingsUIStateImplCopyWithImpl<$Res>
|
|||||||
_$SettingsUIStateImpl _value, $Res Function(_$SettingsUIStateImpl) _then)
|
_$SettingsUIStateImpl _value, $Res Function(_$SettingsUIStateImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of SettingsUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -199,7 +205,9 @@ class _$SettingsUIStateImpl implements _SettingsUIState {
|
|||||||
customGamePath,
|
customGamePath,
|
||||||
locationCacheSize);
|
locationCacheSize);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of SettingsUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$SettingsUIStateImplCopyWith<_$SettingsUIStateImpl> get copyWith =>
|
_$$SettingsUIStateImplCopyWith<_$SettingsUIStateImpl> get copyWith =>
|
||||||
@ -225,8 +233,11 @@ abstract class _SettingsUIState implements SettingsUIState {
|
|||||||
String? get customGamePath;
|
String? get customGamePath;
|
||||||
@override
|
@override
|
||||||
int get locationCacheSize;
|
int get locationCacheSize;
|
||||||
|
|
||||||
|
/// Create a copy of SettingsUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$SettingsUIStateImplCopyWith<_$SettingsUIStateImpl> get copyWith =>
|
_$$SettingsUIStateImplCopyWith<_$SettingsUIStateImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,7 +23,9 @@ mixin _$RSILauncherStateData {
|
|||||||
String? get enabledLocalization => throw _privateConstructorUsedError;
|
String? get enabledLocalization => throw _privateConstructorUsedError;
|
||||||
bool? get enableDownloaderBoost => throw _privateConstructorUsedError;
|
bool? get enableDownloaderBoost => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of RSILauncherStateData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$RSILauncherStateDataCopyWith<RSILauncherStateData> get copyWith =>
|
$RSILauncherStateDataCopyWith<RSILauncherStateData> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -54,6 +56,8 @@ class _$RSILauncherStateDataCopyWithImpl<$Res,
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of RSILauncherStateData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -118,6 +122,8 @@ class __$$RSILauncherStateDataImplCopyWithImpl<$Res>
|
|||||||
$Res Function(_$RSILauncherStateDataImpl) _then)
|
$Res Function(_$RSILauncherStateDataImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of RSILauncherStateData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -208,7 +214,9 @@ class _$RSILauncherStateDataImpl implements _RSILauncherStateData {
|
|||||||
int get hashCode => Object.hash(runtimeType, version, data, serverData,
|
int get hashCode => Object.hash(runtimeType, version, data, serverData,
|
||||||
isPatchInstalled, enabledLocalization, enableDownloaderBoost);
|
isPatchInstalled, enabledLocalization, enableDownloaderBoost);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of RSILauncherStateData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$RSILauncherStateDataImplCopyWith<_$RSILauncherStateDataImpl>
|
_$$RSILauncherStateDataImplCopyWith<_$RSILauncherStateDataImpl>
|
||||||
@ -238,8 +246,11 @@ abstract class _RSILauncherStateData implements RSILauncherStateData {
|
|||||||
String? get enabledLocalization;
|
String? get enabledLocalization;
|
||||||
@override
|
@override
|
||||||
bool? get enableDownloaderBoost;
|
bool? get enableDownloaderBoost;
|
||||||
|
|
||||||
|
/// Create a copy of RSILauncherStateData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$RSILauncherStateDataImplCopyWith<_$RSILauncherStateDataImpl>
|
_$$RSILauncherStateDataImplCopyWith<_$RSILauncherStateDataImpl>
|
||||||
get copyWith => throw _privateConstructorUsedError;
|
get copyWith => throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -220,7 +220,14 @@ class ToolsUI extends HookConsumerWidget {
|
|||||||
padding: EdgeInsets.all(6),
|
padding: EdgeInsets.all(6),
|
||||||
child: Icon(FluentIcons.folder_open),
|
child: Icon(FluentIcons.folder_open),
|
||||||
),
|
),
|
||||||
onPressed: () => model.openDir(state.scInstalledPath))
|
onPressed: () {
|
||||||
|
if (state.scInstalledPath.trim().isEmpty) {
|
||||||
|
showToast(context,
|
||||||
|
S.current.tools_action_info_star_citizen_not_found);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
model.openDir(state.scInstalledPath);
|
||||||
|
})
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -258,7 +265,16 @@ class ToolsUI extends HookConsumerWidget {
|
|||||||
padding: EdgeInsets.all(6),
|
padding: EdgeInsets.all(6),
|
||||||
child: Icon(FluentIcons.folder_open),
|
child: Icon(FluentIcons.folder_open),
|
||||||
),
|
),
|
||||||
onPressed: () => model.openDir(state.rsiLauncherInstalledPath))
|
onPressed: () {
|
||||||
|
if (state.scInstalledPath.trim().isEmpty) {
|
||||||
|
showToast(
|
||||||
|
context,
|
||||||
|
S.current
|
||||||
|
.tools_rsi_launcher_enhance_msg_error_launcher_notfound);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
model.openDir(state.rsiLauncherInstalledPath);
|
||||||
|
})
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -129,9 +129,6 @@ class ToolsUIModel extends _$ToolsUIModel {
|
|||||||
items.add(await _addPhotographyCard(context));
|
items.add(await _addPhotographyCard(context));
|
||||||
state = state.copyWith(items: items);
|
state = state.copyWith(items: items);
|
||||||
if (!context.mounted) return;
|
if (!context.mounted) return;
|
||||||
items.addAll(await _addLogCard(context));
|
|
||||||
state = state.copyWith(items: items);
|
|
||||||
if (!context.mounted) return;
|
|
||||||
items.addAll(await _addNvmePatchCard(context));
|
items.addAll(await _addNvmePatchCard(context));
|
||||||
state = state.copyWith(items: items, isItemLoading: false);
|
state = state.copyWith(items: items, isItemLoading: false);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -140,26 +137,6 @@ class ToolsUIModel extends _$ToolsUIModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<ToolsItemData>> _addLogCard(BuildContext context) async {
|
|
||||||
double logPathLen = 0;
|
|
||||||
try {
|
|
||||||
logPathLen =
|
|
||||||
(await File(await SCLoggerHelper.getLogFilePath() ?? "").length()) /
|
|
||||||
1024 /
|
|
||||||
1024;
|
|
||||||
} catch (_) {}
|
|
||||||
return [
|
|
||||||
ToolsItemData(
|
|
||||||
"rsilauncher_log_fix",
|
|
||||||
S.current.tools_action_rsi_launcher_log_fix,
|
|
||||||
S.current.tools_action_info_rsi_launcher_log_issue(
|
|
||||||
logPathLen.toStringAsFixed(4)),
|
|
||||||
const Icon(FontAwesomeIcons.bookBible, size: 24),
|
|
||||||
onTap: () => _rsiLogFix(context),
|
|
||||||
),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<List<ToolsItemData>> _addNvmePatchCard(BuildContext context) async {
|
Future<List<ToolsItemData>> _addNvmePatchCard(BuildContext context) async {
|
||||||
final nvmePatchStatus = await SystemHelper.checkNvmePatchStatus();
|
final nvmePatchStatus = await SystemHelper.checkNvmePatchStatus();
|
||||||
return [
|
return [
|
||||||
@ -353,28 +330,6 @@ class ToolsUIModel extends _$ToolsUIModel {
|
|||||||
SystemHelper.checkAndLaunchRSILauncher(state.rsiLauncherInstalledPath);
|
SystemHelper.checkAndLaunchRSILauncher(state.rsiLauncherInstalledPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _rsiLogFix(BuildContext context) async {
|
|
||||||
state = state.copyWith(working: true);
|
|
||||||
final path = await SCLoggerHelper.getLogFilePath();
|
|
||||||
if (!await File(path!).exists()) {
|
|
||||||
if (!context.mounted) return;
|
|
||||||
showToast(context, S.current.tools_action_info_log_file_not_exist);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
SystemHelper.killRSILauncher();
|
|
||||||
await File(path).delete(recursive: true);
|
|
||||||
if (!context.mounted) return;
|
|
||||||
showToast(context, S.current.tools_action_info_cleanup_complete);
|
|
||||||
SystemHelper.checkAndLaunchRSILauncher(state.rsiLauncherInstalledPath);
|
|
||||||
} catch (_) {
|
|
||||||
if (!context.mounted) return;
|
|
||||||
showToast(context, S.current.tools_action_info_cleanup_failed(path));
|
|
||||||
}
|
|
||||||
|
|
||||||
state = state.copyWith(working: false);
|
|
||||||
}
|
|
||||||
|
|
||||||
openDir(path) async {
|
openDir(path) async {
|
||||||
SystemHelper.openDir(path);
|
SystemHelper.openDir(path);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,7 +25,9 @@ mixin _$ToolsUIState {
|
|||||||
List<ToolsItemData> get items => throw _privateConstructorUsedError;
|
List<ToolsItemData> get items => throw _privateConstructorUsedError;
|
||||||
bool get isItemLoading => throw _privateConstructorUsedError;
|
bool get isItemLoading => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of ToolsUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$ToolsUIStateCopyWith<ToolsUIState> get copyWith =>
|
$ToolsUIStateCopyWith<ToolsUIState> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -56,6 +58,8 @@ class _$ToolsUIStateCopyWithImpl<$Res, $Val extends ToolsUIState>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of ToolsUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -126,6 +130,8 @@ class __$$ToolsUIStateImplCopyWithImpl<$Res>
|
|||||||
_$ToolsUIStateImpl _value, $Res Function(_$ToolsUIStateImpl) _then)
|
_$ToolsUIStateImpl _value, $Res Function(_$ToolsUIStateImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of ToolsUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -262,7 +268,9 @@ class _$ToolsUIStateImpl implements _ToolsUIState {
|
|||||||
const DeepCollectionEquality().hash(_items),
|
const DeepCollectionEquality().hash(_items),
|
||||||
isItemLoading);
|
isItemLoading);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of ToolsUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$ToolsUIStateImplCopyWith<_$ToolsUIStateImpl> get copyWith =>
|
_$$ToolsUIStateImplCopyWith<_$ToolsUIStateImpl> get copyWith =>
|
||||||
@ -293,8 +301,11 @@ abstract class _ToolsUIState implements ToolsUIState {
|
|||||||
List<ToolsItemData> get items;
|
List<ToolsItemData> get items;
|
||||||
@override
|
@override
|
||||||
bool get isItemLoading;
|
bool get isItemLoading;
|
||||||
|
|
||||||
|
/// Create a copy of ToolsUIState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$ToolsUIStateImplCopyWith<_$ToolsUIStateImpl> get copyWith =>
|
_$$ToolsUIStateImplCopyWith<_$ToolsUIStateImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@ part of 'tools_ui_model.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$toolsUIModelHash() => r'668c16bdd42448a4dd323fc84da8dc96641a0751';
|
String _$toolsUIModelHash() => r'b61ae444063db4c550fbf71e724eddd0f7104dc5';
|
||||||
|
|
||||||
/// See also [ToolsUIModel].
|
/// See also [ToolsUIModel].
|
||||||
@ProviderFor(ToolsUIModel)
|
@ProviderFor(ToolsUIModel)
|
||||||
|
|||||||
@ -193,8 +193,6 @@ class WebViewModel {
|
|||||||
webview.close();
|
webview.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Future.delayed(const Duration(seconds: 1))
|
|
||||||
.then((value) => {webview.setWebviewWindowVisibility(false)});
|
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
showToast(context, S.current.app_init_failed_with_reason(e));
|
showToast(context, S.current.app_init_failed_with_reason(e));
|
||||||
|
|||||||
12
pubspec.yaml
12
pubspec.yaml
@ -18,7 +18,7 @@ dependencies:
|
|||||||
hooks_riverpod: ^2.4.10
|
hooks_riverpod: ^2.4.10
|
||||||
json_annotation: ^4.8.1
|
json_annotation: ^4.8.1
|
||||||
go_router: ^14.0.1
|
go_router: ^14.0.1
|
||||||
window_manager: ^0.3.9
|
window_manager: ^0.4.0
|
||||||
fluent_ui: ^4.8.6
|
fluent_ui: ^4.8.6
|
||||||
flutter_staggered_grid_view: ^0.7.0
|
flutter_staggered_grid_view: ^0.7.0
|
||||||
flutter_acrylic: ^1.1.4
|
flutter_acrylic: ^1.1.4
|
||||||
@ -42,7 +42,7 @@ dependencies:
|
|||||||
flutter_tilt: ^3.0.0
|
flutter_tilt: ^3.0.0
|
||||||
card_swiper: ^3.0.1
|
card_swiper: ^3.0.1
|
||||||
ffi: ^2.1.0
|
ffi: ^2.1.0
|
||||||
flutter_rust_bridge: ^2.1.0
|
flutter_rust_bridge: 2.4.0
|
||||||
freezed_annotation: ^2.4.1
|
freezed_annotation: ^2.4.1
|
||||||
meta: ^1.9.1
|
meta: ^1.9.1
|
||||||
hexcolor: ^3.0.1
|
hexcolor: ^3.0.1
|
||||||
@ -61,7 +61,7 @@ dependencies:
|
|||||||
synchronized: ^3.1.0+1
|
synchronized: ^3.1.0+1
|
||||||
super_sliver_list: ^0.4.1
|
super_sliver_list: ^0.4.1
|
||||||
file: ^7.0.0
|
file: ^7.0.0
|
||||||
re_editor: ^0.3.0
|
re_editor: ^0.4.0
|
||||||
re_highlight: ^0.0.3
|
re_highlight: ^0.0.3
|
||||||
dependency_overrides:
|
dependency_overrides:
|
||||||
http: ^1.1.2
|
http: ^1.1.2
|
||||||
@ -70,7 +70,7 @@ dev_dependencies:
|
|||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
flutter_lints: ^4.0.0
|
flutter_lints: ^5.0.0
|
||||||
msix: ^3.16.4
|
msix: ^3.16.4
|
||||||
build_runner: ^2.4.8
|
build_runner: ^2.4.8
|
||||||
freezed: ^2.4.5
|
freezed: ^2.4.5
|
||||||
@ -78,7 +78,7 @@ dev_dependencies:
|
|||||||
riverpod_generator: ^2.3.11
|
riverpod_generator: ^2.3.11
|
||||||
custom_lint: ^0.6.2
|
custom_lint: ^0.6.2
|
||||||
riverpod_lint: ^2.3.9
|
riverpod_lint: ^2.3.9
|
||||||
ffigen: ^13.0.0
|
ffigen: ^14.0.0
|
||||||
sct_dev_tools:
|
sct_dev_tools:
|
||||||
path: ./packages/sct_dev_tools
|
path: ./packages/sct_dev_tools
|
||||||
|
|
||||||
@ -100,7 +100,7 @@ msix_config:
|
|||||||
publisher_display_name: xkeyC Studio
|
publisher_display_name: xkeyC Studio
|
||||||
identity_name: 56575xkeyC.MSE
|
identity_name: 56575xkeyC.MSE
|
||||||
publisher: CN=B54C897B-C263-4680-B6AB-4913C603DF87
|
publisher: CN=B54C897B-C263-4680-B6AB-4913C603DF87
|
||||||
msix_version: 2.12.0.0
|
msix_version: 2.12.2.0
|
||||||
logo_path: ./assets/app_logo.png
|
logo_path: ./assets/app_logo.png
|
||||||
capabilities: internetClient,allowElevation
|
capabilities: internetClient,allowElevation
|
||||||
languages: zh-cn
|
languages: zh-cn
|
||||||
|
|||||||
@ -11,7 +11,7 @@ strip = "debuginfo"
|
|||||||
crate-type = ["cdylib", "staticlib"]
|
crate-type = ["cdylib", "staticlib"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
flutter_rust_bridge = "=2.1.0"
|
flutter_rust_bridge = "=2.4.0"
|
||||||
tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros", "process"] }
|
tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros", "process"] }
|
||||||
futures = { version = "0.3", default-features = false, features = ["executor"] }
|
futures = { version = "0.3", default-features = false, features = ["executor"] }
|
||||||
url = "2.5"
|
url = "2.5"
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
// This file is automatically generated, so please do not edit it.
|
// This file is automatically generated, so please do not edit it.
|
||||||
// Generated by `flutter_rust_bridge`@ 2.1.0.
|
// @generated by `flutter_rust_bridge`@ 2.4.0.
|
||||||
|
|
||||||
#![allow(
|
#![allow(
|
||||||
non_camel_case_types,
|
non_camel_case_types,
|
||||||
@ -36,7 +36,7 @@ flutter_rust_bridge::frb_generated_boilerplate!(
|
|||||||
default_rust_opaque = RustOpaqueNom,
|
default_rust_opaque = RustOpaqueNom,
|
||||||
default_rust_auto_opaque = RustAutoOpaqueNom,
|
default_rust_auto_opaque = RustAutoOpaqueNom,
|
||||||
);
|
);
|
||||||
pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_VERSION: &str = "2.1.0";
|
pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_VERSION: &str = "2.4.0";
|
||||||
pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH: i32 = 1832496273;
|
pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH: i32 = 1832496273;
|
||||||
|
|
||||||
// Section: executor
|
// Section: executor
|
||||||
@ -1120,7 +1120,7 @@ impl SseEncode for () {
|
|||||||
#[cfg(not(target_family = "wasm"))]
|
#[cfg(not(target_family = "wasm"))]
|
||||||
mod io {
|
mod io {
|
||||||
// This file is automatically generated, so please do not edit it.
|
// This file is automatically generated, so please do not edit it.
|
||||||
// Generated by `flutter_rust_bridge`@ 2.1.0.
|
// @generated by `flutter_rust_bridge`@ 2.4.0.
|
||||||
|
|
||||||
// Section: imports
|
// Section: imports
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user