Compare commits
83 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 | ||
|
|
cf7230f980 | ||
|
|
44ec80cc73 | ||
|
|
53e44db817 | ||
|
|
41f10e408f | ||
|
|
bc25c92bba | ||
|
|
8fee9dba05 | ||
|
|
6ff0b7c902 | ||
|
|
79239de308 | ||
|
|
7def53649a | ||
|
|
4dd47d02eb | ||
|
|
4d36b5d7c1 | ||
|
|
bbd1aa91ff | ||
|
|
26e28799ff | ||
|
|
83adfbc303 | ||
|
|
a9980208d3 | ||
|
|
f88f73d3a8 | ||
|
|
ae14a26f08 | ||
|
|
c6720baa5e | ||
|
|
d1716bd873 | ||
|
|
853b9034c0 | ||
|
|
c7d70084d8 | ||
|
|
2e69068209 | ||
|
|
38a1ddab72 | ||
|
|
6265acb2ad | ||
|
|
cd812cac66 | ||
|
|
5cf8d5a0a0 | ||
|
|
a94f49eca2 | ||
|
|
62289b3b30 | ||
|
|
536daa176a | ||
|
|
cb69211a78 | ||
|
|
222b9e8fef | ||
|
|
8913fe167f | ||
|
|
8b78c6d052 | ||
|
|
f413d924ad | ||
|
|
ebbce1ed57 | ||
|
|
dc5392258f | ||
|
|
b530742634 | ||
|
|
20227fbd4b | ||
|
|
56d4988cfc | ||
|
|
47c6f2205a | ||
|
|
003a6d1cb1 | ||
|
|
f7dfe108c9 | ||
|
|
638f8760b7 | ||
|
|
3f7ee82d45 | ||
|
|
ad70e21e2c | ||
|
|
976d3474f9 | ||
|
|
5f0b11d6ef | ||
|
|
a114f052b1 | ||
|
|
32b7f2a9fc | ||
|
|
858479f28e | ||
|
|
c90bc803b5 | ||
|
|
40dec20b89 | ||
|
|
725277eef7 | ||
|
|
5eb0c6dda8 | ||
|
|
6f146ed84b |
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
|
||||||
|
|
||||||
3
.gitignore
vendored
@ -47,3 +47,6 @@ app.*.map.json
|
|||||||
/rust/Cargo.lock
|
/rust/Cargo.lock
|
||||||
/lib/generated/l10n_temp.json
|
/lib/generated/l10n_temp.json
|
||||||
/lib/generated/l10n_temp_fix.json
|
/lib/generated/l10n_temp_fix.json
|
||||||
|
|
||||||
|
# FVM Version Cache
|
||||||
|
.fvm/
|
||||||
29
.metadata
@ -1,11 +1,11 @@
|
|||||||
# This file tracks properties of this Flutter project.
|
# This file tracks properties of this Flutter project.
|
||||||
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
||||||
#
|
#
|
||||||
# This file should be version controlled.
|
# This file should be version controlled and should not be manually edited.
|
||||||
|
|
||||||
version:
|
version:
|
||||||
revision: 4d9e56e694b656610ab87fcf2efbcd226e0ed8cf
|
revision: "a14f74ff3a1cbd521163c5f03d68113d50af93d3"
|
||||||
channel: stable
|
channel: "stable"
|
||||||
|
|
||||||
project_type: app
|
project_type: app
|
||||||
|
|
||||||
@ -13,11 +13,26 @@ project_type: app
|
|||||||
migration:
|
migration:
|
||||||
platforms:
|
platforms:
|
||||||
- platform: root
|
- platform: root
|
||||||
create_revision: 4d9e56e694b656610ab87fcf2efbcd226e0ed8cf
|
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
base_revision: 4d9e56e694b656610ab87fcf2efbcd226e0ed8cf
|
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
|
- platform: android
|
||||||
|
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
|
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
|
- platform: ios
|
||||||
|
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
|
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
|
- platform: linux
|
||||||
|
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
|
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
|
- platform: macos
|
||||||
|
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
|
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
|
- platform: web
|
||||||
|
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
|
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
- platform: windows
|
- platform: windows
|
||||||
create_revision: 4d9e56e694b656610ab87fcf2efbcd226e0ed8cf
|
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
base_revision: 4d9e56e694b656610ab87fcf2efbcd226e0ed8cf
|
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
|
||||||
|
|
||||||
# User provided section
|
# User provided section
|
||||||
|
|
||||||
|
|||||||
@ -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({
|
||||||
|
|||||||
@ -12,11 +12,9 @@ class RSSApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static Future<List<RssItem>> getRssText() async {
|
static Future<List<RssItem>> getRssText() async {
|
||||||
final r1 = await RSHttp.getText(URLConf.rssTextUrl1);
|
|
||||||
final r1f = RssFeed.parse(r1);
|
|
||||||
final r2 = await RSHttp.getText(URLConf.rssTextUrl2);
|
final r2 = await RSHttp.getText(URLConf.rssTextUrl2);
|
||||||
final r2f = RssFeed.parse(r2);
|
final r2f = RssFeed.parse(r2);
|
||||||
final items = r1f.items..addAll(r2f.items);
|
final items = r2f.items;
|
||||||
items.sort((a, b) {
|
items.sort((a, b) {
|
||||||
final aDate = HttpDate.parse(a.pubDate ?? "").millisecondsSinceEpoch;
|
final aDate = HttpDate.parse(a.pubDate ?? "").millisecondsSinceEpoch;
|
||||||
final bDate = HttpDate.parse(b.pubDate ?? "").millisecondsSinceEpoch;
|
final bDate = HttpDate.parse(b.pubDate ?? "").millisecondsSinceEpoch;
|
||||||
|
|||||||
90
lib/app.dart
@ -115,27 +115,7 @@ class AppGlobalModel extends _$AppGlobalModel {
|
|||||||
Future<void> initApp() async {
|
Future<void> initApp() async {
|
||||||
if (_initialized) return;
|
if (_initialized) return;
|
||||||
// init Data
|
// init Data
|
||||||
final userProfileDir = Platform.environment["USERPROFILE"];
|
final applicationSupportDir = await _initAppDir();
|
||||||
final applicationSupportDir =
|
|
||||||
(await getApplicationSupportDirectory()).absolute.path;
|
|
||||||
String? applicationBinaryModuleDir;
|
|
||||||
try {
|
|
||||||
await initDPrintFile(applicationSupportDir);
|
|
||||||
} catch (e) {
|
|
||||||
dPrint("initDPrintFile Error: $e");
|
|
||||||
}
|
|
||||||
if (ConstConf.isMSE && userProfileDir != null) {
|
|
||||||
applicationBinaryModuleDir =
|
|
||||||
"$userProfileDir\\AppData\\Local\\Temp\\SCToolbox\\modules";
|
|
||||||
} else {
|
|
||||||
applicationBinaryModuleDir = "$applicationSupportDir\\modules";
|
|
||||||
}
|
|
||||||
dPrint("applicationSupportDir == $applicationSupportDir");
|
|
||||||
dPrint("applicationBinaryModuleDir == $applicationBinaryModuleDir");
|
|
||||||
state = state.copyWith(
|
|
||||||
applicationSupportDir: applicationSupportDir,
|
|
||||||
applicationBinaryModuleDir: applicationBinaryModuleDir,
|
|
||||||
);
|
|
||||||
|
|
||||||
// init Rust bridge
|
// init Rust bridge
|
||||||
await RustLib.init();
|
await RustLib.init();
|
||||||
@ -170,11 +150,13 @@ class AppGlobalModel extends _$AppGlobalModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// init powershell
|
// init powershell
|
||||||
try {
|
if (Platform.isWindows) {
|
||||||
await SystemHelper.initPowershellPath();
|
try {
|
||||||
dPrint("---- Powershell init -----");
|
await SystemHelper.initPowershellPath();
|
||||||
} catch (e) {
|
dPrint("---- Powershell init -----");
|
||||||
dPrint("powershell init failed : $e");
|
} catch (e) {
|
||||||
|
dPrint("powershell init failed : $e");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// get windows info
|
// get windows info
|
||||||
@ -187,19 +169,18 @@ class AppGlobalModel extends _$AppGlobalModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// init windows
|
// init windows
|
||||||
|
|
||||||
windowManager.waitUntilReadyToShow().then((_) async {
|
windowManager.waitUntilReadyToShow().then((_) async {
|
||||||
await windowManager.setTitle("SCToolBox");
|
await windowManager.setTitle("SCToolBox");
|
||||||
await windowManager.setSize(const Size(1280, 810));
|
|
||||||
await windowManager.setMinimumSize(const Size(1280, 810));
|
|
||||||
await windowManager.setSkipTaskbar(false);
|
await windowManager.setSkipTaskbar(false);
|
||||||
await windowManager.show();
|
await windowManager.show();
|
||||||
await Window.initialize();
|
if (Platform.isWindows) {
|
||||||
await Window.hideWindowControls();
|
await Window.initialize();
|
||||||
if (windowsDeviceInfo?.productName.contains("Windows 11") ?? false) {
|
await Window.hideWindowControls();
|
||||||
await Window.setEffect(
|
if (windowsDeviceInfo?.productName.contains("Windows 11") ?? false) {
|
||||||
effect: WindowEffect.acrylic,
|
await Window.setEffect(
|
||||||
);
|
effect: WindowEffect.acrylic,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -248,6 +229,7 @@ class AppGlobalModel extends _$AppGlobalModel {
|
|||||||
ConstConf.appVersionDate, checkUpdateError.toString()));
|
ConstConf.appVersionDate, checkUpdateError.toString()));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (!Platform.isWindows) return false;
|
||||||
final lastVersion = ConstConf.isMSE
|
final lastVersion = ConstConf.isMSE
|
||||||
? state.networkVersionData?.mSELastVersionCode
|
? state.networkVersionData?.mSELastVersionCode
|
||||||
: state.networkVersionData?.lastVersionCode;
|
: state.networkVersionData?.lastVersionCode;
|
||||||
@ -332,6 +314,44 @@ class AppGlobalModel extends _$AppGlobalModel {
|
|||||||
state = state.copyWith(appLocale: value);
|
state = state.copyWith(appLocale: value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<String> _initAppDir() async {
|
||||||
|
if (Platform.isWindows) {
|
||||||
|
final userProfileDir = Platform.environment["USERPROFILE"];
|
||||||
|
final applicationSupportDir =
|
||||||
|
(await getApplicationSupportDirectory()).absolute.path;
|
||||||
|
String? applicationBinaryModuleDir;
|
||||||
|
try {
|
||||||
|
await initDPrintFile(applicationSupportDir);
|
||||||
|
} catch (e) {
|
||||||
|
dPrint("initDPrintFile Error: $e");
|
||||||
|
}
|
||||||
|
if (ConstConf.isMSE && userProfileDir != null) {
|
||||||
|
applicationBinaryModuleDir =
|
||||||
|
"$userProfileDir\\AppData\\Local\\Temp\\SCToolbox\\modules";
|
||||||
|
} else {
|
||||||
|
applicationBinaryModuleDir = "$applicationSupportDir\\modules";
|
||||||
|
}
|
||||||
|
dPrint("applicationSupportDir == $applicationSupportDir");
|
||||||
|
dPrint("applicationBinaryModuleDir == $applicationBinaryModuleDir");
|
||||||
|
state = state.copyWith(
|
||||||
|
applicationSupportDir: applicationSupportDir,
|
||||||
|
applicationBinaryModuleDir: applicationBinaryModuleDir,
|
||||||
|
);
|
||||||
|
return applicationSupportDir;
|
||||||
|
} else {
|
||||||
|
final applicationSupportDir =
|
||||||
|
(await getApplicationSupportDirectory()).absolute.path;
|
||||||
|
final applicationBinaryModuleDir = "$applicationSupportDir/modules";
|
||||||
|
dPrint("applicationSupportDir == $applicationSupportDir");
|
||||||
|
dPrint("applicationBinaryModuleDir == $applicationBinaryModuleDir");
|
||||||
|
state = state.copyWith(
|
||||||
|
applicationSupportDir: applicationSupportDir,
|
||||||
|
applicationBinaryModuleDir: applicationBinaryModuleDir,
|
||||||
|
);
|
||||||
|
return applicationSupportDir;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@freezed
|
@freezed
|
||||||
|
|||||||
@ -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.11.0 Beta";
|
static const String appVersion = "2.12.2";
|
||||||
static const int appVersionCode = 50;
|
static const int appVersionCode = 56;
|
||||||
static const String appVersionDate = "2024-5-07";
|
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";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,8 +4,8 @@ import 'package:starcitizen_doctor/common/utils/log.dart';
|
|||||||
|
|
||||||
class URLConf {
|
class URLConf {
|
||||||
/// HOME API
|
/// HOME API
|
||||||
static String gitApiHome = "https://git.sctoolbox.sccsgo.com";
|
static String gitApiHome = "https://git.scbox.xkeyc.cn";
|
||||||
static String rssApiHome = "https://rss.sctoolbox.sccsgo.com";
|
static String rssApiHome = "https://rss.scbox.xkeyc.cn";
|
||||||
static const String analyticsApiHome = "https://scbox.org";
|
static const String analyticsApiHome = "https://scbox.org";
|
||||||
|
|
||||||
static bool isUrlCheckPass = false;
|
static bool isUrlCheckPass = false;
|
||||||
@ -29,8 +29,6 @@ class URLConf {
|
|||||||
static String get rssVideoUrl =>
|
static String get rssVideoUrl =>
|
||||||
"$rssApiHome/bilibili/user/channel/27976358/290653";
|
"$rssApiHome/bilibili/user/channel/27976358/290653";
|
||||||
|
|
||||||
static String get rssTextUrl1 => "$rssApiHome/bilibili/user/article/40102960";
|
|
||||||
|
|
||||||
static String get rssTextUrl2 =>
|
static String get rssTextUrl2 =>
|
||||||
"$rssApiHome/baidu/tieba/user/%E7%81%AC%E7%81%ACG%E7%81%AC%E7%81%AC&";
|
"$rssApiHome/baidu/tieba/user/%E7%81%AC%E7%81%ACG%E7%81%AC%E7%81%AC&";
|
||||||
|
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import 'package:starcitizen_doctor/common/utils/log.dart';
|
|||||||
|
|
||||||
class SCLoggerHelper {
|
class SCLoggerHelper {
|
||||||
static Future<String?> getLogFilePath() async {
|
static Future<String?> getLogFilePath() async {
|
||||||
|
if (!Platform.isWindows) return null;
|
||||||
Map<String, String> envVars = Platform.environment;
|
Map<String, String> envVars = Platform.environment;
|
||||||
final appDataPath = envVars["appdata"];
|
final appDataPath = envVars["appdata"];
|
||||||
if (appDataPath == null) {
|
if (appDataPath == null) {
|
||||||
@ -30,19 +31,16 @@ class SCLoggerHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static Future<List?> getLauncherLogList() async {
|
static Future<List?> getLauncherLogList() async {
|
||||||
final jsonLogPath = await getLogFilePath();
|
if (!Platform.isWindows) return [];
|
||||||
if (jsonLogPath == null) return null;
|
try {
|
||||||
var jsonString = utf8.decode(await File(jsonLogPath).readAsBytes());
|
final jsonLogPath = await getLogFilePath();
|
||||||
if (jsonString.endsWith("\n")) {
|
if (jsonLogPath == null) throw "no file path";
|
||||||
jsonString = jsonString.substring(0, jsonString.length - 3);
|
var jsonString = utf8.decode(await File(jsonLogPath).readAsBytes());
|
||||||
|
return jsonString.split("\n");
|
||||||
|
} catch (e) {
|
||||||
|
dPrint(e);
|
||||||
|
return [];
|
||||||
}
|
}
|
||||||
if (jsonString.endsWith(" ")) {
|
|
||||||
jsonString = jsonString.substring(0, jsonString.length - 3);
|
|
||||||
}
|
|
||||||
if (jsonString.endsWith(",")) {
|
|
||||||
jsonString = jsonString.substring(0, jsonString.length - 3);
|
|
||||||
}
|
|
||||||
return json.decode("[$jsonString]");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Future<List<String>> getGameInstallPath(List listData,
|
static Future<List<String>> getGameInstallPath(List listData,
|
||||||
@ -51,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");
|
||||||
@ -73,23 +73,29 @@ 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 (scInstallPaths.isNotEmpty) {
|
||||||
|
// 动态检测更多位置
|
||||||
|
for (var fileName in List.from(scInstallPaths)) {
|
||||||
|
for (var v in withVersion) {
|
||||||
|
if (fileName.toString().endsWith(v)) {
|
||||||
|
for (var nv in withVersion) {
|
||||||
|
final nextName =
|
||||||
|
"${fileName.toString().replaceAll("\\$v", "")}\\$nv";
|
||||||
|
await checkAndAddPath(nextName, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -98,21 +104,6 @@ class SCLoggerHelper {
|
|||||||
if (scInstallPaths.isEmpty) rethrow;
|
if (scInstallPaths.isEmpty) rethrow;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scInstallPaths.isNotEmpty) {
|
|
||||||
// 动态检测更多位置
|
|
||||||
for (var v in withVersion) {
|
|
||||||
for (var fileName in List.from(scInstallPaths)) {
|
|
||||||
if (fileName.toString().endsWith(v)) {
|
|
||||||
for (var nv in withVersion) {
|
|
||||||
final nextName =
|
|
||||||
"${fileName.toString().replaceAll("\\$v", "")}\\$nv";
|
|
||||||
await checkAndAddPath(nextName, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return scInstallPaths;
|
return scInstallPaths;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,6 +175,11 @@ class SCLoggerHelper {
|
|||||||
return MapEntry(S.current.doctor_game_error_low_gpu_memory,
|
return MapEntry(S.current.doctor_game_error_low_gpu_memory,
|
||||||
S.current.doctor_game_error_low_gpu_memory_info);
|
S.current.doctor_game_error_low_gpu_memory_info);
|
||||||
}
|
}
|
||||||
|
if (line.contains(
|
||||||
|
"try disabling with r_vulkanDisableLayers = 1 in your user.cfg")) {
|
||||||
|
return MapEntry(S.current.doctor_game_error_gpu_vulkan_crash,
|
||||||
|
S.current.doctor_game_error_gpu_vulkan_crash_info);
|
||||||
|
}
|
||||||
|
|
||||||
/// Unknown
|
/// Unknown
|
||||||
if (line.contains("network.replicatedEntityHandle")) {
|
if (line.contains("network.replicatedEntityHandle")) {
|
||||||
|
|||||||
@ -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";
|
||||||
}
|
}
|
||||||
@ -87,6 +87,9 @@ class SystemHelper {
|
|||||||
final path = confBox.get("custom_launcher_path");
|
final path = confBox.get("custom_launcher_path");
|
||||||
if (path != null && path != "") {
|
if (path != null && path != "") {
|
||||||
if (await File(path).exists()) {
|
if (await File(path).exists()) {
|
||||||
|
if (skipEXE) {
|
||||||
|
return "${path.toString().replaceAll("\\RSI Launcher.exe", "")}\\";
|
||||||
|
}
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -260,13 +263,18 @@ foreach ($adapter in $adapterMemory) {
|
|||||||
|
|
||||||
static Future openDir(path, {bool isFile = false}) async {
|
static Future openDir(path, {bool isFile = false}) async {
|
||||||
dPrint("SystemHelper.openDir path === $path");
|
dPrint("SystemHelper.openDir path === $path");
|
||||||
await Process.run(SystemHelper.powershellPath,
|
if (Platform.isWindows) {
|
||||||
["explorer.exe", isFile ? "/select,$path" : "\"/select,\"$path\"\""]);
|
await Process.run(SystemHelper.powershellPath,
|
||||||
|
["explorer.exe", isFile ? "/select,$path" : "\"/select,\"$path\"\""]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static String getHostsFilePath() {
|
static String getHostsFilePath() {
|
||||||
final envVars = Platform.environment;
|
if (Platform.isWindows) {
|
||||||
final systemRoot = envVars["SYSTEMROOT"];
|
final envVars = Platform.environment;
|
||||||
return "$systemRoot\\System32\\drivers\\etc\\hosts";
|
final systemRoot = envVars["SYSTEMROOT"];
|
||||||
|
return "$systemRoot\\System32\\drivers\\etc\\hosts";
|
||||||
|
}
|
||||||
|
return "/etc/hosts";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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.0.0-dev.33.
|
// @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
|
||||||
|
|
||||||
@ -7,8 +7,9 @@ import '../frb_generated.dart';
|
|||||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||||
|
|
||||||
Future<RsiLauncherAsarData> getRsiLauncherAsarData(
|
Future<RsiLauncherAsarData> getRsiLauncherAsarData(
|
||||||
{required String asarPath, dynamic hint}) =>
|
{required String asarPath}) =>
|
||||||
RustLib.instance.api.getRsiLauncherAsarData(asarPath: asarPath, hint: hint);
|
RustLib.instance.api
|
||||||
|
.crateApiAsarApiGetRsiLauncherAsarData(asarPath: asarPath);
|
||||||
|
|
||||||
class RsiLauncherAsarData {
|
class RsiLauncherAsarData {
|
||||||
final String asarPath;
|
final String asarPath;
|
||||||
@ -21,9 +22,9 @@ class RsiLauncherAsarData {
|
|||||||
required this.mainJsContent,
|
required this.mainJsContent,
|
||||||
});
|
});
|
||||||
|
|
||||||
Future<void> writeMainJs({required List<int> content, dynamic hint}) =>
|
Future<void> writeMainJs({required List<int> content}) =>
|
||||||
RustLib.instance.api.rsiLauncherAsarDataWriteMainJs(
|
RustLib.instance.api.crateApiAsarApiRsiLauncherAsarDataWriteMainJs(
|
||||||
that: this, content: content, hint: hint);
|
that: this, content: content);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get hashCode =>
|
int get hashCode =>
|
||||||
|
|||||||
@ -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.0.0-dev.33.
|
// @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
|
||||||
|
|
||||||
@ -7,30 +7,29 @@ import '../frb_generated.dart';
|
|||||||
import '../http_package.dart';
|
import '../http_package.dart';
|
||||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||||
|
|
||||||
Future<void> setDefaultHeader(
|
// These functions are ignored because they are not marked as `pub`: `_my_method_to_hyper_method`
|
||||||
{required Map<String, String> headers, dynamic hint}) =>
|
|
||||||
RustLib.instance.api.setDefaultHeader(headers: headers, hint: hint);
|
Future<void> setDefaultHeader({required Map<String, String> headers}) =>
|
||||||
|
RustLib.instance.api.crateApiHttpApiSetDefaultHeader(headers: headers);
|
||||||
|
|
||||||
Future<RustHttpResponse> fetch(
|
Future<RustHttpResponse> fetch(
|
||||||
{required MyMethod method,
|
{required MyMethod method,
|
||||||
required String url,
|
required String url,
|
||||||
Map<String, String>? headers,
|
Map<String, String>? headers,
|
||||||
Uint8List? inputData,
|
Uint8List? inputData,
|
||||||
String? withIpAddress,
|
String? withIpAddress}) =>
|
||||||
dynamic hint}) =>
|
RustLib.instance.api.crateApiHttpApiFetch(
|
||||||
RustLib.instance.api.fetch(
|
|
||||||
method: method,
|
method: method,
|
||||||
url: url,
|
url: url,
|
||||||
headers: headers,
|
headers: headers,
|
||||||
inputData: inputData,
|
inputData: inputData,
|
||||||
withIpAddress: withIpAddress,
|
withIpAddress: withIpAddress);
|
||||||
hint: hint);
|
|
||||||
|
|
||||||
Future<List<String>> dnsLookupTxt({required String host, dynamic hint}) =>
|
Future<List<String>> dnsLookupTxt({required String host}) =>
|
||||||
RustLib.instance.api.dnsLookupTxt(host: host, hint: hint);
|
RustLib.instance.api.crateApiHttpApiDnsLookupTxt(host: host);
|
||||||
|
|
||||||
Future<List<String>> dnsLookupIps({required String host, dynamic hint}) =>
|
Future<List<String>> dnsLookupIps({required String host}) =>
|
||||||
RustLib.instance.api.dnsLookupIps(host: host, hint: hint);
|
RustLib.instance.api.crateApiHttpApiDnsLookupIps(host: host);
|
||||||
|
|
||||||
enum MyMethod {
|
enum MyMethod {
|
||||||
options,
|
options,
|
||||||
|
|||||||
@ -1,26 +1,26 @@
|
|||||||
// 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.0.0-dev.33.
|
// @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
|
||||||
|
|
||||||
import '../frb_generated.dart';
|
import '../frb_generated.dart';
|
||||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||||
|
|
||||||
// The type `RsProcess` is not used by any `pub` functions, thus it is ignored.
|
// These functions are ignored because they are not marked as `pub`: `_process_output`
|
||||||
|
// These types are ignored because they are not used by any `pub` functions: `RsProcess`
|
||||||
|
// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `clone`
|
||||||
|
|
||||||
Stream<RsProcessStreamData> start(
|
Stream<RsProcessStreamData> start(
|
||||||
{required String executable,
|
{required String executable,
|
||||||
required List<String> arguments,
|
required List<String> arguments,
|
||||||
required String workingDirectory,
|
required String workingDirectory}) =>
|
||||||
dynamic hint}) =>
|
RustLib.instance.api.crateApiRsProcessStart(
|
||||||
RustLib.instance.api.start(
|
|
||||||
executable: executable,
|
executable: executable,
|
||||||
arguments: arguments,
|
arguments: arguments,
|
||||||
workingDirectory: workingDirectory,
|
workingDirectory: workingDirectory);
|
||||||
hint: hint);
|
|
||||||
|
|
||||||
Future<void> write({required int rsPid, required String data, dynamic hint}) =>
|
Future<void> write({required int rsPid, required String data}) =>
|
||||||
RustLib.instance.api.write(rsPid: rsPid, data: data, hint: hint);
|
RustLib.instance.api.crateApiRsProcessWrite(rsPid: rsPid, data: data);
|
||||||
|
|
||||||
class RsProcessStreamData {
|
class RsProcessStreamData {
|
||||||
final RsProcessStreamDataType dataType;
|
final RsProcessStreamDataType dataType;
|
||||||
|
|||||||
@ -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.0.0-dev.33.
|
// @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
|
||||||
|
|
||||||
@ -7,18 +7,10 @@ import '../frb_generated.dart';
|
|||||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||||
|
|
||||||
Future<void> sendNotify(
|
Future<void> sendNotify(
|
||||||
{String? summary,
|
{String? summary, String? body, String? appName, String? appId}) =>
|
||||||
String? body,
|
RustLib.instance.api.crateApiWin32ApiSendNotify(
|
||||||
String? appName,
|
summary: summary, body: body, appName: appName, appId: appId);
|
||||||
String? appId,
|
|
||||||
dynamic hint}) =>
|
|
||||||
RustLib.instance.api.sendNotify(
|
|
||||||
summary: summary,
|
|
||||||
body: body,
|
|
||||||
appName: appName,
|
|
||||||
appId: appId,
|
|
||||||
hint: hint);
|
|
||||||
|
|
||||||
Future<bool> setForegroundWindow({required String windowName, dynamic hint}) =>
|
Future<bool> setForegroundWindow({required String windowName}) =>
|
||||||
RustLib.instance.api
|
RustLib.instance.api
|
||||||
.setForegroundWindow(windowName: windowName, hint: hint);
|
.crateApiWin32ApiSetForegroundWindow(windowName: windowName);
|
||||||
|
|||||||
@ -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.0.0-dev.33.
|
// @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
|
||||||
|
|
||||||
@ -9,7 +9,9 @@ import 'api/rs_process.dart';
|
|||||||
import 'api/win32_api.dart';
|
import 'api/win32_api.dart';
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'frb_generated.io.dart' if (dart.library.html) 'frb_generated.web.dart';
|
import 'frb_generated.dart';
|
||||||
|
import 'frb_generated.io.dart'
|
||||||
|
if (dart.library.js_interop) 'frb_generated.web.dart';
|
||||||
import 'http_package.dart';
|
import 'http_package.dart';
|
||||||
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||||
|
|
||||||
@ -33,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)
|
||||||
@ -55,7 +67,7 @@ class RustLib extends BaseEntrypoint<RustLibApi, RustLibApiImpl, RustLibWire> {
|
|||||||
kDefaultExternalLibraryLoaderConfig;
|
kDefaultExternalLibraryLoaderConfig;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get codegenVersion => '2.0.0-dev.33';
|
String get codegenVersion => '2.4.0';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get rustContentHash => 1832496273;
|
int get rustContentHash => 1832496273;
|
||||||
@ -69,45 +81,39 @@ class RustLib extends BaseEntrypoint<RustLibApi, RustLibApiImpl, RustLibWire> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
abstract class RustLibApi extends BaseApi {
|
abstract class RustLibApi extends BaseApi {
|
||||||
Future<RsiLauncherAsarData> getRsiLauncherAsarData(
|
Future<RsiLauncherAsarData> crateApiAsarApiGetRsiLauncherAsarData(
|
||||||
{required String asarPath, dynamic hint});
|
{required String asarPath});
|
||||||
|
|
||||||
Future<void> rsiLauncherAsarDataWriteMainJs(
|
Future<void> crateApiAsarApiRsiLauncherAsarDataWriteMainJs(
|
||||||
{required RsiLauncherAsarData that,
|
{required RsiLauncherAsarData that, required List<int> content});
|
||||||
required List<int> content,
|
|
||||||
dynamic hint});
|
|
||||||
|
|
||||||
Future<List<String>> dnsLookupIps({required String host, dynamic hint});
|
Future<List<String>> crateApiHttpApiDnsLookupIps({required String host});
|
||||||
|
|
||||||
Future<List<String>> dnsLookupTxt({required String host, dynamic hint});
|
Future<List<String>> crateApiHttpApiDnsLookupTxt({required String host});
|
||||||
|
|
||||||
Future<RustHttpResponse> fetch(
|
Future<RustHttpResponse> crateApiHttpApiFetch(
|
||||||
{required MyMethod method,
|
{required MyMethod method,
|
||||||
required String url,
|
required String url,
|
||||||
Map<String, String>? headers,
|
Map<String, String>? headers,
|
||||||
Uint8List? inputData,
|
Uint8List? inputData,
|
||||||
String? withIpAddress,
|
String? withIpAddress});
|
||||||
dynamic hint});
|
|
||||||
|
|
||||||
Future<void> setDefaultHeader(
|
Future<void> crateApiHttpApiSetDefaultHeader(
|
||||||
{required Map<String, String> headers, dynamic hint});
|
{required Map<String, String> headers});
|
||||||
|
|
||||||
Stream<RsProcessStreamData> start(
|
Stream<RsProcessStreamData> crateApiRsProcessStart(
|
||||||
{required String executable,
|
{required String executable,
|
||||||
required List<String> arguments,
|
required List<String> arguments,
|
||||||
required String workingDirectory,
|
required String workingDirectory});
|
||||||
dynamic hint});
|
|
||||||
|
|
||||||
Future<void> write({required int rsPid, required String data, dynamic hint});
|
Future<void> crateApiRsProcessWrite(
|
||||||
|
{required int rsPid, required String data});
|
||||||
|
|
||||||
Future<void> sendNotify(
|
Future<void> crateApiWin32ApiSendNotify(
|
||||||
{String? summary,
|
{String? summary, String? body, String? appName, String? appId});
|
||||||
String? body,
|
|
||||||
String? appName,
|
|
||||||
String? appId,
|
|
||||||
dynamic hint});
|
|
||||||
|
|
||||||
Future<bool> setForegroundWindow({required String windowName, dynamic hint});
|
Future<bool> crateApiWin32ApiSetForegroundWindow(
|
||||||
|
{required String windowName});
|
||||||
}
|
}
|
||||||
|
|
||||||
class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||||
@ -119,112 +125,110 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<RsiLauncherAsarData> getRsiLauncherAsarData(
|
Future<RsiLauncherAsarData> crateApiAsarApiGetRsiLauncherAsarData(
|
||||||
{required String asarPath, dynamic hint}) {
|
{required String asarPath}) {
|
||||||
return handler.executeNormal(NormalTask(
|
return handler.executeNormal(NormalTask(
|
||||||
callFfi: (port_) {
|
callFfi: (port_) {
|
||||||
var arg0 = cst_encode_String(asarPath);
|
var arg0 = cst_encode_String(asarPath);
|
||||||
return wire.wire_get_rsi_launcher_asar_data(port_, arg0);
|
return wire.wire__crate__api__asar_api__get_rsi_launcher_asar_data(
|
||||||
|
port_, arg0);
|
||||||
},
|
},
|
||||||
codec: DcoCodec(
|
codec: DcoCodec(
|
||||||
decodeSuccessData: dco_decode_rsi_launcher_asar_data,
|
decodeSuccessData: dco_decode_rsi_launcher_asar_data,
|
||||||
decodeErrorData: dco_decode_AnyhowException,
|
decodeErrorData: dco_decode_AnyhowException,
|
||||||
),
|
),
|
||||||
constMeta: kGetRsiLauncherAsarDataConstMeta,
|
constMeta: kCrateApiAsarApiGetRsiLauncherAsarDataConstMeta,
|
||||||
argValues: [asarPath],
|
argValues: [asarPath],
|
||||||
apiImpl: this,
|
apiImpl: this,
|
||||||
hint: hint,
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskConstMeta get kGetRsiLauncherAsarDataConstMeta => const TaskConstMeta(
|
TaskConstMeta get kCrateApiAsarApiGetRsiLauncherAsarDataConstMeta =>
|
||||||
|
const TaskConstMeta(
|
||||||
debugName: "get_rsi_launcher_asar_data",
|
debugName: "get_rsi_launcher_asar_data",
|
||||||
argNames: ["asarPath"],
|
argNames: ["asarPath"],
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> rsiLauncherAsarDataWriteMainJs(
|
Future<void> crateApiAsarApiRsiLauncherAsarDataWriteMainJs(
|
||||||
{required RsiLauncherAsarData that,
|
{required RsiLauncherAsarData that, required List<int> content}) {
|
||||||
required List<int> content,
|
|
||||||
dynamic hint}) {
|
|
||||||
return handler.executeNormal(NormalTask(
|
return handler.executeNormal(NormalTask(
|
||||||
callFfi: (port_) {
|
callFfi: (port_) {
|
||||||
var arg0 = cst_encode_box_autoadd_rsi_launcher_asar_data(that);
|
var arg0 = cst_encode_box_autoadd_rsi_launcher_asar_data(that);
|
||||||
var arg1 = cst_encode_list_prim_u_8_loose(content);
|
var arg1 = cst_encode_list_prim_u_8_loose(content);
|
||||||
return wire.wire_rsi_launcher_asar_data_write_main_js(
|
return wire
|
||||||
port_, arg0, arg1);
|
.wire__crate__api__asar_api__rsi_launcher_asar_data_write_main_js(
|
||||||
|
port_, arg0, arg1);
|
||||||
},
|
},
|
||||||
codec: DcoCodec(
|
codec: DcoCodec(
|
||||||
decodeSuccessData: dco_decode_unit,
|
decodeSuccessData: dco_decode_unit,
|
||||||
decodeErrorData: dco_decode_AnyhowException,
|
decodeErrorData: dco_decode_AnyhowException,
|
||||||
),
|
),
|
||||||
constMeta: kRsiLauncherAsarDataWriteMainJsConstMeta,
|
constMeta: kCrateApiAsarApiRsiLauncherAsarDataWriteMainJsConstMeta,
|
||||||
argValues: [that, content],
|
argValues: [that, content],
|
||||||
apiImpl: this,
|
apiImpl: this,
|
||||||
hint: hint,
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskConstMeta get kRsiLauncherAsarDataWriteMainJsConstMeta =>
|
TaskConstMeta get kCrateApiAsarApiRsiLauncherAsarDataWriteMainJsConstMeta =>
|
||||||
const TaskConstMeta(
|
const TaskConstMeta(
|
||||||
debugName: "rsi_launcher_asar_data_write_main_js",
|
debugName: "rsi_launcher_asar_data_write_main_js",
|
||||||
argNames: ["that", "content"],
|
argNames: ["that", "content"],
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<List<String>> dnsLookupIps({required String host, dynamic hint}) {
|
Future<List<String>> crateApiHttpApiDnsLookupIps({required String host}) {
|
||||||
return handler.executeNormal(NormalTask(
|
return handler.executeNormal(NormalTask(
|
||||||
callFfi: (port_) {
|
callFfi: (port_) {
|
||||||
var arg0 = cst_encode_String(host);
|
var arg0 = cst_encode_String(host);
|
||||||
return wire.wire_dns_lookup_ips(port_, arg0);
|
return wire.wire__crate__api__http_api__dns_lookup_ips(port_, arg0);
|
||||||
},
|
},
|
||||||
codec: DcoCodec(
|
codec: DcoCodec(
|
||||||
decodeSuccessData: dco_decode_list_String,
|
decodeSuccessData: dco_decode_list_String,
|
||||||
decodeErrorData: dco_decode_AnyhowException,
|
decodeErrorData: dco_decode_AnyhowException,
|
||||||
),
|
),
|
||||||
constMeta: kDnsLookupIpsConstMeta,
|
constMeta: kCrateApiHttpApiDnsLookupIpsConstMeta,
|
||||||
argValues: [host],
|
argValues: [host],
|
||||||
apiImpl: this,
|
apiImpl: this,
|
||||||
hint: hint,
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskConstMeta get kDnsLookupIpsConstMeta => const TaskConstMeta(
|
TaskConstMeta get kCrateApiHttpApiDnsLookupIpsConstMeta =>
|
||||||
|
const TaskConstMeta(
|
||||||
debugName: "dns_lookup_ips",
|
debugName: "dns_lookup_ips",
|
||||||
argNames: ["host"],
|
argNames: ["host"],
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<List<String>> dnsLookupTxt({required String host, dynamic hint}) {
|
Future<List<String>> crateApiHttpApiDnsLookupTxt({required String host}) {
|
||||||
return handler.executeNormal(NormalTask(
|
return handler.executeNormal(NormalTask(
|
||||||
callFfi: (port_) {
|
callFfi: (port_) {
|
||||||
var arg0 = cst_encode_String(host);
|
var arg0 = cst_encode_String(host);
|
||||||
return wire.wire_dns_lookup_txt(port_, arg0);
|
return wire.wire__crate__api__http_api__dns_lookup_txt(port_, arg0);
|
||||||
},
|
},
|
||||||
codec: DcoCodec(
|
codec: DcoCodec(
|
||||||
decodeSuccessData: dco_decode_list_String,
|
decodeSuccessData: dco_decode_list_String,
|
||||||
decodeErrorData: dco_decode_AnyhowException,
|
decodeErrorData: dco_decode_AnyhowException,
|
||||||
),
|
),
|
||||||
constMeta: kDnsLookupTxtConstMeta,
|
constMeta: kCrateApiHttpApiDnsLookupTxtConstMeta,
|
||||||
argValues: [host],
|
argValues: [host],
|
||||||
apiImpl: this,
|
apiImpl: this,
|
||||||
hint: hint,
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskConstMeta get kDnsLookupTxtConstMeta => const TaskConstMeta(
|
TaskConstMeta get kCrateApiHttpApiDnsLookupTxtConstMeta =>
|
||||||
|
const TaskConstMeta(
|
||||||
debugName: "dns_lookup_txt",
|
debugName: "dns_lookup_txt",
|
||||||
argNames: ["host"],
|
argNames: ["host"],
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<RustHttpResponse> fetch(
|
Future<RustHttpResponse> crateApiHttpApiFetch(
|
||||||
{required MyMethod method,
|
{required MyMethod method,
|
||||||
required String url,
|
required String url,
|
||||||
Map<String, String>? headers,
|
Map<String, String>? headers,
|
||||||
Uint8List? inputData,
|
Uint8List? inputData,
|
||||||
String? withIpAddress,
|
String? withIpAddress}) {
|
||||||
dynamic hint}) {
|
|
||||||
return handler.executeNormal(NormalTask(
|
return handler.executeNormal(NormalTask(
|
||||||
callFfi: (port_) {
|
callFfi: (port_) {
|
||||||
var arg0 = cst_encode_my_method(method);
|
var arg0 = cst_encode_my_method(method);
|
||||||
@ -232,54 +236,53 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
var arg2 = cst_encode_opt_Map_String_String(headers);
|
var arg2 = cst_encode_opt_Map_String_String(headers);
|
||||||
var arg3 = cst_encode_opt_list_prim_u_8_strict(inputData);
|
var arg3 = cst_encode_opt_list_prim_u_8_strict(inputData);
|
||||||
var arg4 = cst_encode_opt_String(withIpAddress);
|
var arg4 = cst_encode_opt_String(withIpAddress);
|
||||||
return wire.wire_fetch(port_, arg0, arg1, arg2, arg3, arg4);
|
return wire.wire__crate__api__http_api__fetch(
|
||||||
|
port_, arg0, arg1, arg2, arg3, arg4);
|
||||||
},
|
},
|
||||||
codec: DcoCodec(
|
codec: DcoCodec(
|
||||||
decodeSuccessData: dco_decode_rust_http_response,
|
decodeSuccessData: dco_decode_rust_http_response,
|
||||||
decodeErrorData: dco_decode_AnyhowException,
|
decodeErrorData: dco_decode_AnyhowException,
|
||||||
),
|
),
|
||||||
constMeta: kFetchConstMeta,
|
constMeta: kCrateApiHttpApiFetchConstMeta,
|
||||||
argValues: [method, url, headers, inputData, withIpAddress],
|
argValues: [method, url, headers, inputData, withIpAddress],
|
||||||
apiImpl: this,
|
apiImpl: this,
|
||||||
hint: hint,
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskConstMeta get kFetchConstMeta => const TaskConstMeta(
|
TaskConstMeta get kCrateApiHttpApiFetchConstMeta => const TaskConstMeta(
|
||||||
debugName: "fetch",
|
debugName: "fetch",
|
||||||
argNames: ["method", "url", "headers", "inputData", "withIpAddress"],
|
argNames: ["method", "url", "headers", "inputData", "withIpAddress"],
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> setDefaultHeader(
|
Future<void> crateApiHttpApiSetDefaultHeader(
|
||||||
{required Map<String, String> headers, dynamic hint}) {
|
{required Map<String, String> headers}) {
|
||||||
return handler.executeNormal(NormalTask(
|
return handler.executeNormal(NormalTask(
|
||||||
callFfi: (port_) {
|
callFfi: (port_) {
|
||||||
var arg0 = cst_encode_Map_String_String(headers);
|
var arg0 = cst_encode_Map_String_String(headers);
|
||||||
return wire.wire_set_default_header(port_, arg0);
|
return wire.wire__crate__api__http_api__set_default_header(port_, arg0);
|
||||||
},
|
},
|
||||||
codec: DcoCodec(
|
codec: DcoCodec(
|
||||||
decodeSuccessData: dco_decode_unit,
|
decodeSuccessData: dco_decode_unit,
|
||||||
decodeErrorData: null,
|
decodeErrorData: null,
|
||||||
),
|
),
|
||||||
constMeta: kSetDefaultHeaderConstMeta,
|
constMeta: kCrateApiHttpApiSetDefaultHeaderConstMeta,
|
||||||
argValues: [headers],
|
argValues: [headers],
|
||||||
apiImpl: this,
|
apiImpl: this,
|
||||||
hint: hint,
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskConstMeta get kSetDefaultHeaderConstMeta => const TaskConstMeta(
|
TaskConstMeta get kCrateApiHttpApiSetDefaultHeaderConstMeta =>
|
||||||
|
const TaskConstMeta(
|
||||||
debugName: "set_default_header",
|
debugName: "set_default_header",
|
||||||
argNames: ["headers"],
|
argNames: ["headers"],
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Stream<RsProcessStreamData> start(
|
Stream<RsProcessStreamData> crateApiRsProcessStart(
|
||||||
{required String executable,
|
{required String executable,
|
||||||
required List<String> arguments,
|
required List<String> arguments,
|
||||||
required String workingDirectory,
|
required String workingDirectory}) {
|
||||||
dynamic hint}) {
|
|
||||||
final streamSink = RustStreamSink<RsProcessStreamData>();
|
final streamSink = RustStreamSink<RsProcessStreamData>();
|
||||||
unawaited(handler.executeNormal(NormalTask(
|
unawaited(handler.executeNormal(NormalTask(
|
||||||
callFfi: (port_) {
|
callFfi: (port_) {
|
||||||
@ -287,99 +290,97 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
var arg1 = cst_encode_list_String(arguments);
|
var arg1 = cst_encode_list_String(arguments);
|
||||||
var arg2 = cst_encode_String(workingDirectory);
|
var arg2 = cst_encode_String(workingDirectory);
|
||||||
var arg3 = cst_encode_StreamSink_rs_process_stream_data_Dco(streamSink);
|
var arg3 = cst_encode_StreamSink_rs_process_stream_data_Dco(streamSink);
|
||||||
return wire.wire_start(port_, arg0, arg1, arg2, arg3);
|
return wire.wire__crate__api__rs_process__start(
|
||||||
|
port_, arg0, arg1, arg2, arg3);
|
||||||
},
|
},
|
||||||
codec: DcoCodec(
|
codec: DcoCodec(
|
||||||
decodeSuccessData: dco_decode_unit,
|
decodeSuccessData: dco_decode_unit,
|
||||||
decodeErrorData: null,
|
decodeErrorData: null,
|
||||||
),
|
),
|
||||||
constMeta: kStartConstMeta,
|
constMeta: kCrateApiRsProcessStartConstMeta,
|
||||||
argValues: [executable, arguments, workingDirectory, streamSink],
|
argValues: [executable, arguments, workingDirectory, streamSink],
|
||||||
apiImpl: this,
|
apiImpl: this,
|
||||||
hint: hint,
|
|
||||||
)));
|
)));
|
||||||
return streamSink.stream;
|
return streamSink.stream;
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskConstMeta get kStartConstMeta => const TaskConstMeta(
|
TaskConstMeta get kCrateApiRsProcessStartConstMeta => const TaskConstMeta(
|
||||||
debugName: "start",
|
debugName: "start",
|
||||||
argNames: ["executable", "arguments", "workingDirectory", "streamSink"],
|
argNames: ["executable", "arguments", "workingDirectory", "streamSink"],
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> write({required int rsPid, required String data, dynamic hint}) {
|
Future<void> crateApiRsProcessWrite(
|
||||||
|
{required int rsPid, required String data}) {
|
||||||
return handler.executeNormal(NormalTask(
|
return handler.executeNormal(NormalTask(
|
||||||
callFfi: (port_) {
|
callFfi: (port_) {
|
||||||
var arg0 = cst_encode_u_32(rsPid);
|
var arg0 = cst_encode_u_32(rsPid);
|
||||||
var arg1 = cst_encode_String(data);
|
var arg1 = cst_encode_String(data);
|
||||||
return wire.wire_write(port_, arg0, arg1);
|
return wire.wire__crate__api__rs_process__write(port_, arg0, arg1);
|
||||||
},
|
},
|
||||||
codec: DcoCodec(
|
codec: DcoCodec(
|
||||||
decodeSuccessData: dco_decode_unit,
|
decodeSuccessData: dco_decode_unit,
|
||||||
decodeErrorData: null,
|
decodeErrorData: null,
|
||||||
),
|
),
|
||||||
constMeta: kWriteConstMeta,
|
constMeta: kCrateApiRsProcessWriteConstMeta,
|
||||||
argValues: [rsPid, data],
|
argValues: [rsPid, data],
|
||||||
apiImpl: this,
|
apiImpl: this,
|
||||||
hint: hint,
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskConstMeta get kWriteConstMeta => const TaskConstMeta(
|
TaskConstMeta get kCrateApiRsProcessWriteConstMeta => const TaskConstMeta(
|
||||||
debugName: "write",
|
debugName: "write",
|
||||||
argNames: ["rsPid", "data"],
|
argNames: ["rsPid", "data"],
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> sendNotify(
|
Future<void> crateApiWin32ApiSendNotify(
|
||||||
{String? summary,
|
{String? summary, String? body, String? appName, String? appId}) {
|
||||||
String? body,
|
|
||||||
String? appName,
|
|
||||||
String? appId,
|
|
||||||
dynamic hint}) {
|
|
||||||
return handler.executeNormal(NormalTask(
|
return handler.executeNormal(NormalTask(
|
||||||
callFfi: (port_) {
|
callFfi: (port_) {
|
||||||
var arg0 = cst_encode_opt_String(summary);
|
var arg0 = cst_encode_opt_String(summary);
|
||||||
var arg1 = cst_encode_opt_String(body);
|
var arg1 = cst_encode_opt_String(body);
|
||||||
var arg2 = cst_encode_opt_String(appName);
|
var arg2 = cst_encode_opt_String(appName);
|
||||||
var arg3 = cst_encode_opt_String(appId);
|
var arg3 = cst_encode_opt_String(appId);
|
||||||
return wire.wire_send_notify(port_, arg0, arg1, arg2, arg3);
|
return wire.wire__crate__api__win32_api__send_notify(
|
||||||
|
port_, arg0, arg1, arg2, arg3);
|
||||||
},
|
},
|
||||||
codec: DcoCodec(
|
codec: DcoCodec(
|
||||||
decodeSuccessData: dco_decode_unit,
|
decodeSuccessData: dco_decode_unit,
|
||||||
decodeErrorData: dco_decode_AnyhowException,
|
decodeErrorData: dco_decode_AnyhowException,
|
||||||
),
|
),
|
||||||
constMeta: kSendNotifyConstMeta,
|
constMeta: kCrateApiWin32ApiSendNotifyConstMeta,
|
||||||
argValues: [summary, body, appName, appId],
|
argValues: [summary, body, appName, appId],
|
||||||
apiImpl: this,
|
apiImpl: this,
|
||||||
hint: hint,
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskConstMeta get kSendNotifyConstMeta => const TaskConstMeta(
|
TaskConstMeta get kCrateApiWin32ApiSendNotifyConstMeta => const TaskConstMeta(
|
||||||
debugName: "send_notify",
|
debugName: "send_notify",
|
||||||
argNames: ["summary", "body", "appName", "appId"],
|
argNames: ["summary", "body", "appName", "appId"],
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<bool> setForegroundWindow({required String windowName, dynamic hint}) {
|
Future<bool> crateApiWin32ApiSetForegroundWindow(
|
||||||
|
{required String windowName}) {
|
||||||
return handler.executeNormal(NormalTask(
|
return handler.executeNormal(NormalTask(
|
||||||
callFfi: (port_) {
|
callFfi: (port_) {
|
||||||
var arg0 = cst_encode_String(windowName);
|
var arg0 = cst_encode_String(windowName);
|
||||||
return wire.wire_set_foreground_window(port_, arg0);
|
return wire.wire__crate__api__win32_api__set_foreground_window(
|
||||||
|
port_, arg0);
|
||||||
},
|
},
|
||||||
codec: DcoCodec(
|
codec: DcoCodec(
|
||||||
decodeSuccessData: dco_decode_bool,
|
decodeSuccessData: dco_decode_bool,
|
||||||
decodeErrorData: dco_decode_AnyhowException,
|
decodeErrorData: dco_decode_AnyhowException,
|
||||||
),
|
),
|
||||||
constMeta: kSetForegroundWindowConstMeta,
|
constMeta: kCrateApiWin32ApiSetForegroundWindowConstMeta,
|
||||||
argValues: [windowName],
|
argValues: [windowName],
|
||||||
apiImpl: this,
|
apiImpl: this,
|
||||||
hint: hint,
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskConstMeta get kSetForegroundWindowConstMeta => const TaskConstMeta(
|
TaskConstMeta get kCrateApiWin32ApiSetForegroundWindowConstMeta =>
|
||||||
|
const TaskConstMeta(
|
||||||
debugName: "set_foreground_window",
|
debugName: "set_foreground_window",
|
||||||
argNames: ["windowName"],
|
argNames: ["windowName"],
|
||||||
);
|
);
|
||||||
@ -424,7 +425,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int dco_decode_box_autoadd_u_64(dynamic raw) {
|
BigInt dco_decode_box_autoadd_u_64(dynamic raw) {
|
||||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||||
return dco_decode_u_64(raw);
|
return dco_decode_u_64(raw);
|
||||||
}
|
}
|
||||||
@ -484,7 +485,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int? dco_decode_opt_box_autoadd_u_64(dynamic raw) {
|
BigInt? dco_decode_opt_box_autoadd_u_64(dynamic raw) {
|
||||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||||
return raw == null ? null : dco_decode_box_autoadd_u_64(raw);
|
return raw == null ? null : dco_decode_box_autoadd_u_64(raw);
|
||||||
}
|
}
|
||||||
@ -570,9 +571,9 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int dco_decode_u_64(dynamic raw) {
|
BigInt dco_decode_u_64(dynamic raw) {
|
||||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||||
return dcoDecodeI64OrU64(raw);
|
return dcoDecodeU64(raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
@ -631,7 +632,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int sse_decode_box_autoadd_u_64(SseDeserializer deserializer) {
|
BigInt sse_decode_box_autoadd_u_64(SseDeserializer deserializer) {
|
||||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||||
return (sse_decode_u_64(deserializer));
|
return (sse_decode_u_64(deserializer));
|
||||||
}
|
}
|
||||||
@ -719,7 +720,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int? sse_decode_opt_box_autoadd_u_64(SseDeserializer deserializer) {
|
BigInt? sse_decode_opt_box_autoadd_u_64(SseDeserializer deserializer) {
|
||||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||||
|
|
||||||
if (sse_decode_bool(deserializer)) {
|
if (sse_decode_bool(deserializer)) {
|
||||||
@ -814,9 +815,9 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int sse_decode_u_64(SseDeserializer deserializer) {
|
BigInt sse_decode_u_64(SseDeserializer deserializer) {
|
||||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||||
return deserializer.buffer.getUint64();
|
return deserializer.buffer.getBigUint64();
|
||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
@ -888,7 +889,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
void sse_encode_AnyhowException(
|
void sse_encode_AnyhowException(
|
||||||
AnyhowException self, SseSerializer serializer) {
|
AnyhowException self, SseSerializer serializer) {
|
||||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||||
throw UnimplementedError('Unreachable ()');
|
sse_encode_String(self.message, serializer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
@ -906,8 +907,9 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
sse_encode_String(
|
sse_encode_String(
|
||||||
self.setupAndSerialize(
|
self.setupAndSerialize(
|
||||||
codec: DcoCodec(
|
codec: DcoCodec(
|
||||||
decodeSuccessData: dco_decode_rs_process_stream_data,
|
decodeSuccessData: dco_decode_rs_process_stream_data,
|
||||||
decodeErrorData: null)),
|
decodeErrorData: dco_decode_AnyhowException,
|
||||||
|
)),
|
||||||
serializer);
|
serializer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -931,7 +933,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
void sse_encode_box_autoadd_u_64(int self, SseSerializer serializer) {
|
void sse_encode_box_autoadd_u_64(BigInt self, SseSerializer serializer) {
|
||||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||||
sse_encode_u_64(self, serializer);
|
sse_encode_u_64(self, serializer);
|
||||||
}
|
}
|
||||||
@ -1013,7 +1015,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
void sse_encode_opt_box_autoadd_u_64(int? self, SseSerializer serializer) {
|
void sse_encode_opt_box_autoadd_u_64(BigInt? self, SseSerializer serializer) {
|
||||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||||
|
|
||||||
sse_encode_bool(self != null, serializer);
|
sse_encode_bool(self != null, serializer);
|
||||||
@ -1092,9 +1094,9 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
void sse_encode_u_64(int self, SseSerializer serializer) {
|
void sse_encode_u_64(BigInt self, SseSerializer serializer) {
|
||||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||||
serializer.buffer.putUint64(self);
|
serializer.buffer.putBigUint64(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
|
|||||||
@ -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.0.0-dev.33.
|
// @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
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
|||||||
dynamic raw);
|
dynamic raw);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int dco_decode_box_autoadd_u_64(dynamic raw);
|
BigInt dco_decode_box_autoadd_u_64(dynamic raw);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int dco_decode_i_32(dynamic raw);
|
int dco_decode_i_32(dynamic raw);
|
||||||
@ -73,7 +73,7 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
|||||||
String? dco_decode_opt_String(dynamic raw);
|
String? dco_decode_opt_String(dynamic raw);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int? dco_decode_opt_box_autoadd_u_64(dynamic raw);
|
BigInt? dco_decode_opt_box_autoadd_u_64(dynamic raw);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
Uint8List? dco_decode_opt_list_prim_u_8_strict(dynamic raw);
|
Uint8List? dco_decode_opt_list_prim_u_8_strict(dynamic raw);
|
||||||
@ -100,7 +100,7 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
|||||||
int dco_decode_u_32(dynamic raw);
|
int dco_decode_u_32(dynamic raw);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int dco_decode_u_64(dynamic raw);
|
BigInt dco_decode_u_64(dynamic raw);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int dco_decode_u_8(dynamic raw);
|
int dco_decode_u_8(dynamic raw);
|
||||||
@ -131,7 +131,7 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
|||||||
SseDeserializer deserializer);
|
SseDeserializer deserializer);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int sse_decode_box_autoadd_u_64(SseDeserializer deserializer);
|
BigInt sse_decode_box_autoadd_u_64(SseDeserializer deserializer);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int sse_decode_i_32(SseDeserializer deserializer);
|
int sse_decode_i_32(SseDeserializer deserializer);
|
||||||
@ -163,7 +163,7 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
|||||||
String? sse_decode_opt_String(SseDeserializer deserializer);
|
String? sse_decode_opt_String(SseDeserializer deserializer);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int? sse_decode_opt_box_autoadd_u_64(SseDeserializer deserializer);
|
BigInt? sse_decode_opt_box_autoadd_u_64(SseDeserializer deserializer);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
Uint8List? sse_decode_opt_list_prim_u_8_strict(SseDeserializer deserializer);
|
Uint8List? sse_decode_opt_list_prim_u_8_strict(SseDeserializer deserializer);
|
||||||
@ -194,7 +194,7 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
|||||||
int sse_decode_u_32(SseDeserializer deserializer);
|
int sse_decode_u_32(SseDeserializer deserializer);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int sse_decode_u_64(SseDeserializer deserializer);
|
BigInt sse_decode_u_64(SseDeserializer deserializer);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int sse_decode_u_8(SseDeserializer deserializer);
|
int sse_decode_u_8(SseDeserializer deserializer);
|
||||||
@ -224,8 +224,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
|||||||
// Codec=Cst (C-struct based), see doc to use other codecs
|
// Codec=Cst (C-struct based), see doc to use other codecs
|
||||||
return cst_encode_String(raw.setupAndSerialize(
|
return cst_encode_String(raw.setupAndSerialize(
|
||||||
codec: DcoCodec(
|
codec: DcoCodec(
|
||||||
decodeSuccessData: dco_decode_rs_process_stream_data,
|
decodeSuccessData: dco_decode_rs_process_stream_data,
|
||||||
decodeErrorData: null)));
|
decodeErrorData: dco_decode_AnyhowException,
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
@ -244,7 +245,7 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
ffi.Pointer<ffi.Uint64> cst_encode_box_autoadd_u_64(int raw) {
|
ffi.Pointer<ffi.Uint64> cst_encode_box_autoadd_u_64(BigInt raw) {
|
||||||
// Codec=Cst (C-struct based), see doc to use other codecs
|
// Codec=Cst (C-struct based), see doc to use other codecs
|
||||||
return wire.cst_new_box_autoadd_u_64(cst_encode_u_64(raw));
|
return wire.cst_new_box_autoadd_u_64(cst_encode_u_64(raw));
|
||||||
}
|
}
|
||||||
@ -303,7 +304,7 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
ffi.Pointer<ffi.Uint64> cst_encode_opt_box_autoadd_u_64(int? raw) {
|
ffi.Pointer<ffi.Uint64> cst_encode_opt_box_autoadd_u_64(BigInt? raw) {
|
||||||
// Codec=Cst (C-struct based), see doc to use other codecs
|
// Codec=Cst (C-struct based), see doc to use other codecs
|
||||||
return raw == null ? ffi.nullptr : cst_encode_box_autoadd_u_64(raw);
|
return raw == null ? ffi.nullptr : cst_encode_box_autoadd_u_64(raw);
|
||||||
}
|
}
|
||||||
@ -316,9 +317,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
int cst_encode_u_64(int raw) {
|
int cst_encode_u_64(BigInt raw) {
|
||||||
// Codec=Cst (C-struct based), see doc to use other codecs
|
// Codec=Cst (C-struct based), see doc to use other codecs
|
||||||
return raw.toInt();
|
return raw.toSigned(64).toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
@ -415,7 +416,7 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
|||||||
RsiLauncherAsarData self, SseSerializer serializer);
|
RsiLauncherAsarData self, SseSerializer serializer);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
void sse_encode_box_autoadd_u_64(int self, SseSerializer serializer);
|
void sse_encode_box_autoadd_u_64(BigInt self, SseSerializer serializer);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
void sse_encode_i_32(int self, SseSerializer serializer);
|
void sse_encode_i_32(int self, SseSerializer serializer);
|
||||||
@ -448,7 +449,7 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
|||||||
void sse_encode_opt_String(String? self, SseSerializer serializer);
|
void sse_encode_opt_String(String? self, SseSerializer serializer);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
void sse_encode_opt_box_autoadd_u_64(int? self, SseSerializer serializer);
|
void sse_encode_opt_box_autoadd_u_64(BigInt? self, SseSerializer serializer);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
void sse_encode_opt_list_prim_u_8_strict(
|
void sse_encode_opt_list_prim_u_8_strict(
|
||||||
@ -481,7 +482,7 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
|||||||
void sse_encode_u_32(int self, SseSerializer serializer);
|
void sse_encode_u_32(int self, SseSerializer serializer);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
void sse_encode_u_64(int self, SseSerializer serializer);
|
void sse_encode_u_64(BigInt self, SseSerializer serializer);
|
||||||
|
|
||||||
@protected
|
@protected
|
||||||
void sse_encode_u_8(int self, SseSerializer serializer);
|
void sse_encode_u_8(int self, SseSerializer serializer);
|
||||||
@ -531,86 +532,90 @@ class RustLibWire implements BaseWire {
|
|||||||
late final _store_dart_post_cobject = _store_dart_post_cobjectPtr
|
late final _store_dart_post_cobject = _store_dart_post_cobjectPtr
|
||||||
.asFunction<void Function(DartPostCObjectFnType)>();
|
.asFunction<void Function(DartPostCObjectFnType)>();
|
||||||
|
|
||||||
void wire_get_rsi_launcher_asar_data(
|
void wire__crate__api__asar_api__get_rsi_launcher_asar_data(
|
||||||
int port_,
|
int port_,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> asar_path,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> asar_path,
|
||||||
) {
|
) {
|
||||||
return _wire_get_rsi_launcher_asar_data(
|
return _wire__crate__api__asar_api__get_rsi_launcher_asar_data(
|
||||||
port_,
|
port_,
|
||||||
asar_path,
|
asar_path,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
late final _wire_get_rsi_launcher_asar_dataPtr = _lookup<
|
late final _wire__crate__api__asar_api__get_rsi_launcher_asar_dataPtr = _lookup<
|
||||||
ffi.NativeFunction<
|
ffi.NativeFunction<
|
||||||
ffi.Void Function(
|
ffi.Void Function(
|
||||||
ffi.Int64, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
ffi.Int64, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
||||||
'frbgen_starcitizen_doctor_wire_get_rsi_launcher_asar_data');
|
'frbgen_starcitizen_doctor_wire__crate__api__asar_api__get_rsi_launcher_asar_data');
|
||||||
late final _wire_get_rsi_launcher_asar_data =
|
late final _wire__crate__api__asar_api__get_rsi_launcher_asar_data =
|
||||||
_wire_get_rsi_launcher_asar_dataPtr.asFunction<
|
_wire__crate__api__asar_api__get_rsi_launcher_asar_dataPtr.asFunction<
|
||||||
void Function(int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
void Function(int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
||||||
|
|
||||||
void wire_rsi_launcher_asar_data_write_main_js(
|
void wire__crate__api__asar_api__rsi_launcher_asar_data_write_main_js(
|
||||||
int port_,
|
int port_,
|
||||||
ffi.Pointer<wire_cst_rsi_launcher_asar_data> that,
|
ffi.Pointer<wire_cst_rsi_launcher_asar_data> that,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_loose> content,
|
ffi.Pointer<wire_cst_list_prim_u_8_loose> content,
|
||||||
) {
|
) {
|
||||||
return _wire_rsi_launcher_asar_data_write_main_js(
|
return _wire__crate__api__asar_api__rsi_launcher_asar_data_write_main_js(
|
||||||
port_,
|
port_,
|
||||||
that,
|
that,
|
||||||
content,
|
content,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
late final _wire_rsi_launcher_asar_data_write_main_jsPtr = _lookup<
|
late final _wire__crate__api__asar_api__rsi_launcher_asar_data_write_main_jsPtr =
|
||||||
ffi.NativeFunction<
|
_lookup<
|
||||||
ffi.Void Function(
|
ffi.NativeFunction<
|
||||||
ffi.Int64,
|
ffi.Void Function(
|
||||||
ffi.Pointer<wire_cst_rsi_launcher_asar_data>,
|
ffi.Int64,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_loose>)>>(
|
ffi.Pointer<wire_cst_rsi_launcher_asar_data>,
|
||||||
'frbgen_starcitizen_doctor_wire_rsi_launcher_asar_data_write_main_js');
|
ffi.Pointer<wire_cst_list_prim_u_8_loose>)>>(
|
||||||
late final _wire_rsi_launcher_asar_data_write_main_js =
|
'frbgen_starcitizen_doctor_wire__crate__api__asar_api__rsi_launcher_asar_data_write_main_js');
|
||||||
_wire_rsi_launcher_asar_data_write_main_jsPtr.asFunction<
|
late final _wire__crate__api__asar_api__rsi_launcher_asar_data_write_main_js =
|
||||||
void Function(int, ffi.Pointer<wire_cst_rsi_launcher_asar_data>,
|
_wire__crate__api__asar_api__rsi_launcher_asar_data_write_main_jsPtr
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_loose>)>();
|
.asFunction<
|
||||||
|
void Function(int, ffi.Pointer<wire_cst_rsi_launcher_asar_data>,
|
||||||
|
ffi.Pointer<wire_cst_list_prim_u_8_loose>)>();
|
||||||
|
|
||||||
void wire_dns_lookup_ips(
|
void wire__crate__api__http_api__dns_lookup_ips(
|
||||||
int port_,
|
int port_,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> host,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> host,
|
||||||
) {
|
) {
|
||||||
return _wire_dns_lookup_ips(
|
return _wire__crate__api__http_api__dns_lookup_ips(
|
||||||
port_,
|
port_,
|
||||||
host,
|
host,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
late final _wire_dns_lookup_ipsPtr = _lookup<
|
late final _wire__crate__api__http_api__dns_lookup_ipsPtr = _lookup<
|
||||||
ffi.NativeFunction<
|
ffi.NativeFunction<
|
||||||
ffi.Void Function(
|
ffi.Void Function(
|
||||||
ffi.Int64, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
ffi.Int64, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
||||||
'frbgen_starcitizen_doctor_wire_dns_lookup_ips');
|
'frbgen_starcitizen_doctor_wire__crate__api__http_api__dns_lookup_ips');
|
||||||
late final _wire_dns_lookup_ips = _wire_dns_lookup_ipsPtr.asFunction<
|
late final _wire__crate__api__http_api__dns_lookup_ips =
|
||||||
void Function(int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
_wire__crate__api__http_api__dns_lookup_ipsPtr.asFunction<
|
||||||
|
void Function(int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
||||||
|
|
||||||
void wire_dns_lookup_txt(
|
void wire__crate__api__http_api__dns_lookup_txt(
|
||||||
int port_,
|
int port_,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> host,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> host,
|
||||||
) {
|
) {
|
||||||
return _wire_dns_lookup_txt(
|
return _wire__crate__api__http_api__dns_lookup_txt(
|
||||||
port_,
|
port_,
|
||||||
host,
|
host,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
late final _wire_dns_lookup_txtPtr = _lookup<
|
late final _wire__crate__api__http_api__dns_lookup_txtPtr = _lookup<
|
||||||
ffi.NativeFunction<
|
ffi.NativeFunction<
|
||||||
ffi.Void Function(
|
ffi.Void Function(
|
||||||
ffi.Int64, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
ffi.Int64, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
||||||
'frbgen_starcitizen_doctor_wire_dns_lookup_txt');
|
'frbgen_starcitizen_doctor_wire__crate__api__http_api__dns_lookup_txt');
|
||||||
late final _wire_dns_lookup_txt = _wire_dns_lookup_txtPtr.asFunction<
|
late final _wire__crate__api__http_api__dns_lookup_txt =
|
||||||
void Function(int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
_wire__crate__api__http_api__dns_lookup_txtPtr.asFunction<
|
||||||
|
void Function(int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
||||||
|
|
||||||
void wire_fetch(
|
void wire__crate__api__http_api__fetch(
|
||||||
int port_,
|
int port_,
|
||||||
int method,
|
int method,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> url,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> url,
|
||||||
@ -618,7 +623,7 @@ class RustLibWire implements BaseWire {
|
|||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> input_data,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> input_data,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> with_ip_address,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> with_ip_address,
|
||||||
) {
|
) {
|
||||||
return _wire_fetch(
|
return _wire__crate__api__http_api__fetch(
|
||||||
port_,
|
port_,
|
||||||
method,
|
method,
|
||||||
url,
|
url,
|
||||||
@ -628,7 +633,7 @@ class RustLibWire implements BaseWire {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
late final _wire_fetchPtr = _lookup<
|
late final _wire__crate__api__http_api__fetchPtr = _lookup<
|
||||||
ffi.NativeFunction<
|
ffi.NativeFunction<
|
||||||
ffi.Void Function(
|
ffi.Void Function(
|
||||||
ffi.Int64,
|
ffi.Int64,
|
||||||
@ -637,42 +642,45 @@ class RustLibWire implements BaseWire {
|
|||||||
ffi.Pointer<wire_cst_list_record_string_string>,
|
ffi.Pointer<wire_cst_list_record_string_string>,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
||||||
'frbgen_starcitizen_doctor_wire_fetch');
|
'frbgen_starcitizen_doctor_wire__crate__api__http_api__fetch');
|
||||||
late final _wire_fetch = _wire_fetchPtr.asFunction<
|
late final _wire__crate__api__http_api__fetch =
|
||||||
void Function(
|
_wire__crate__api__http_api__fetchPtr.asFunction<
|
||||||
int,
|
void Function(
|
||||||
int,
|
int,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
int,
|
||||||
ffi.Pointer<wire_cst_list_record_string_string>,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
ffi.Pointer<wire_cst_list_record_string_string>,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
||||||
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
||||||
|
|
||||||
void wire_set_default_header(
|
void wire__crate__api__http_api__set_default_header(
|
||||||
int port_,
|
int port_,
|
||||||
ffi.Pointer<wire_cst_list_record_string_string> headers,
|
ffi.Pointer<wire_cst_list_record_string_string> headers,
|
||||||
) {
|
) {
|
||||||
return _wire_set_default_header(
|
return _wire__crate__api__http_api__set_default_header(
|
||||||
port_,
|
port_,
|
||||||
headers,
|
headers,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
late final _wire_set_default_headerPtr = _lookup<
|
late final _wire__crate__api__http_api__set_default_headerPtr = _lookup<
|
||||||
ffi.NativeFunction<
|
ffi.NativeFunction<
|
||||||
ffi.Void Function(
|
ffi.Void Function(
|
||||||
ffi.Int64, ffi.Pointer<wire_cst_list_record_string_string>)>>(
|
ffi.Int64, ffi.Pointer<wire_cst_list_record_string_string>)>>(
|
||||||
'frbgen_starcitizen_doctor_wire_set_default_header');
|
'frbgen_starcitizen_doctor_wire__crate__api__http_api__set_default_header');
|
||||||
late final _wire_set_default_header = _wire_set_default_headerPtr.asFunction<
|
late final _wire__crate__api__http_api__set_default_header =
|
||||||
void Function(int, ffi.Pointer<wire_cst_list_record_string_string>)>();
|
_wire__crate__api__http_api__set_default_headerPtr.asFunction<
|
||||||
|
void Function(
|
||||||
|
int, ffi.Pointer<wire_cst_list_record_string_string>)>();
|
||||||
|
|
||||||
void wire_start(
|
void wire__crate__api__rs_process__start(
|
||||||
int port_,
|
int port_,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> executable,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> executable,
|
||||||
ffi.Pointer<wire_cst_list_String> arguments,
|
ffi.Pointer<wire_cst_list_String> arguments,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> working_directory,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> working_directory,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> stream_sink,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> stream_sink,
|
||||||
) {
|
) {
|
||||||
return _wire_start(
|
return _wire__crate__api__rs_process__start(
|
||||||
port_,
|
port_,
|
||||||
executable,
|
executable,
|
||||||
arguments,
|
arguments,
|
||||||
@ -681,7 +689,7 @@ class RustLibWire implements BaseWire {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
late final _wire_startPtr = _lookup<
|
late final _wire__crate__api__rs_process__startPtr = _lookup<
|
||||||
ffi.NativeFunction<
|
ffi.NativeFunction<
|
||||||
ffi.Void Function(
|
ffi.Void Function(
|
||||||
ffi.Int64,
|
ffi.Int64,
|
||||||
@ -689,43 +697,46 @@ class RustLibWire implements BaseWire {
|
|||||||
ffi.Pointer<wire_cst_list_String>,
|
ffi.Pointer<wire_cst_list_String>,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
||||||
'frbgen_starcitizen_doctor_wire_start');
|
'frbgen_starcitizen_doctor_wire__crate__api__rs_process__start');
|
||||||
late final _wire_start = _wire_startPtr.asFunction<
|
late final _wire__crate__api__rs_process__start =
|
||||||
void Function(
|
_wire__crate__api__rs_process__startPtr.asFunction<
|
||||||
int,
|
void Function(
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
int,
|
||||||
ffi.Pointer<wire_cst_list_String>,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
ffi.Pointer<wire_cst_list_String>,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
||||||
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
||||||
|
|
||||||
void wire_write(
|
void wire__crate__api__rs_process__write(
|
||||||
int port_,
|
int port_,
|
||||||
int rs_pid,
|
int rs_pid,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> data,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> data,
|
||||||
) {
|
) {
|
||||||
return _wire_write(
|
return _wire__crate__api__rs_process__write(
|
||||||
port_,
|
port_,
|
||||||
rs_pid,
|
rs_pid,
|
||||||
data,
|
data,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
late final _wire_writePtr = _lookup<
|
late final _wire__crate__api__rs_process__writePtr = _lookup<
|
||||||
ffi.NativeFunction<
|
ffi.NativeFunction<
|
||||||
ffi.Void Function(ffi.Int64, ffi.Uint32,
|
ffi.Void Function(ffi.Int64, ffi.Uint32,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
||||||
'frbgen_starcitizen_doctor_wire_write');
|
'frbgen_starcitizen_doctor_wire__crate__api__rs_process__write');
|
||||||
late final _wire_write = _wire_writePtr.asFunction<
|
late final _wire__crate__api__rs_process__write =
|
||||||
void Function(int, int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
_wire__crate__api__rs_process__writePtr.asFunction<
|
||||||
|
void Function(
|
||||||
|
int, int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
||||||
|
|
||||||
void wire_send_notify(
|
void wire__crate__api__win32_api__send_notify(
|
||||||
int port_,
|
int port_,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> summary,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> summary,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> body,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> body,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> app_name,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> app_name,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> app_id,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> app_id,
|
||||||
) {
|
) {
|
||||||
return _wire_send_notify(
|
return _wire__crate__api__win32_api__send_notify(
|
||||||
port_,
|
port_,
|
||||||
summary,
|
summary,
|
||||||
body,
|
body,
|
||||||
@ -734,7 +745,7 @@ class RustLibWire implements BaseWire {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
late final _wire_send_notifyPtr = _lookup<
|
late final _wire__crate__api__win32_api__send_notifyPtr = _lookup<
|
||||||
ffi.NativeFunction<
|
ffi.NativeFunction<
|
||||||
ffi.Void Function(
|
ffi.Void Function(
|
||||||
ffi.Int64,
|
ffi.Int64,
|
||||||
@ -742,32 +753,33 @@ class RustLibWire implements BaseWire {
|
|||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
||||||
'frbgen_starcitizen_doctor_wire_send_notify');
|
'frbgen_starcitizen_doctor_wire__crate__api__win32_api__send_notify');
|
||||||
late final _wire_send_notify = _wire_send_notifyPtr.asFunction<
|
late final _wire__crate__api__win32_api__send_notify =
|
||||||
void Function(
|
_wire__crate__api__win32_api__send_notifyPtr.asFunction<
|
||||||
int,
|
void Function(
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
int,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>,
|
||||||
|
ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
||||||
|
|
||||||
void wire_set_foreground_window(
|
void wire__crate__api__win32_api__set_foreground_window(
|
||||||
int port_,
|
int port_,
|
||||||
ffi.Pointer<wire_cst_list_prim_u_8_strict> window_name,
|
ffi.Pointer<wire_cst_list_prim_u_8_strict> window_name,
|
||||||
) {
|
) {
|
||||||
return _wire_set_foreground_window(
|
return _wire__crate__api__win32_api__set_foreground_window(
|
||||||
port_,
|
port_,
|
||||||
window_name,
|
window_name,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
late final _wire_set_foreground_windowPtr = _lookup<
|
late final _wire__crate__api__win32_api__set_foreground_windowPtr = _lookup<
|
||||||
ffi.NativeFunction<
|
ffi.NativeFunction<
|
||||||
ffi.Void Function(
|
ffi.Void Function(
|
||||||
ffi.Int64, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
ffi.Int64, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>>(
|
||||||
'frbgen_starcitizen_doctor_wire_set_foreground_window');
|
'frbgen_starcitizen_doctor_wire__crate__api__win32_api__set_foreground_window');
|
||||||
late final _wire_set_foreground_window =
|
late final _wire__crate__api__win32_api__set_foreground_window =
|
||||||
_wire_set_foreground_windowPtr.asFunction<
|
_wire__crate__api__win32_api__set_foreground_windowPtr.asFunction<
|
||||||
void Function(int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
void Function(int, ffi.Pointer<wire_cst_list_prim_u_8_strict>)>();
|
||||||
|
|
||||||
ffi.Pointer<wire_cst_rsi_launcher_asar_data>
|
ffi.Pointer<wire_cst_rsi_launcher_asar_data>
|
||||||
|
|||||||
@ -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.0.0-dev.33.
|
// @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
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ class RustHttpResponse {
|
|||||||
final int statusCode;
|
final int statusCode;
|
||||||
final Map<String, String> headers;
|
final Map<String, String> headers;
|
||||||
final String url;
|
final String url;
|
||||||
final int? contentLength;
|
final BigInt? contentLength;
|
||||||
final MyHttpVersion version;
|
final MyHttpVersion version;
|
||||||
final String remoteAddr;
|
final String remoteAddr;
|
||||||
final Uint8List? data;
|
final Uint8List? data;
|
||||||
|
|||||||
@ -23,10 +23,10 @@ void dPrint(src) async {
|
|||||||
Future<void> initDPrintFile(String applicationSupportDir) async {
|
Future<void> initDPrintFile(String applicationSupportDir) async {
|
||||||
final now = DateTime.now();
|
final now = DateTime.now();
|
||||||
final logFile =
|
final logFile =
|
||||||
File("$applicationSupportDir\\logs\\${now.millisecondsSinceEpoch}.log");
|
File("$applicationSupportDir/logs/${now.millisecondsSinceEpoch}.log");
|
||||||
await logFile.create(recursive: true);
|
await logFile.create(recursive: true);
|
||||||
_logFile = logFile;
|
_logFile = logFile;
|
||||||
final logsDir = Directory("$applicationSupportDir\\logs");
|
final logsDir = Directory("$applicationSupportDir/logs");
|
||||||
await for (final files in logsDir.list()) {
|
await for (final files in logsDir.list()) {
|
||||||
if (files is File) {
|
if (files is File) {
|
||||||
final stat = await files.stat();
|
final stat = await files.stat();
|
||||||
|
|||||||
@ -51,7 +51,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"Add ForcedPhysicalsectorsizeinbytes value to the registry item to simulate old devices. Hard disk partition (${v0})";
|
"Add ForcedPhysicalsectorsizeinbytes value to the registry item to simulate old devices. Hard disk partition (${v0})";
|
||||||
|
|
||||||
static String m13(v0) =>
|
static String m13(v0) =>
|
||||||
"No-English installation path! This may cause the game to start/install errors! (${v0}), please replace the installation path at the RSI starter.";
|
"No-English installation path! This may cause the game to start/install errors! (${v0}), please replace the installation path at the RSI Launcher.";
|
||||||
|
|
||||||
static String m14(v0) =>
|
static String m14(v0) =>
|
||||||
"Click to fix the Live folder for you, and install it after completion. (${v0})";
|
"Click to fix the Live folder for you, and install it after completion. (${v0})";
|
||||||
@ -128,7 +128,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"The cache size ${v0} MB, clean up the Localization -based file cache of the download of the box, will not affect the installed Localization";
|
"The cache size ${v0} MB, clean up the Localization -based file cache of the download of the box, will not affect the installed Localization";
|
||||||
|
|
||||||
static String m46(v0) =>
|
static String m46(v0) =>
|
||||||
"Core quantity that has been set: ${v0} (This function is suitable for the box -click startup or RSI starter manager mode on the homepage, which is not enabled when it is 0)";
|
"Core quantity that has been set: ${v0} (This function is suitable for the box -click startup or RSI Launcher manager mode on the homepage, which is not enabled when it is 0)";
|
||||||
|
|
||||||
static String m47(v0) =>
|
static String m47(v0) =>
|
||||||
"Failure to clean up, please remove manually, file location: ${v0}";
|
"Failure to clean up, please remove manually, file location: ${v0}";
|
||||||
@ -152,11 +152,12 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
|
|
||||||
static String m54(v0) => "Failure to handle! : ${v0}";
|
static String m54(v0) => "Failure to handle! : ${v0}";
|
||||||
|
|
||||||
static String m55(v0) => "Read the starter information failure: ${v0}";
|
static String m55(v0) => "Read the RSI Launcher information failure: ${v0}";
|
||||||
|
|
||||||
static String m56(v0) => "Patch status: ${v0}";
|
static String m56(v0) => "Patch status: ${v0}";
|
||||||
|
|
||||||
static String m57(v0) => "Internal version information of the starter: ${v0}";
|
static String m57(v0) =>
|
||||||
|
"Internal version information of the RSI Launcher: ${v0}";
|
||||||
|
|
||||||
static String m58(v0) => "Open the file: ${v0}";
|
static String m58(v0) => "Open the file: ${v0}";
|
||||||
|
|
||||||
@ -240,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":
|
||||||
@ -299,12 +300,12 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"The tutorial is about to jump, the tutorial comes from the Internet, please operate carefully ..."),
|
"The tutorial is about to jump, the tutorial comes from the Internet, please operate carefully ..."),
|
||||||
"doctor_action_result_toast_scan_no_issue":
|
"doctor_action_result_toast_scan_no_issue":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"After scanning, no problem is found. If you still fail, try to use the RSI starter administrator mode in the toolbox."),
|
"After scanning, no problem is found. If you still fail, try to use the RSI Launcher administrator mode in the toolbox."),
|
||||||
"doctor_action_result_try_latest_windows":
|
"doctor_action_result_try_latest_windows":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"If your hardware meets the standard, try to install the latest Windows system."),
|
"If your hardware meets the standard, try to install the latest Windows system."),
|
||||||
"doctor_action_rsi_launcher_log":
|
"doctor_action_rsi_launcher_log":
|
||||||
MessageLookupByLibrary.simpleMessage("RSI starter log"),
|
MessageLookupByLibrary.simpleMessage("RSI Launcher log"),
|
||||||
"doctor_action_tip_checking_game_log":
|
"doctor_action_tip_checking_game_log":
|
||||||
MessageLookupByLibrary.simpleMessage("Inspection: Game.log"),
|
MessageLookupByLibrary.simpleMessage("Inspection: Game.log"),
|
||||||
"doctor_action_view_details":
|
"doctor_action_view_details":
|
||||||
@ -326,11 +327,16 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"The game process is occupied"),
|
"The game process is occupied"),
|
||||||
"doctor_game_error_game_process_error_info":
|
"doctor_game_error_game_process_error_info":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Please try to restart the starter, or restart the computer directly"),
|
"Please try to restart the RSI Launcher, or restart the computer directly"),
|
||||||
"doctor_game_error_generic_info": MessageLookupByLibrary.simpleMessage(
|
"doctor_game_error_generic_info": MessageLookupByLibrary.simpleMessage(
|
||||||
"The game triggered a generic crash, please check the trouble shooting guide"),
|
"The game triggered a generic crash, please check the trouble shooting guide"),
|
||||||
"doctor_game_error_gpu_crash": MessageLookupByLibrary.simpleMessage(
|
"doctor_game_error_gpu_crash": MessageLookupByLibrary.simpleMessage(
|
||||||
"Your graphics card crashes! Please check the barrier guide"),
|
"Your graphics card crashes! Please check the barrier guide"),
|
||||||
|
"doctor_game_error_gpu_vulkan_crash":
|
||||||
|
MessageLookupByLibrary.simpleMessage("GPU Vulkan Crash"),
|
||||||
|
"doctor_game_error_gpu_vulkan_crash_info":
|
||||||
|
MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Vulkan Crash! This may be the problem of driving version or game engine, please try to update the GPU driver or use the color cleaner function to return to DX11"),
|
||||||
"doctor_game_error_low_gpu_memory":
|
"doctor_game_error_low_gpu_memory":
|
||||||
MessageLookupByLibrary.simpleMessage("Insufficient VRAM"),
|
MessageLookupByLibrary.simpleMessage("Insufficient VRAM"),
|
||||||
"doctor_game_error_low_gpu_memory_info":
|
"doctor_game_error_low_gpu_memory_info":
|
||||||
@ -344,7 +350,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
MessageLookupByLibrary.simpleMessage("Insufficient permissions"),
|
MessageLookupByLibrary.simpleMessage("Insufficient permissions"),
|
||||||
"doctor_game_error_permissions_error_info":
|
"doctor_game_error_permissions_error_info":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Please try to run a starter at the administrator authority, or use the box (Microsoft Store version) to start."),
|
"Please try to run a RSI Launcher at the administrator authority, or use the box (Microsoft Store version) to start."),
|
||||||
"doctor_game_error_socket_error": MessageLookupByLibrary.simpleMessage(
|
"doctor_game_error_socket_error": MessageLookupByLibrary.simpleMessage(
|
||||||
"Detected SOCKET abnormalities"),
|
"Detected SOCKET abnormalities"),
|
||||||
"doctor_game_error_socket_error_info": MessageLookupByLibrary.simpleMessage(
|
"doctor_game_error_socket_error_info": MessageLookupByLibrary.simpleMessage(
|
||||||
@ -375,7 +381,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"doctor_info_result_fix_suggestion": m15,
|
"doctor_info_result_fix_suggestion": m15,
|
||||||
"doctor_info_result_incompatible_nvme_device":
|
"doctor_info_result_incompatible_nvme_device":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"The new NVME device is not compatible with the RSI starter for the time being, which may cause the installation to fail"),
|
"The new NVME device is not compatible with the RSI Launcher for the time being, which may cause the installation to fail"),
|
||||||
"doctor_info_result_install_easyanticheat":
|
"doctor_info_result_install_easyanticheat":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Easyanticheat is not installed, please click to repair it for you one click. (Before the game starts normally and ends, the problem will always appear. If you retreat for other reasons, you can ignore this entry)"),
|
"Easyanticheat is not installed, please click to repair it for you one click. (Before the game starts normally and ends, the problem will always appear. If you retreat for other reasons, you can ignore this entry)"),
|
||||||
@ -394,7 +400,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"doctor_info_result_upgrade_system": m17,
|
"doctor_info_result_upgrade_system": m17,
|
||||||
"doctor_info_result_verify_files_with_rsi_launcher":
|
"doctor_info_result_verify_files_with_rsi_launcher":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Not found the EasyAnticheat file or file incomplete in the Live folder, please use the RSI starter to check the file"),
|
"Not found the EasyAnticheat file or file incomplete in the Live folder, please use the RSI Launcher to check the file"),
|
||||||
"doctor_info_scan_complete_no_issues":
|
"doctor_info_scan_complete_no_issues":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"After scanning, no problem was found!"),
|
"After scanning, no problem was found!"),
|
||||||
@ -570,6 +576,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
MessageLookupByLibrary.simpleMessage("Install custom file"),
|
MessageLookupByLibrary.simpleMessage("Install custom file"),
|
||||||
"home_localization_action_rsi_launcher_localization":
|
"home_localization_action_rsi_launcher_localization":
|
||||||
MessageLookupByLibrary.simpleMessage("RSILauncher Localization"),
|
MessageLookupByLibrary.simpleMessage("RSILauncher Localization"),
|
||||||
|
"home_localization_action_rsi_launcher_no_game_path_msg":
|
||||||
|
MessageLookupByLibrary.simpleMessage(
|
||||||
|
"You are not currently installed in the game body or the game installation directory is not selected, and you can only use the promoter Chinese function. Please make sure the game is installed or adds the game installation directory in the box settings."),
|
||||||
"home_localization_action_select_customize_file":
|
"home_localization_action_select_customize_file":
|
||||||
MessageLookupByLibrary.simpleMessage("Click to select INI file"),
|
MessageLookupByLibrary.simpleMessage("Click to select INI file"),
|
||||||
"home_localization_advanced_action_install":
|
"home_localization_advanced_action_install":
|
||||||
@ -710,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,
|
||||||
@ -915,7 +924,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Confirm that resetting automatic filling?"),
|
"Confirm that resetting automatic filling?"),
|
||||||
"setting_action_info_cpu_core_tip": MessageLookupByLibrary.simpleMessage(
|
"setting_action_info_cpu_core_tip": MessageLookupByLibrary.simpleMessage(
|
||||||
"Tip: Input a few of your equipment with a few energy efficiency cores, please keep 0 non -large and small nuclear equipment 0\n\nThis function is suitable for the box of one -click startup or the RSI starter mode in the box on the homepage. This function is not enabled when it is 0."),
|
"Tip: Input a few of your equipment with a few energy efficiency cores, please keep 0 non -large and small nuclear equipment 0\n\nThis function is suitable for the box of one -click startup or the RSI Launcher Admin mode in the box on the homepage. This function is not enabled when it is 0."),
|
||||||
"setting_action_info_delete_local_account_warning":
|
"setting_action_info_delete_local_account_warning":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"This will delete local account records, or it will automatically fill in the next time the game starts the game to disable automatic filling."),
|
"This will delete local account records, or it will automatically fill in the next time the game starts the game to disable automatic filling."),
|
||||||
@ -929,7 +938,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"Manually set the game installation location, it is recommended to use it only when the installation location cannot be automatically scanned"),
|
"Manually set the game installation location, it is recommended to use it only when the installation location cannot be automatically scanned"),
|
||||||
"setting_action_info_manual_launcher_location_setting":
|
"setting_action_info_manual_launcher_location_setting":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Set the position of the starter manually, it is recommended to use it only when the installation position cannot be automatically scanned automatically"),
|
"Set the position of the RSI Launcher manually, it is recommended to use it only when the installation position cannot be automatically scanned automatically"),
|
||||||
"setting_action_info_microsoft_version_limitation":
|
"setting_action_info_microsoft_version_limitation":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Due to Microsoft\'s version restrictions, manually drag the SCToolBox to the desktop in the next window to create a shortcut."),
|
"Due to Microsoft\'s version restrictions, manually drag the SCToolBox to the desktop in the next window to create a shortcut."),
|
||||||
@ -941,7 +950,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"Please select the game installation position (StarCitizen.exe)"),
|
"Please select the game installation position (StarCitizen.exe)"),
|
||||||
"setting_action_info_select_rsi_launcher_location":
|
"setting_action_info_select_rsi_launcher_location":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Please select the RSI starter position (RSI LAUNCHER.EXE)"),
|
"Please select the RSI Launcher position (RSI LAUNCHER.EXE)"),
|
||||||
"setting_action_info_setting_success": MessageLookupByLibrary.simpleMessage(
|
"setting_action_info_setting_success": MessageLookupByLibrary.simpleMessage(
|
||||||
"Successfully set, click refresh on the corresponding page to scan the new path"),
|
"Successfully set, click refresh on the corresponding page to scan the new path"),
|
||||||
"setting_action_info_shortcut_created":
|
"setting_action_info_shortcut_created":
|
||||||
@ -999,7 +1008,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"tools_action_info_init_failed": m49,
|
"tools_action_info_init_failed": m49,
|
||||||
"tools_action_info_log_file_not_exist":
|
"tools_action_info_log_file_not_exist":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"The log file does not exist, please try to start a game startup or game installation, and exit the starter. If the problem cannot be solved, try to update the launcher to the latest version!"),
|
"The log file does not exist, please try to start a game startup or game installation, and exit the RSI Launcher. If the problem cannot be solved, try to update the launcher to the latest version!"),
|
||||||
"tools_action_info_log_file_parse_failed":
|
"tools_action_info_log_file_parse_failed":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Analysis of LOG files failed!\nTry to use RSI Launcher Log repair tool!"),
|
"Analysis of LOG files failed!\nTry to use RSI Launcher Log repair tool!"),
|
||||||
@ -1019,7 +1028,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"The diversion download service provided by citizenwiki.cn can be used to download or fix P4K.\nLimited resources, please do not abuse."),
|
"The diversion download service provided by citizenwiki.cn can be used to download or fix P4K.\nLimited resources, please do not abuse."),
|
||||||
"tools_action_info_p4k_file_description":
|
"tools_action_info_p4k_file_description":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"P4K is the core game file of interstellar citizens, as high as 100GB+. The offline download provided by the box is to help some P4K files download super slow users or to repair the P4K file that the official launch cannot be repaired.\n\nNext, you will pop up the window and ask you to save the position (you can choose the Star Citizens Folder or you can choose elsewhere). After downloading, please make sure that the P4K folder is located in the LIVE folder, and then use the Star Citizen starter to check it."),
|
"P4K is the core game file of interstellar citizens, as high as 100GB+. The offline download provided by the box is to help some P4K files download super slow users or to repair the P4K file that the official launch cannot be repaired.\n\nNext, you will pop up the window and ask you to save the position (you can choose the Star Citizens Folder or you can choose elsewhere). After downloading, please make sure that the P4K folder is located in the LIVE folder, and then use the RSI Launcher to check it."),
|
||||||
"tools_action_info_reinstall_eac": MessageLookupByLibrary.simpleMessage(
|
"tools_action_info_reinstall_eac": MessageLookupByLibrary.simpleMessage(
|
||||||
"If you encounter EAC errors and are invalid automatically, try using this feature to reinstall EAC."),
|
"If you encounter EAC errors and are invalid automatically, try using this feature to reinstall EAC."),
|
||||||
"tools_action_info_removed_restart_effective":
|
"tools_action_info_removed_restart_effective":
|
||||||
@ -1030,14 +1039,14 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"Restoring the lens shaking effect.\n\n@Lapernum offers parameter information."),
|
"Restoring the lens shaking effect.\n\n@Lapernum offers parameter information."),
|
||||||
"tools_action_info_rsi_launcher_directory_not_found":
|
"tools_action_info_rsi_launcher_directory_not_found":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"If the RSI starter directory is not found, please try manually."),
|
"If the RSI Launcher directory is not found, please try manually."),
|
||||||
"tools_action_info_rsi_launcher_log_issue": m51,
|
"tools_action_info_rsi_launcher_log_issue": m51,
|
||||||
"tools_action_info_rsi_launcher_not_found":
|
"tools_action_info_rsi_launcher_not_found":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"If the RSI label is not found, try to reinstall it or add it manually in the settings."),
|
"If the RSI label is not found, try to reinstall it or add it manually in the settings."),
|
||||||
"tools_action_info_rsi_launcher_running_warning":
|
"tools_action_info_rsi_launcher_running_warning":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"The RSI starter is running! Please turn off the label first and then use this feature!"),
|
"The RSI Launcher is running! Please turn off the label first and then use this feature!"),
|
||||||
"tools_action_info_run_rsi_as_admin": MessageLookupByLibrary.simpleMessage(
|
"tools_action_info_run_rsi_as_admin": MessageLookupByLibrary.simpleMessage(
|
||||||
"Run RSI startups as an administrator may solve some problems.\n\nIf the energy efficiency core shielding parameters are set, it will also be applied here."),
|
"Run RSI startups as an administrator may solve some problems.\n\nIf the energy efficiency core shielding parameters are set, it will also be applied here."),
|
||||||
"tools_action_info_shader_cache_issue": m52,
|
"tools_action_info_shader_cache_issue": m52,
|
||||||
@ -1098,8 +1107,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"RSI customer service station"),
|
"RSI customer service station"),
|
||||||
"tools_hosts_info_rsi_official_website":
|
"tools_hosts_info_rsi_official_website":
|
||||||
MessageLookupByLibrary.simpleMessage("RSI official website"),
|
MessageLookupByLibrary.simpleMessage("RSI official website"),
|
||||||
"tools_hosts_info_rsi_zendesk": MessageLookupByLibrary.simpleMessage(
|
|
||||||
"RSI ZENDESK Customer Service Station"),
|
|
||||||
"tools_hosts_info_site": MessageLookupByLibrary.simpleMessage("Site"),
|
"tools_hosts_info_site": MessageLookupByLibrary.simpleMessage("Site"),
|
||||||
"tools_hosts_info_status":
|
"tools_hosts_info_status":
|
||||||
MessageLookupByLibrary.simpleMessage("Status"),
|
MessageLookupByLibrary.simpleMessage("Status"),
|
||||||
@ -1110,7 +1117,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"Game installation location: "),
|
"Game installation location: "),
|
||||||
"tools_info_processing_failed": m54,
|
"tools_info_processing_failed": m54,
|
||||||
"tools_info_rsi_launcher_location":
|
"tools_info_rsi_launcher_location":
|
||||||
MessageLookupByLibrary.simpleMessage("RSI starter position:"),
|
MessageLookupByLibrary.simpleMessage("RSI Launcher position:"),
|
||||||
"tools_info_scanning":
|
"tools_info_scanning":
|
||||||
MessageLookupByLibrary.simpleMessage("Scanning..."),
|
MessageLookupByLibrary.simpleMessage("Scanning..."),
|
||||||
"tools_rsi_launcher_enhance_action_expand":
|
"tools_rsi_launcher_enhance_action_expand":
|
||||||
@ -1122,7 +1129,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
MessageLookupByLibrary.simpleMessage("Installation enhanced patch"),
|
MessageLookupByLibrary.simpleMessage("Installation enhanced patch"),
|
||||||
"tools_rsi_launcher_enhance_init_msg1":
|
"tools_rsi_launcher_enhance_init_msg1":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Read the starter information ..."),
|
"Read the RSI Launcher information ..."),
|
||||||
"tools_rsi_launcher_enhance_init_msg2":
|
"tools_rsi_launcher_enhance_init_msg2":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Obtaining enhanced data from the Internet ..."),
|
"Obtaining enhanced data from the Internet ..."),
|
||||||
@ -1131,7 +1138,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"Obtaining enhanced data failure may be the network problem or the current version does not support"),
|
"Obtaining enhanced data failure may be the network problem or the current version does not support"),
|
||||||
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error":
|
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Reading the starter information failed!"),
|
"Reading the Launcher information failed!"),
|
||||||
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args":
|
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args":
|
||||||
m55,
|
m55,
|
||||||
"tools_rsi_launcher_enhance_msg_error_launcher_notfound":
|
"tools_rsi_launcher_enhance_msg_error_launcher_notfound":
|
||||||
@ -1142,21 +1149,21 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"* If you need to uninstall the enhanced patch, cover the installation RSI promoter."),
|
"* If you need to uninstall the enhanced patch, cover the installation RSI promoter."),
|
||||||
"tools_rsi_launcher_enhance_msg_version": m57,
|
"tools_rsi_launcher_enhance_msg_version": m57,
|
||||||
"tools_rsi_launcher_enhance_note_msg": MessageLookupByLibrary.simpleMessage(
|
"tools_rsi_launcher_enhance_note_msg": MessageLookupByLibrary.simpleMessage(
|
||||||
"RSI starter enhancement is a community function. It will unpack \"RSI LAUNCHER\" on your computer and add additional enhancement functions. What functions are determined by you.\n\nAt present, the official (CIG) only permits us to perform multi -language operations. The launch of the booter download enhancement is an extra function we think of it. Violation of the CIG user protocol (https://robertsspaceindustries.com/eula) may cause serious consequences such as accounts. Whether or not you are determined by yourself, we are not responsible for the possible consequences (game damage, account ban, etc.).\n\nFor the modified content of the starter, we are open from: https://github.com/starcitizentoolbox/rsilauncherenhance. If necessary, you can check it yourself.\n\nIf you need to cancel this enhanced patch for any reason, cover the installation of the official startup directly."),
|
"RSI Launcher enhancement is a community function. It will unpack \"RSI LAUNCHER\" on your computer and add additional enhancement functions. What functions are determined by you.\n\nAt present, the official (CIG) only permits us to perform multi -language operations. The launch of the booter download enhancement is an extra function we think of it. Violation of the CIG user protocol (https://robertsspaceindustries.com/eula) may cause serious consequences such as accounts. Whether or not you are determined by yourself, we are not responsible for the possible consequences (game damage, account ban, etc.).\n\nFor the modified content of the Launcher, we are open from: https://github.com/starcitizentoolbox/rsilauncherenhance. If necessary, you can check it yourself.\n\nIf you need to cancel this enhanced patch for any reason, cover the installation of the official RSI Launcher directly."),
|
||||||
"tools_rsi_launcher_enhance_note_title":
|
"tools_rsi_launcher_enhance_note_title":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Instructions for the use of RSI starter enhancement"),
|
"Instructions for the use of RSI Launcher enhancement"),
|
||||||
"tools_rsi_launcher_enhance_subtitle_download_booster":
|
"tools_rsi_launcher_enhance_subtitle_download_booster":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"When downloading the game, you can use more threads to increase the download speed."),
|
"When downloading the game, you can use more threads to increase the download speed."),
|
||||||
"tools_rsi_launcher_enhance_subtitle_localization":
|
"tools_rsi_launcher_enhance_subtitle_localization":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"Add multi -language support to the RSI starter."),
|
"Add multi -language support to the RSI Launcher."),
|
||||||
"tools_rsi_launcher_enhance_title":
|
"tools_rsi_launcher_enhance_title":
|
||||||
MessageLookupByLibrary.simpleMessage("RSI starter enhancement"),
|
MessageLookupByLibrary.simpleMessage("RSI Launcher enhancement"),
|
||||||
"tools_rsi_launcher_enhance_title_download_booster":
|
"tools_rsi_launcher_enhance_title_download_booster":
|
||||||
MessageLookupByLibrary.simpleMessage(
|
MessageLookupByLibrary.simpleMessage(
|
||||||
"RSI starter download enhancement"),
|
"RSI Launcher download enhancement"),
|
||||||
"tools_rsi_launcher_enhance_title_localization":
|
"tools_rsi_launcher_enhance_title_localization":
|
||||||
MessageLookupByLibrary.simpleMessage("RSI startup localization"),
|
MessageLookupByLibrary.simpleMessage("RSI startup localization"),
|
||||||
"tools_rsi_launcher_enhance_working_msg1":
|
"tools_rsi_launcher_enhance_working_msg1":
|
||||||
|
|||||||
@ -297,6 +297,11 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
MessageLookupByLibrary.simpleMessage("游戏触发了最为广泛的崩溃问题,请查看排障指南"),
|
MessageLookupByLibrary.simpleMessage("游戏触发了最为广泛的崩溃问题,请查看排障指南"),
|
||||||
"doctor_game_error_gpu_crash":
|
"doctor_game_error_gpu_crash":
|
||||||
MessageLookupByLibrary.simpleMessage("您的显卡崩溃啦!请查看排障指南"),
|
MessageLookupByLibrary.simpleMessage("您的显卡崩溃啦!请查看排障指南"),
|
||||||
|
"doctor_game_error_gpu_vulkan_crash":
|
||||||
|
MessageLookupByLibrary.simpleMessage("GPU Vulkan 崩溃"),
|
||||||
|
"doctor_game_error_gpu_vulkan_crash_info":
|
||||||
|
MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Vulkan 崩溃!这可能是驱动版本或游戏引擎问题,请尝试更新 GPU 驱动 或 使用清理着色器功能为您回退到 DX11"),
|
||||||
"doctor_game_error_low_gpu_memory":
|
"doctor_game_error_low_gpu_memory":
|
||||||
MessageLookupByLibrary.simpleMessage("可用显存不足"),
|
MessageLookupByLibrary.simpleMessage("可用显存不足"),
|
||||||
"doctor_game_error_low_gpu_memory_info":
|
"doctor_game_error_low_gpu_memory_info":
|
||||||
@ -512,6 +517,9 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
MessageLookupByLibrary.simpleMessage("安装自定义文件"),
|
MessageLookupByLibrary.simpleMessage("安装自定义文件"),
|
||||||
"home_localization_action_rsi_launcher_localization":
|
"home_localization_action_rsi_launcher_localization":
|
||||||
MessageLookupByLibrary.simpleMessage("RSI 启动器汉化"),
|
MessageLookupByLibrary.simpleMessage("RSI 启动器汉化"),
|
||||||
|
"home_localization_action_rsi_launcher_no_game_path_msg":
|
||||||
|
MessageLookupByLibrary.simpleMessage(
|
||||||
|
"您当前未安装游戏本体或未选择游戏安装目录,只可使用启动器汉化功能。请确保游戏安装完毕或在盒子设置中添加游戏安装目录后重试。"),
|
||||||
"home_localization_action_select_customize_file":
|
"home_localization_action_select_customize_file":
|
||||||
MessageLookupByLibrary.simpleMessage("点击选择 ini 文件"),
|
MessageLookupByLibrary.simpleMessage("点击选择 ini 文件"),
|
||||||
"home_localization_advanced_action_install":
|
"home_localization_advanced_action_install":
|
||||||
@ -638,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,
|
||||||
@ -979,8 +987,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
MessageLookupByLibrary.simpleMessage("RSI 客服站"),
|
MessageLookupByLibrary.simpleMessage("RSI 客服站"),
|
||||||
"tools_hosts_info_rsi_official_website":
|
"tools_hosts_info_rsi_official_website":
|
||||||
MessageLookupByLibrary.simpleMessage("RSI 官网"),
|
MessageLookupByLibrary.simpleMessage("RSI 官网"),
|
||||||
"tools_hosts_info_rsi_zendesk":
|
|
||||||
MessageLookupByLibrary.simpleMessage("RSI Zendesk 客服站"),
|
|
||||||
"tools_hosts_info_site": MessageLookupByLibrary.simpleMessage("站点"),
|
"tools_hosts_info_site": MessageLookupByLibrary.simpleMessage("站点"),
|
||||||
"tools_hosts_info_status": MessageLookupByLibrary.simpleMessage("状态"),
|
"tools_hosts_info_status": MessageLookupByLibrary.simpleMessage("状态"),
|
||||||
"tools_hosts_info_writing_hosts":
|
"tools_hosts_info_writing_hosts":
|
||||||
|
|||||||
@ -296,6 +296,11 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
MessageLookupByLibrary.simpleMessage("遊戲觸發了最為廣泛的崩潰問題,請查看除錯指南"),
|
MessageLookupByLibrary.simpleMessage("遊戲觸發了最為廣泛的崩潰問題,請查看除錯指南"),
|
||||||
"doctor_game_error_gpu_crash":
|
"doctor_game_error_gpu_crash":
|
||||||
MessageLookupByLibrary.simpleMessage("您的顯示卡已崩潰,請查看除錯指南"),
|
MessageLookupByLibrary.simpleMessage("您的顯示卡已崩潰,請查看除錯指南"),
|
||||||
|
"doctor_game_error_gpu_vulkan_crash":
|
||||||
|
MessageLookupByLibrary.simpleMessage("GPU Vulkan 崩潰"),
|
||||||
|
"doctor_game_error_gpu_vulkan_crash_info":
|
||||||
|
MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Vulkan 崩潰!這可能是驅動版本或遊戲引擎問題,請嘗試更新 GPU 驅動 或 使用清理著色器功能為您回退到 DX11"),
|
||||||
"doctor_game_error_low_gpu_memory":
|
"doctor_game_error_low_gpu_memory":
|
||||||
MessageLookupByLibrary.simpleMessage("可用 VRAM 不足"),
|
MessageLookupByLibrary.simpleMessage("可用 VRAM 不足"),
|
||||||
"doctor_game_error_low_gpu_memory_info":
|
"doctor_game_error_low_gpu_memory_info":
|
||||||
@ -513,6 +518,11 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
MessageLookupByLibrary.simpleMessage("安裝自訂文件"),
|
MessageLookupByLibrary.simpleMessage("安裝自訂文件"),
|
||||||
"home_localization_action_rsi_launcher_localization":
|
"home_localization_action_rsi_launcher_localization":
|
||||||
MessageLookupByLibrary.simpleMessage("RSI 啟動器翻譯"),
|
MessageLookupByLibrary.simpleMessage("RSI 啟動器翻譯"),
|
||||||
|
"home_localization_action_rsi_launcher_no_game_path_msg":
|
||||||
|
MessageLookupByLibrary.simpleMessage(
|
||||||
|
"您當前未安裝遊戲本體或未選擇遊戲安裝目錄,只可使用啟動器翻譯功能。請確保遊戲安裝完畢或在工具箱設置中添加遊戲安裝目錄後重試。"),
|
||||||
|
"home_localization_action_select_customize_file":
|
||||||
|
MessageLookupByLibrary.simpleMessage("點擊選擇 ini 文件"),
|
||||||
"home_localization_advanced_action_install":
|
"home_localization_advanced_action_install":
|
||||||
MessageLookupByLibrary.simpleMessage("安裝翻譯"),
|
MessageLookupByLibrary.simpleMessage("安裝翻譯"),
|
||||||
"home_localization_advanced_action_mod_change":
|
"home_localization_advanced_action_mod_change":
|
||||||
@ -570,6 +580,15 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"home_localization_new_version_available":
|
"home_localization_new_version_available":
|
||||||
MessageLookupByLibrary.simpleMessage("社群翻譯有新的版本"),
|
MessageLookupByLibrary.simpleMessage("社群翻譯有新的版本"),
|
||||||
"home_localization_new_version_installed": m34,
|
"home_localization_new_version_installed": m34,
|
||||||
|
"home_localization_ptu_advanced_localization_tip_title":
|
||||||
|
MessageLookupByLibrary.simpleMessage("推薦使用高級翻譯"),
|
||||||
|
"home_localization_ptu_advanced_localization_tip_title_info":
|
||||||
|
MessageLookupByLibrary.simpleMessage(
|
||||||
|
"在 PTU/EPTU 等測試頻道 ,當前翻譯文本可能與遊戲不同步,使用高級翻譯可以減少亂碼產生。"),
|
||||||
|
"home_localization_select_customize_file":
|
||||||
|
MessageLookupByLibrary.simpleMessage("請選擇自定義翻譯文件"),
|
||||||
|
"home_localization_select_customize_file_ini":
|
||||||
|
MessageLookupByLibrary.simpleMessage("請選擇 ini 文件"),
|
||||||
"home_localization_title_localization_tools":
|
"home_localization_title_localization_tools":
|
||||||
MessageLookupByLibrary.simpleMessage("翻譯工具"),
|
MessageLookupByLibrary.simpleMessage("翻譯工具"),
|
||||||
"home_login_action_title_box_one_click_launch":
|
"home_login_action_title_box_one_click_launch":
|
||||||
@ -630,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,
|
||||||
@ -971,8 +990,6 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
MessageLookupByLibrary.simpleMessage("RSI 客服站"),
|
MessageLookupByLibrary.simpleMessage("RSI 客服站"),
|
||||||
"tools_hosts_info_rsi_official_website":
|
"tools_hosts_info_rsi_official_website":
|
||||||
MessageLookupByLibrary.simpleMessage("RSI 官方網站"),
|
MessageLookupByLibrary.simpleMessage("RSI 官方網站"),
|
||||||
"tools_hosts_info_rsi_zendesk":
|
|
||||||
MessageLookupByLibrary.simpleMessage("RSI Zendesk 客服站"),
|
|
||||||
"tools_hosts_info_site": MessageLookupByLibrary.simpleMessage("站點"),
|
"tools_hosts_info_site": MessageLookupByLibrary.simpleMessage("站點"),
|
||||||
"tools_hosts_info_status": MessageLookupByLibrary.simpleMessage("狀態"),
|
"tools_hosts_info_status": MessageLookupByLibrary.simpleMessage("狀態"),
|
||||||
"tools_hosts_info_writing_hosts":
|
"tools_hosts_info_writing_hosts":
|
||||||
@ -983,6 +1000,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
"tools_info_rsi_launcher_location":
|
"tools_info_rsi_launcher_location":
|
||||||
MessageLookupByLibrary.simpleMessage("RSI啟動器位置:"),
|
MessageLookupByLibrary.simpleMessage("RSI啟動器位置:"),
|
||||||
"tools_info_scanning": MessageLookupByLibrary.simpleMessage("正在掃描..."),
|
"tools_info_scanning": MessageLookupByLibrary.simpleMessage("正在掃描..."),
|
||||||
|
"tools_rsi_launcher_enhance_action_expand":
|
||||||
|
MessageLookupByLibrary.simpleMessage("展開額外功能"),
|
||||||
|
"tools_rsi_launcher_enhance_action_fold":
|
||||||
|
MessageLookupByLibrary.simpleMessage("收起額外功能"),
|
||||||
"tools_rsi_launcher_enhance_action_install":
|
"tools_rsi_launcher_enhance_action_install":
|
||||||
MessageLookupByLibrary.simpleMessage("安裝增強補丁"),
|
MessageLookupByLibrary.simpleMessage("安裝增強補丁"),
|
||||||
"tools_rsi_launcher_enhance_init_msg1":
|
"tools_rsi_launcher_enhance_init_msg1":
|
||||||
@ -1020,6 +1041,13 @@ class MessageLookup extends MessageLookupByLibrary {
|
|||||||
MessageLookupByLibrary.simpleMessage("生成補丁 ..."),
|
MessageLookupByLibrary.simpleMessage("生成補丁 ..."),
|
||||||
"tools_rsi_launcher_enhance_working_msg2":
|
"tools_rsi_launcher_enhance_working_msg2":
|
||||||
MessageLookupByLibrary.simpleMessage("安裝補丁,這需要一點時間,取決於您的電腦性能 ..."),
|
MessageLookupByLibrary.simpleMessage("安裝補丁,這需要一點時間,取決於您的電腦性能 ..."),
|
||||||
|
"tools_unp4k_missing_runtime":
|
||||||
|
MessageLookupByLibrary.simpleMessage("缺少運行庫"),
|
||||||
|
"tools_unp4k_missing_runtime_action_install":
|
||||||
|
MessageLookupByLibrary.simpleMessage("安裝運行庫"),
|
||||||
|
"tools_unp4k_missing_runtime_info":
|
||||||
|
MessageLookupByLibrary.simpleMessage(
|
||||||
|
"使用此功能需安裝 .NET8 運行庫,請點擊下方按鈕下載安裝,安裝成功後重新打開此頁面即可繼續使用。"),
|
||||||
"tools_unp4k_msg_init": MessageLookupByLibrary.simpleMessage("初始化中..."),
|
"tools_unp4k_msg_init": MessageLookupByLibrary.simpleMessage("初始化中..."),
|
||||||
"tools_unp4k_msg_open_file": m58,
|
"tools_unp4k_msg_open_file": m58,
|
||||||
"tools_unp4k_msg_read_completed": m59,
|
"tools_unp4k_msg_read_completed": m59,
|
||||||
|
|||||||
@ -730,10 +730,10 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `RSI starter log`
|
/// `RSI Launcher log`
|
||||||
String get doctor_action_rsi_launcher_log {
|
String get doctor_action_rsi_launcher_log {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'RSI starter log',
|
'RSI Launcher log',
|
||||||
name: 'doctor_action_rsi_launcher_log',
|
name: 'doctor_action_rsi_launcher_log',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -840,10 +840,10 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `The new NVME device is not compatible with the RSI starter for the time being, which may cause the installation to fail`
|
/// `The new NVME device is not compatible with the RSI Launcher for the time being, which may cause the installation to fail`
|
||||||
String get doctor_info_result_incompatible_nvme_device {
|
String get doctor_info_result_incompatible_nvme_device {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'The new NVME device is not compatible with the RSI starter for the time being, which may cause the installation to fail',
|
'The new NVME device is not compatible with the RSI Launcher for the time being, which may cause the installation to fail',
|
||||||
name: 'doctor_info_result_incompatible_nvme_device',
|
name: 'doctor_info_result_incompatible_nvme_device',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -870,10 +870,10 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Not found the EasyAnticheat file or file incomplete in the Live folder, please use the RSI starter to check the file`
|
/// `Not found the EasyAnticheat file or file incomplete in the Live folder, please use the RSI Launcher to check the file`
|
||||||
String get doctor_info_result_verify_files_with_rsi_launcher {
|
String get doctor_info_result_verify_files_with_rsi_launcher {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Not found the EasyAnticheat file or file incomplete in the Live folder, please use the RSI starter to check the file',
|
'Not found the EasyAnticheat file or file incomplete in the Live folder, please use the RSI Launcher to check the file',
|
||||||
name: 'doctor_info_result_verify_files_with_rsi_launcher',
|
name: 'doctor_info_result_verify_files_with_rsi_launcher',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -930,10 +930,10 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `No-English installation path! This may cause the game to start/install errors! ({v0}), please replace the installation path at the RSI starter.`
|
/// `No-English installation path! This may cause the game to start/install errors! ({v0}), please replace the installation path at the RSI Launcher.`
|
||||||
String doctor_info_result_chinese_install_path_error(Object v0) {
|
String doctor_info_result_chinese_install_path_error(Object v0) {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'No-English installation path! This may cause the game to start/install errors! ($v0), please replace the installation path at the RSI starter.',
|
'No-English installation path! This may cause the game to start/install errors! ($v0), please replace the installation path at the RSI Launcher.',
|
||||||
name: 'doctor_info_result_chinese_install_path_error',
|
name: 'doctor_info_result_chinese_install_path_error',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [v0],
|
args: [v0],
|
||||||
@ -1120,10 +1120,10 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `After scanning, no problem is found. If you still fail, try to use the RSI starter administrator mode in the toolbox.`
|
/// `After scanning, no problem is found. If you still fail, try to use the RSI Launcher administrator mode in the toolbox.`
|
||||||
String get doctor_action_result_toast_scan_no_issue {
|
String get doctor_action_result_toast_scan_no_issue {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'After scanning, no problem is found. If you still fail, try to use the RSI starter administrator mode in the toolbox.',
|
'After scanning, no problem is found. If you still fail, try to use the RSI Launcher administrator mode in the toolbox.',
|
||||||
name: 'doctor_action_result_toast_scan_no_issue',
|
name: 'doctor_action_result_toast_scan_no_issue',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -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: [],
|
||||||
);
|
);
|
||||||
@ -2221,10 +2221,10 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Core quantity that has been set: {v0} (This function is suitable for the box -click startup or RSI starter manager mode on the homepage, which is not enabled when it is 0)`
|
/// `Core quantity that has been set: {v0} (This function is suitable for the box -click startup or RSI Launcher manager mode on the homepage, which is not enabled when it is 0)`
|
||||||
String setting_action_set_core_count(Object v0) {
|
String setting_action_set_core_count(Object v0) {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Core quantity that has been set: $v0 (This function is suitable for the box -click startup or RSI starter manager mode on the homepage, which is not enabled when it is 0)',
|
'Core quantity that has been set: $v0 (This function is suitable for the box -click startup or RSI Launcher manager mode on the homepage, which is not enabled when it is 0)',
|
||||||
name: 'setting_action_set_core_count',
|
name: 'setting_action_set_core_count',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [v0],
|
args: [v0],
|
||||||
@ -2241,10 +2241,10 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Set the position of the starter manually, it is recommended to use it only when the installation position cannot be automatically scanned automatically`
|
/// `Set the position of the RSI Launcher manually, it is recommended to use it only when the installation position cannot be automatically scanned automatically`
|
||||||
String get setting_action_info_manual_launcher_location_setting {
|
String get setting_action_info_manual_launcher_location_setting {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Set the position of the starter manually, it is recommended to use it only when the installation position cannot be automatically scanned automatically',
|
'Set the position of the RSI Launcher manually, it is recommended to use it only when the installation position cannot be automatically scanned automatically',
|
||||||
name: 'setting_action_info_manual_launcher_location_setting',
|
name: 'setting_action_info_manual_launcher_location_setting',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -2371,20 +2371,20 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Tip: Input a few of your equipment with a few energy efficiency cores, please keep 0 non -large and small nuclear equipment 0\n\nThis function is suitable for the box of one -click startup or the RSI starter mode in the box on the homepage. This function is not enabled when it is 0.`
|
/// `Tip: Input a few of your equipment with a few energy efficiency cores, please keep 0 non -large and small nuclear equipment 0\n\nThis function is suitable for the box of one -click startup or the RSI Launcher Admin mode in the box on the homepage. This function is not enabled when it is 0.`
|
||||||
String get setting_action_info_cpu_core_tip {
|
String get setting_action_info_cpu_core_tip {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Tip: Input a few of your equipment with a few energy efficiency cores, please keep 0 non -large and small nuclear equipment 0\n\nThis function is suitable for the box of one -click startup or the RSI starter mode in the box on the homepage. This function is not enabled when it is 0.',
|
'Tip: Input a few of your equipment with a few energy efficiency cores, please keep 0 non -large and small nuclear equipment 0\n\nThis function is suitable for the box of one -click startup or the RSI Launcher Admin mode in the box on the homepage. This function is not enabled when it is 0.',
|
||||||
name: 'setting_action_info_cpu_core_tip',
|
name: 'setting_action_info_cpu_core_tip',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Please select the RSI starter position (RSI LAUNCHER.EXE)`
|
/// `Please select the RSI Launcher position (RSI LAUNCHER.EXE)`
|
||||||
String get setting_action_info_select_rsi_launcher_location {
|
String get setting_action_info_select_rsi_launcher_location {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Please select the RSI starter position (RSI LAUNCHER.EXE)',
|
'Please select the RSI Launcher position (RSI LAUNCHER.EXE)',
|
||||||
name: 'setting_action_info_select_rsi_launcher_location',
|
name: 'setting_action_info_select_rsi_launcher_location',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -2591,16 +2591,6 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `RSI ZENDESK Customer Service Station`
|
|
||||||
String get tools_hosts_info_rsi_zendesk {
|
|
||||||
return Intl.message(
|
|
||||||
'RSI ZENDESK Customer Service Station',
|
|
||||||
name: 'tools_hosts_info_rsi_zendesk',
|
|
||||||
desc: '',
|
|
||||||
args: [],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// `RSI customer service station`
|
/// `RSI customer service station`
|
||||||
String get tools_hosts_info_rsi_customer_service {
|
String get tools_hosts_info_rsi_customer_service {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
@ -2731,10 +2721,10 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `RSI starter position:`
|
/// `RSI Launcher position:`
|
||||||
String get tools_info_rsi_launcher_location {
|
String get tools_info_rsi_launcher_location {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'RSI starter position:',
|
'RSI Launcher position:',
|
||||||
name: 'tools_info_rsi_launcher_location',
|
name: 'tools_info_rsi_launcher_location',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -3072,20 +3062,20 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `If the RSI starter directory is not found, please try manually.`
|
/// `If the RSI Launcher directory is not found, please try manually.`
|
||||||
String get tools_action_info_rsi_launcher_directory_not_found {
|
String get tools_action_info_rsi_launcher_directory_not_found {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'If the RSI starter directory is not found, please try manually.',
|
'If the RSI Launcher directory is not found, please try manually.',
|
||||||
name: 'tools_action_info_rsi_launcher_directory_not_found',
|
name: 'tools_action_info_rsi_launcher_directory_not_found',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `The log file does not exist, please try to start a game startup or game installation, and exit the starter. If the problem cannot be solved, try to update the launcher to the latest version!`
|
/// `The log file does not exist, please try to start a game startup or game installation, and exit the RSI Launcher. If the problem cannot be solved, try to update the launcher to the latest version!`
|
||||||
String get tools_action_info_log_file_not_exist {
|
String get tools_action_info_log_file_not_exist {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'The log file does not exist, please try to start a game startup or game installation, and exit the starter. If the problem cannot be solved, try to update the launcher to the latest version!',
|
'The log file does not exist, please try to start a game startup or game installation, and exit the RSI Launcher. If the problem cannot be solved, try to update the launcher to the latest version!',
|
||||||
name: 'tools_action_info_log_file_not_exist',
|
name: 'tools_action_info_log_file_not_exist',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -3122,20 +3112,20 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `The RSI starter is running! Please turn off the label first and then use this feature!`
|
/// `The RSI Launcher is running! Please turn off the label first and then use this feature!`
|
||||||
String get tools_action_info_rsi_launcher_running_warning {
|
String get tools_action_info_rsi_launcher_running_warning {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'The RSI starter is running! Please turn off the label first and then use this feature!',
|
'The RSI Launcher is running! Please turn off the label first and then use this feature!',
|
||||||
name: 'tools_action_info_rsi_launcher_running_warning',
|
name: 'tools_action_info_rsi_launcher_running_warning',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `P4K is the core game file of interstellar citizens, as high as 100GB+. The offline download provided by the box is to help some P4K files download super slow users or to repair the P4K file that the official launch cannot be repaired.\n\nNext, you will pop up the window and ask you to save the position (you can choose the Star Citizens Folder or you can choose elsewhere). After downloading, please make sure that the P4K folder is located in the LIVE folder, and then use the Star Citizen starter to check it.`
|
/// `P4K is the core game file of interstellar citizens, as high as 100GB+. The offline download provided by the box is to help some P4K files download super slow users or to repair the P4K file that the official launch cannot be repaired.\n\nNext, you will pop up the window and ask you to save the position (you can choose the Star Citizens Folder or you can choose elsewhere). After downloading, please make sure that the P4K folder is located in the LIVE folder, and then use the RSI Launcher to check it.`
|
||||||
String get tools_action_info_p4k_file_description {
|
String get tools_action_info_p4k_file_description {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'P4K is the core game file of interstellar citizens, as high as 100GB+. The offline download provided by the box is to help some P4K files download super slow users or to repair the P4K file that the official launch cannot be repaired.\n\nNext, you will pop up the window and ask you to save the position (you can choose the Star Citizens Folder or you can choose elsewhere). After downloading, please make sure that the P4K folder is located in the LIVE folder, and then use the Star Citizen starter to check it.',
|
'P4K is the core game file of interstellar citizens, as high as 100GB+. The offline download provided by the box is to help some P4K files download super slow users or to repair the P4K file that the official launch cannot be repaired.\n\nNext, you will pop up the window and ask you to save the position (you can choose the Star Citizens Folder or you can choose elsewhere). After downloading, please make sure that the P4K folder is located in the LIVE folder, and then use the RSI Launcher to check it.',
|
||||||
name: 'tools_action_info_p4k_file_description',
|
name: 'tools_action_info_p4k_file_description',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -3332,10 +3322,10 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Please try to run a starter at the administrator authority, or use the box (Microsoft Store version) to start.`
|
/// `Please try to run a RSI Launcher at the administrator authority, or use the box (Microsoft Store version) to start.`
|
||||||
String get doctor_game_error_permissions_error_info {
|
String get doctor_game_error_permissions_error_info {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Please try to run a starter at the administrator authority, or use the box (Microsoft Store version) to start.',
|
'Please try to run a RSI Launcher at the administrator authority, or use the box (Microsoft Store version) to start.',
|
||||||
name: 'doctor_game_error_permissions_error_info',
|
name: 'doctor_game_error_permissions_error_info',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -3352,10 +3342,10 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Please try to restart the starter, or restart the computer directly`
|
/// `Please try to restart the RSI Launcher, or restart the computer directly`
|
||||||
String get doctor_game_error_game_process_error_info {
|
String get doctor_game_error_game_process_error_info {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Please try to restart the starter, or restart the computer directly',
|
'Please try to restart the RSI Launcher, or restart the computer directly',
|
||||||
name: 'doctor_game_error_game_process_error_info',
|
name: 'doctor_game_error_game_process_error_info',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -3522,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: [],
|
||||||
@ -4502,10 +4492,10 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Read the starter information ...`
|
/// `Read the RSI Launcher information ...`
|
||||||
String get tools_rsi_launcher_enhance_init_msg1 {
|
String get tools_rsi_launcher_enhance_init_msg1 {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Read the starter information ...',
|
'Read the RSI Launcher information ...',
|
||||||
name: 'tools_rsi_launcher_enhance_init_msg1',
|
name: 'tools_rsi_launcher_enhance_init_msg1',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -4542,20 +4532,20 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `RSI starter enhancement`
|
/// `RSI Launcher enhancement`
|
||||||
String get tools_rsi_launcher_enhance_title {
|
String get tools_rsi_launcher_enhance_title {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'RSI starter enhancement',
|
'RSI Launcher enhancement',
|
||||||
name: 'tools_rsi_launcher_enhance_title',
|
name: 'tools_rsi_launcher_enhance_title',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Internal version information of the starter: {v0}`
|
/// `Internal version information of the RSI Launcher: {v0}`
|
||||||
String tools_rsi_launcher_enhance_msg_version(Object v0) {
|
String tools_rsi_launcher_enhance_msg_version(Object v0) {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Internal version information of the starter: $v0',
|
'Internal version information of the RSI Launcher: $v0',
|
||||||
name: 'tools_rsi_launcher_enhance_msg_version',
|
name: 'tools_rsi_launcher_enhance_msg_version',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [v0],
|
args: [v0],
|
||||||
@ -4592,20 +4582,20 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Add multi -language support to the RSI starter.`
|
/// `Add multi -language support to the RSI Launcher.`
|
||||||
String get tools_rsi_launcher_enhance_subtitle_localization {
|
String get tools_rsi_launcher_enhance_subtitle_localization {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Add multi -language support to the RSI starter.',
|
'Add multi -language support to the RSI Launcher.',
|
||||||
name: 'tools_rsi_launcher_enhance_subtitle_localization',
|
name: 'tools_rsi_launcher_enhance_subtitle_localization',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `RSI starter download enhancement`
|
/// `RSI Launcher download enhancement`
|
||||||
String get tools_rsi_launcher_enhance_title_download_booster {
|
String get tools_rsi_launcher_enhance_title_download_booster {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'RSI starter download enhancement',
|
'RSI Launcher download enhancement',
|
||||||
name: 'tools_rsi_launcher_enhance_title_download_booster',
|
name: 'tools_rsi_launcher_enhance_title_download_booster',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -4652,21 +4642,21 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Reading the starter information failed!`
|
/// `Reading the Launcher information failed!`
|
||||||
String get tools_rsi_launcher_enhance_msg_error_get_launcher_info_error {
|
String get tools_rsi_launcher_enhance_msg_error_get_launcher_info_error {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Reading the starter information failed!',
|
'Reading the Launcher information failed!',
|
||||||
name: 'tools_rsi_launcher_enhance_msg_error_get_launcher_info_error',
|
name: 'tools_rsi_launcher_enhance_msg_error_get_launcher_info_error',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Read the starter information failure: {v0}`
|
/// `Read the RSI Launcher information failure: {v0}`
|
||||||
String tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args(
|
String tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args(
|
||||||
Object v0) {
|
Object v0) {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Read the starter information failure: $v0',
|
'Read the RSI Launcher information failure: $v0',
|
||||||
name:
|
name:
|
||||||
'tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args',
|
'tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args',
|
||||||
desc: '',
|
desc: '',
|
||||||
@ -4684,20 +4674,20 @@ class S {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `Instructions for the use of RSI starter enhancement`
|
/// `Instructions for the use of RSI Launcher enhancement`
|
||||||
String get tools_rsi_launcher_enhance_note_title {
|
String get tools_rsi_launcher_enhance_note_title {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'Instructions for the use of RSI starter enhancement',
|
'Instructions for the use of RSI Launcher enhancement',
|
||||||
name: 'tools_rsi_launcher_enhance_note_title',
|
name: 'tools_rsi_launcher_enhance_note_title',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `RSI starter enhancement is a community function. It will unpack "RSI LAUNCHER" on your computer and add additional enhancement functions. What functions are determined by you.\n\nAt present, the official (CIG) only permits us to perform multi -language operations. The launch of the booter download enhancement is an extra function we think of it. Violation of the CIG user protocol (https://robertsspaceindustries.com/eula) may cause serious consequences such as accounts. Whether or not you are determined by yourself, we are not responsible for the possible consequences (game damage, account ban, etc.).\n\nFor the modified content of the starter, we are open from: https://github.com/starcitizentoolbox/rsilauncherenhance. If necessary, you can check it yourself.\n\nIf you need to cancel this enhanced patch for any reason, cover the installation of the official startup directly.`
|
/// `RSI Launcher enhancement is a community function. It will unpack "RSI LAUNCHER" on your computer and add additional enhancement functions. What functions are determined by you.\n\nAt present, the official (CIG) only permits us to perform multi -language operations. The launch of the booter download enhancement is an extra function we think of it. Violation of the CIG user protocol (https://robertsspaceindustries.com/eula) may cause serious consequences such as accounts. Whether or not you are determined by yourself, we are not responsible for the possible consequences (game damage, account ban, etc.).\n\nFor the modified content of the Launcher, we are open from: https://github.com/starcitizentoolbox/rsilauncherenhance. If necessary, you can check it yourself.\n\nIf you need to cancel this enhanced patch for any reason, cover the installation of the official RSI Launcher directly.`
|
||||||
String get tools_rsi_launcher_enhance_note_msg {
|
String get tools_rsi_launcher_enhance_note_msg {
|
||||||
return Intl.message(
|
return Intl.message(
|
||||||
'RSI starter enhancement is a community function. It will unpack "RSI LAUNCHER" on your computer and add additional enhancement functions. What functions are determined by you.\n\nAt present, the official (CIG) only permits us to perform multi -language operations. The launch of the booter download enhancement is an extra function we think of it. Violation of the CIG user protocol (https://robertsspaceindustries.com/eula) may cause serious consequences such as accounts. Whether or not you are determined by yourself, we are not responsible for the possible consequences (game damage, account ban, etc.).\n\nFor the modified content of the starter, we are open from: https://github.com/starcitizentoolbox/rsilauncherenhance. If necessary, you can check it yourself.\n\nIf you need to cancel this enhanced patch for any reason, cover the installation of the official startup directly.',
|
'RSI Launcher enhancement is a community function. It will unpack "RSI LAUNCHER" on your computer and add additional enhancement functions. What functions are determined by you.\n\nAt present, the official (CIG) only permits us to perform multi -language operations. The launch of the booter download enhancement is an extra function we think of it. Violation of the CIG user protocol (https://robertsspaceindustries.com/eula) may cause serious consequences such as accounts. Whether or not you are determined by yourself, we are not responsible for the possible consequences (game damage, account ban, etc.).\n\nFor the modified content of the Launcher, we are open from: https://github.com/starcitizentoolbox/rsilauncherenhance. If necessary, you can check it yourself.\n\nIf you need to cancel this enhanced patch for any reason, cover the installation of the official RSI Launcher directly.',
|
||||||
name: 'tools_rsi_launcher_enhance_note_msg',
|
name: 'tools_rsi_launcher_enhance_note_msg',
|
||||||
desc: '',
|
desc: '',
|
||||||
args: [],
|
args: [],
|
||||||
@ -4853,6 +4843,36 @@ class S {
|
|||||||
args: [],
|
args: [],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// `You are not currently installed in the game body or the game installation directory is not selected, and you can only use the promoter Chinese function. Please make sure the game is installed or adds the game installation directory in the box settings.`
|
||||||
|
String get home_localization_action_rsi_launcher_no_game_path_msg {
|
||||||
|
return Intl.message(
|
||||||
|
'You are not currently installed in the game body or the game installation directory is not selected, and you can only use the promoter Chinese function. Please make sure the game is installed or adds the game installation directory in the box settings.',
|
||||||
|
name: 'home_localization_action_rsi_launcher_no_game_path_msg',
|
||||||
|
desc: '',
|
||||||
|
args: [],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// `GPU Vulkan Crash`
|
||||||
|
String get doctor_game_error_gpu_vulkan_crash {
|
||||||
|
return Intl.message(
|
||||||
|
'GPU Vulkan Crash',
|
||||||
|
name: 'doctor_game_error_gpu_vulkan_crash',
|
||||||
|
desc: '',
|
||||||
|
args: [],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// `Vulkan Crash! This may be the problem of driving version or game engine, please try to update the GPU driver or use the color cleaner function to return to DX11`
|
||||||
|
String get doctor_game_error_gpu_vulkan_crash_info {
|
||||||
|
return Intl.message(
|
||||||
|
'Vulkan Crash! This may be the problem of driving version or game engine, please try to update the GPU driver or use the color cleaner function to return to DX11',
|
||||||
|
name: 'doctor_game_error_gpu_vulkan_crash_info',
|
||||||
|
desc: '',
|
||||||
|
args: [],
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class AppLocalizationDelegate extends LocalizationsDelegate<S> {
|
class AppLocalizationDelegate extends LocalizationsDelegate<S> {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"@@locale": "en",
|
"@@locale": "en",
|
||||||
"@auto_translate_locale": "en",
|
"@@auto_translate_locale": "en",
|
||||||
"app_language_name": "English",
|
"app_language_name": "English",
|
||||||
"@app_language_name": {},
|
"@app_language_name": {},
|
||||||
"app_language_code": "en",
|
"app_language_code": "en",
|
||||||
@ -55,7 +55,6 @@
|
|||||||
"@home_login_title_launching_game": {},
|
"@home_login_title_launching_game": {},
|
||||||
"home_action_login_rsi_account": "Log in to RSI account",
|
"home_action_login_rsi_account": "Log in to RSI account",
|
||||||
"@home_action_login_rsi_account": {},
|
"@home_action_login_rsi_account": {},
|
||||||
"@home_login_info_enter_pin_to_encrypt": {},
|
|
||||||
"home_login_info_game_version_outdated": "Outdated game version",
|
"home_login_info_game_version_outdated": "Outdated game version",
|
||||||
"@home_login_info_game_version_outdated": {},
|
"@home_login_info_game_version_outdated": {},
|
||||||
"home_login_info_rsi_server_report": "RSI server report version number: {v1}\n\nLocal version number: {v2}\n\nIt is recommended to use RSI Launcher to update the game!",
|
"home_login_info_rsi_server_report": "RSI server report version number: {v1}\n\nLocal version number: {v2}\n\nIt is recommended to use RSI Launcher to update the game!",
|
||||||
@ -138,7 +137,7 @@
|
|||||||
"@downloader_input_info_p2p_upload_note": {},
|
"@downloader_input_info_p2p_upload_note": {},
|
||||||
"doctor_title_one_click_diagnosis": "One -click diagnosis-> {v0}",
|
"doctor_title_one_click_diagnosis": "One -click diagnosis-> {v0}",
|
||||||
"@doctor_title_one_click_diagnosis": {},
|
"@doctor_title_one_click_diagnosis": {},
|
||||||
"doctor_action_rsi_launcher_log": "RSI starter log",
|
"doctor_action_rsi_launcher_log": "RSI Launcher log",
|
||||||
"@doctor_action_rsi_launcher_log": {},
|
"@doctor_action_rsi_launcher_log": {},
|
||||||
"doctor_action_game_run_log": "Game running log",
|
"doctor_action_game_run_log": "Game running log",
|
||||||
"@doctor_action_game_run_log": {},
|
"@doctor_action_game_run_log": {},
|
||||||
@ -160,13 +159,13 @@
|
|||||||
"@doctor_info_result_missing_live_folder": {},
|
"@doctor_info_result_missing_live_folder": {},
|
||||||
"doctor_info_result_create_live_folder": "Click to fix the Live folder for you, and install it after completion. ({v0})",
|
"doctor_info_result_create_live_folder": "Click to fix the Live folder for you, and install it after completion. ({v0})",
|
||||||
"@doctor_info_result_create_live_folder": {},
|
"@doctor_info_result_create_live_folder": {},
|
||||||
"doctor_info_result_incompatible_nvme_device": "The new NVME device is not compatible with the RSI starter for the time being, which may cause the installation to fail",
|
"doctor_info_result_incompatible_nvme_device": "The new NVME device is not compatible with the RSI Launcher for the time being, which may cause the installation to fail",
|
||||||
"@doctor_info_result_incompatible_nvme_device": {},
|
"@doctor_info_result_incompatible_nvme_device": {},
|
||||||
"doctor_info_result_add_registry_value": "Add ForcedPhysicalsectorsizeinbytes value to the registry item to simulate old devices. Hard disk partition ({v0})",
|
"doctor_info_result_add_registry_value": "Add ForcedPhysicalsectorsizeinbytes value to the registry item to simulate old devices. Hard disk partition ({v0})",
|
||||||
"@doctor_info_result_add_registry_value": {},
|
"@doctor_info_result_add_registry_value": {},
|
||||||
"doctor_info_result_missing_easyanticheat_files": "Easyanticheat file loss",
|
"doctor_info_result_missing_easyanticheat_files": "Easyanticheat file loss",
|
||||||
"@doctor_info_result_missing_easyanticheat_files": {},
|
"@doctor_info_result_missing_easyanticheat_files": {},
|
||||||
"doctor_info_result_verify_files_with_rsi_launcher": "Not found the EasyAnticheat file or file incomplete in the Live folder, please use the RSI starter to check the file",
|
"doctor_info_result_verify_files_with_rsi_launcher": "Not found the EasyAnticheat file or file incomplete in the Live folder, please use the RSI Launcher to check the file",
|
||||||
"@doctor_info_result_verify_files_with_rsi_launcher": {},
|
"@doctor_info_result_verify_files_with_rsi_launcher": {},
|
||||||
"doctor_info_result_easyanticheat_not_installed": "Easyanticheat is not installed or not withdrawn normally",
|
"doctor_info_result_easyanticheat_not_installed": "Easyanticheat is not installed or not withdrawn normally",
|
||||||
"@doctor_info_result_easyanticheat_not_installed": {},
|
"@doctor_info_result_easyanticheat_not_installed": {},
|
||||||
@ -178,7 +177,7 @@
|
|||||||
"@doctor_info_result_chinese_username_error": {},
|
"@doctor_info_result_chinese_username_error": {},
|
||||||
"doctor_info_result_chinese_install_path": "No-English installation path!",
|
"doctor_info_result_chinese_install_path": "No-English installation path!",
|
||||||
"@doctor_info_result_chinese_install_path": {},
|
"@doctor_info_result_chinese_install_path": {},
|
||||||
"doctor_info_result_chinese_install_path_error": "No-English installation path! This may cause the game to start/install errors! ({v0}), please replace the installation path at the RSI starter.",
|
"doctor_info_result_chinese_install_path_error": "No-English installation path! This may cause the game to start/install errors! ({v0}), please replace the installation path at the RSI Launcher.",
|
||||||
"@doctor_info_result_chinese_install_path_error": {},
|
"@doctor_info_result_chinese_install_path_error": {},
|
||||||
"doctor_info_result_low_physical_memory": "Paralying memory is too low",
|
"doctor_info_result_low_physical_memory": "Paralying memory is too low",
|
||||||
"@doctor_info_result_low_physical_memory": {},
|
"@doctor_info_result_low_physical_memory": {},
|
||||||
@ -216,7 +215,7 @@
|
|||||||
"@doctor_action_result_analysis_no_issue": {},
|
"@doctor_action_result_analysis_no_issue": {},
|
||||||
"doctor_action_result_analysis_issues_found": "After the analysis, I found that {v0} questions",
|
"doctor_action_result_analysis_issues_found": "After the analysis, I found that {v0} questions",
|
||||||
"@doctor_action_result_analysis_issues_found": {},
|
"@doctor_action_result_analysis_issues_found": {},
|
||||||
"doctor_action_result_toast_scan_no_issue": "After scanning, no problem is found. If you still fail, try to use the RSI starter administrator mode in the toolbox.",
|
"doctor_action_result_toast_scan_no_issue": "After scanning, no problem is found. If you still fail, try to use the RSI Launcher administrator mode in the toolbox.",
|
||||||
"@doctor_action_result_toast_scan_no_issue": {},
|
"@doctor_action_result_toast_scan_no_issue": {},
|
||||||
"doctor_action_tip_checking_game_log": "Inspection: Game.log",
|
"doctor_action_tip_checking_game_log": "Inspection: Game.log",
|
||||||
"@doctor_action_tip_checking_game_log": {},
|
"@doctor_action_tip_checking_game_log": {},
|
||||||
@ -324,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}",
|
||||||
@ -340,7 +339,6 @@
|
|||||||
"@localization_info_community_translation": {},
|
"@localization_info_community_translation": {},
|
||||||
"localization_info_no_translation_available": "This language/version is not available for Localization, so stay tuned!",
|
"localization_info_no_translation_available": "This language/version is not available for Localization, so stay tuned!",
|
||||||
"@localization_info_no_translation_available": {},
|
"@localization_info_no_translation_available": {},
|
||||||
"@localization_info_no_custom_text": {},
|
|
||||||
"localization_action_install": "Install",
|
"localization_action_install": "Install",
|
||||||
"@localization_action_install": {},
|
"@localization_action_install": {},
|
||||||
"localization_info_version_number": "Version number: {v0}",
|
"localization_info_version_number": "Version number: {v0}",
|
||||||
@ -437,11 +435,11 @@
|
|||||||
"@setting_action_reset_auto_password_fill": {},
|
"@setting_action_reset_auto_password_fill": {},
|
||||||
"setting_action_ignore_efficiency_cores_on_launch": "When starting the game, ignore the core of energy efficiency (suitable for Intel 12th+ processor)",
|
"setting_action_ignore_efficiency_cores_on_launch": "When starting the game, ignore the core of energy efficiency (suitable for Intel 12th+ processor)",
|
||||||
"@setting_action_ignore_efficiency_cores_on_launch": {},
|
"@setting_action_ignore_efficiency_cores_on_launch": {},
|
||||||
"setting_action_set_core_count": "Core quantity that has been set: {v0} (This function is suitable for the box -click startup or RSI starter manager mode on the homepage, which is not enabled when it is 0)",
|
"setting_action_set_core_count": "Core quantity that has been set: {v0} (This function is suitable for the box -click startup or RSI Launcher manager mode on the homepage, which is not enabled when it is 0)",
|
||||||
"@setting_action_set_core_count": {},
|
"@setting_action_set_core_count": {},
|
||||||
"setting_action_set_launcher_file": "Set the promoter file (RSI Launcher.exe)",
|
"setting_action_set_launcher_file": "Set the promoter file (RSI Launcher.exe)",
|
||||||
"@setting_action_set_launcher_file": {},
|
"@setting_action_set_launcher_file": {},
|
||||||
"setting_action_info_manual_launcher_location_setting": "Set the position of the starter manually, it is recommended to use it only when the installation position cannot be automatically scanned automatically",
|
"setting_action_info_manual_launcher_location_setting": "Set the position of the RSI Launcher manually, it is recommended to use it only when the installation position cannot be automatically scanned automatically",
|
||||||
"@setting_action_info_manual_launcher_location_setting": {},
|
"@setting_action_info_manual_launcher_location_setting": {},
|
||||||
"setting_action_set_game_file": "Set the game file (StarCitizen.exe)",
|
"setting_action_set_game_file": "Set the game file (StarCitizen.exe)",
|
||||||
"@setting_action_set_game_file": {},
|
"@setting_action_set_game_file": {},
|
||||||
@ -467,9 +465,9 @@
|
|||||||
"@setting_action_info_autofill_data_cleared": {},
|
"@setting_action_info_autofill_data_cleared": {},
|
||||||
"setting_action_info_enter_cpu_core_to_ignore": "Please enter the core number of CPUs to be ignored",
|
"setting_action_info_enter_cpu_core_to_ignore": "Please enter the core number of CPUs to be ignored",
|
||||||
"@setting_action_info_enter_cpu_core_to_ignore": {},
|
"@setting_action_info_enter_cpu_core_to_ignore": {},
|
||||||
"setting_action_info_cpu_core_tip": "Tip: Input a few of your equipment with a few energy efficiency cores, please keep 0 non -large and small nuclear equipment 0\n\nThis function is suitable for the box of one -click startup or the RSI starter mode in the box on the homepage. This function is not enabled when it is 0.",
|
"setting_action_info_cpu_core_tip": "Tip: Input a few of your equipment with a few energy efficiency cores, please keep 0 non -large and small nuclear equipment 0\n\nThis function is suitable for the box of one -click startup or the RSI Launcher Admin mode in the box on the homepage. This function is not enabled when it is 0.",
|
||||||
"@setting_action_info_cpu_core_tip": {},
|
"@setting_action_info_cpu_core_tip": {},
|
||||||
"setting_action_info_select_rsi_launcher_location": "Please select the RSI starter position (RSI LAUNCHER.EXE)",
|
"setting_action_info_select_rsi_launcher_location": "Please select the RSI Launcher position (RSI LAUNCHER.EXE)",
|
||||||
"@setting_action_info_select_rsi_launcher_location": {},
|
"@setting_action_info_select_rsi_launcher_location": {},
|
||||||
"setting_action_info_setting_success": "Successfully set, click refresh on the corresponding page to scan the new path",
|
"setting_action_info_setting_success": "Successfully set, click refresh on the corresponding page to scan the new path",
|
||||||
"@setting_action_info_setting_success": {},
|
"@setting_action_info_setting_success": {},
|
||||||
@ -511,8 +509,6 @@
|
|||||||
"@app_splash_almost_done": {},
|
"@app_splash_almost_done": {},
|
||||||
"tools_hosts_info_rsi_official_website": "RSI official website",
|
"tools_hosts_info_rsi_official_website": "RSI official website",
|
||||||
"@tools_hosts_info_rsi_official_website": {},
|
"@tools_hosts_info_rsi_official_website": {},
|
||||||
"tools_hosts_info_rsi_zendesk": "RSI ZENDESK Customer Service Station",
|
|
||||||
"@tools_hosts_info_rsi_zendesk": {},
|
|
||||||
"tools_hosts_info_rsi_customer_service": "RSI customer service station",
|
"tools_hosts_info_rsi_customer_service": "RSI customer service station",
|
||||||
"@tools_hosts_info_rsi_customer_service": {},
|
"@tools_hosts_info_rsi_customer_service": {},
|
||||||
"tools_hosts_info_dns_query_and_test": "Inquiring about DNS and testing accessibility, please wait patiently ...",
|
"tools_hosts_info_dns_query_and_test": "Inquiring about DNS and testing accessibility, please wait patiently ...",
|
||||||
@ -539,7 +535,7 @@
|
|||||||
"@tools_info_processing_failed": {},
|
"@tools_info_processing_failed": {},
|
||||||
"tools_info_game_install_location": "Game installation location: ",
|
"tools_info_game_install_location": "Game installation location: ",
|
||||||
"@tools_info_game_install_location": {},
|
"@tools_info_game_install_location": {},
|
||||||
"tools_info_rsi_launcher_location": "RSI starter position:",
|
"tools_info_rsi_launcher_location": "RSI Launcher position:",
|
||||||
"@tools_info_rsi_launcher_location": {},
|
"@tools_info_rsi_launcher_location": {},
|
||||||
"tools_action_view_system_info": "View system information",
|
"tools_action_view_system_info": "View system information",
|
||||||
"@tools_action_view_system_info": {},
|
"@tools_action_view_system_info": {},
|
||||||
@ -607,9 +603,9 @@
|
|||||||
"@tools_action_info_error_occurred": {},
|
"@tools_action_info_error_occurred": {},
|
||||||
"tools_action_info_system_info_content": "System: {v0}\n\nProcessor: {v1}\n\nMemory size: {v2} gb\n\nGraphics card information:\n{v3}\n\nStorage information:\n{v4}\n\n",
|
"tools_action_info_system_info_content": "System: {v0}\n\nProcessor: {v1}\n\nMemory size: {v2} gb\n\nGraphics card information:\n{v3}\n\nStorage information:\n{v4}\n\n",
|
||||||
"@tools_action_info_system_info_content": {},
|
"@tools_action_info_system_info_content": {},
|
||||||
"tools_action_info_rsi_launcher_directory_not_found": "If the RSI starter directory is not found, please try manually.",
|
"tools_action_info_rsi_launcher_directory_not_found": "If the RSI Launcher directory is not found, please try manually.",
|
||||||
"@tools_action_info_rsi_launcher_directory_not_found": {},
|
"@tools_action_info_rsi_launcher_directory_not_found": {},
|
||||||
"tools_action_info_log_file_not_exist": "The log file does not exist, please try to start a game startup or game installation, and exit the starter. If the problem cannot be solved, try to update the launcher to the latest version!",
|
"tools_action_info_log_file_not_exist": "The log file does not exist, please try to start a game startup or game installation, and exit the RSI Launcher. If the problem cannot be solved, try to update the launcher to the latest version!",
|
||||||
"@tools_action_info_log_file_not_exist": {},
|
"@tools_action_info_log_file_not_exist": {},
|
||||||
"tools_action_info_cleanup_complete": "After cleaning up, complete the installation / game startup operation once.",
|
"tools_action_info_cleanup_complete": "After cleaning up, complete the installation / game startup operation once.",
|
||||||
"@tools_action_info_cleanup_complete": {},
|
"@tools_action_info_cleanup_complete": {},
|
||||||
@ -617,9 +613,9 @@
|
|||||||
"@tools_action_info_cleanup_failed": {},
|
"@tools_action_info_cleanup_failed": {},
|
||||||
"tools_action_info_system_info_title": "System message",
|
"tools_action_info_system_info_title": "System message",
|
||||||
"@tools_action_info_system_info_title": {},
|
"@tools_action_info_system_info_title": {},
|
||||||
"tools_action_info_rsi_launcher_running_warning": "The RSI starter is running! Please turn off the label first and then use this feature!",
|
"tools_action_info_rsi_launcher_running_warning": "The RSI Launcher is running! Please turn off the label first and then use this feature!",
|
||||||
"@tools_action_info_rsi_launcher_running_warning": {},
|
"@tools_action_info_rsi_launcher_running_warning": {},
|
||||||
"tools_action_info_p4k_file_description": "P4K is the core game file of interstellar citizens, as high as 100GB+. The offline download provided by the box is to help some P4K files download super slow users or to repair the P4K file that the official launch cannot be repaired.\n\nNext, you will pop up the window and ask you to save the position (you can choose the Star Citizens Folder or you can choose elsewhere). After downloading, please make sure that the P4K folder is located in the LIVE folder, and then use the Star Citizen starter to check it.",
|
"tools_action_info_p4k_file_description": "P4K is the core game file of interstellar citizens, as high as 100GB+. The offline download provided by the box is to help some P4K files download super slow users or to repair the P4K file that the official launch cannot be repaired.\n\nNext, you will pop up the window and ask you to save the position (you can choose the Star Citizens Folder or you can choose elsewhere). After downloading, please make sure that the P4K folder is located in the LIVE folder, and then use the RSI Launcher to check it.",
|
||||||
"@tools_action_info_p4k_file_description": {},
|
"@tools_action_info_p4k_file_description": {},
|
||||||
"tools_action_info_p4k_download_in_progress": "There is already a P4K download task in progress, please go to the download manager to view!",
|
"tools_action_info_p4k_download_in_progress": "There is already a P4K download task in progress, please go to the download manager to view!",
|
||||||
"@tools_action_info_p4k_download_in_progress": {},
|
"@tools_action_info_p4k_download_in_progress": {},
|
||||||
@ -659,11 +655,11 @@
|
|||||||
"@doctor_game_error_socket_error_info": {},
|
"@doctor_game_error_socket_error_info": {},
|
||||||
"doctor_game_error_permissions_error": "Insufficient permissions",
|
"doctor_game_error_permissions_error": "Insufficient permissions",
|
||||||
"@doctor_game_error_permissions_error": {},
|
"@doctor_game_error_permissions_error": {},
|
||||||
"doctor_game_error_permissions_error_info": "Please try to run a starter at the administrator authority, or use the box (Microsoft Store version) to start.",
|
"doctor_game_error_permissions_error_info": "Please try to run a RSI Launcher at the administrator authority, or use the box (Microsoft Store version) to start.",
|
||||||
"@doctor_game_error_permissions_error_info": {},
|
"@doctor_game_error_permissions_error_info": {},
|
||||||
"doctor_game_error_game_process_error": "The game process is occupied",
|
"doctor_game_error_game_process_error": "The game process is occupied",
|
||||||
"@doctor_game_error_game_process_error": {},
|
"@doctor_game_error_game_process_error": {},
|
||||||
"doctor_game_error_game_process_error_info": "Please try to restart the starter, or restart the computer directly",
|
"doctor_game_error_game_process_error_info": "Please try to restart the RSI Launcher, or restart the computer directly",
|
||||||
"@doctor_game_error_game_process_error_info": {},
|
"@doctor_game_error_game_process_error_info": {},
|
||||||
"doctor_game_error_game_damaged_file": "Game program file damage",
|
"doctor_game_error_game_damaged_file": "Game program file damage",
|
||||||
"@doctor_game_error_game_damaged_file": {},
|
"@doctor_game_error_game_damaged_file": {},
|
||||||
@ -697,138 +693,273 @@
|
|||||||
"@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_reading": "Reading P4K file ...",
|
"tools_unp4k_msg_reading": "Reading P4K file ...",
|
||||||
|
"@tools_unp4k_msg_reading": {},
|
||||||
"tools_unp4k_msg_reading2": "Treatment files ...",
|
"tools_unp4k_msg_reading2": "Treatment files ...",
|
||||||
|
"@tools_unp4k_msg_reading2": {},
|
||||||
"tools_unp4k_msg_reading3": "Processing files ({v0}/{v1}) ...",
|
"tools_unp4k_msg_reading3": "Processing files ({v0}/{v1}) ...",
|
||||||
|
"@tools_unp4k_msg_reading3": {},
|
||||||
"tools_unp4k_msg_read_completed": "After loading: {v0} a file, time: {v1} ms",
|
"tools_unp4k_msg_read_completed": "After loading: {v0} a file, time: {v1} ms",
|
||||||
|
"@tools_unp4k_msg_read_completed": {},
|
||||||
"tools_unp4k_msg_open_file": "Open the file: {v0}",
|
"tools_unp4k_msg_open_file": "Open the file: {v0}",
|
||||||
|
"@tools_unp4k_msg_open_file": {},
|
||||||
"tools_unp4k_msg_read_file": "Read file: {v0} ...",
|
"tools_unp4k_msg_read_file": "Read file: {v0} ...",
|
||||||
|
"@tools_unp4k_msg_read_file": {},
|
||||||
"home_localization_advanced_title": "Advanced Localization -> {v0}",
|
"home_localization_advanced_title": "Advanced Localization -> {v0}",
|
||||||
|
"@home_localization_advanced_title": {},
|
||||||
"home_localization_advanced_msg_version": "Localization version has been loaded: {v0}",
|
"home_localization_advanced_msg_version": "Localization version has been loaded: {v0}",
|
||||||
|
"@home_localization_advanced_msg_version": {},
|
||||||
"home_localization_advanced_title_msg": "Localization text lines: {v0} P4K text lines: {v1}",
|
"home_localization_advanced_title_msg": "Localization text lines: {v0} P4K text lines: {v1}",
|
||||||
|
"@home_localization_advanced_title_msg": {},
|
||||||
"home_localization_advanced_action_install": "Installation of Localization",
|
"home_localization_advanced_action_install": "Installation of Localization",
|
||||||
|
"@home_localization_advanced_action_install": {},
|
||||||
"home_localization_advanced_action_mod_change": "The text is being re -generated ...",
|
"home_localization_advanced_action_mod_change": "The text is being re -generated ...",
|
||||||
|
"@home_localization_advanced_action_mod_change": {},
|
||||||
"home_localization_advanced_action_mode": "Model",
|
"home_localization_advanced_action_mode": "Model",
|
||||||
|
"@home_localization_advanced_action_mode": {},
|
||||||
"home_localization_advanced_title_preview": "Preview: {v0}",
|
"home_localization_advanced_title_preview": "Preview: {v0}",
|
||||||
|
"@home_localization_advanced_title_preview": {},
|
||||||
"home_localization_advanced_json_text_location_other": "Location-Other",
|
"home_localization_advanced_json_text_location_other": "Location-Other",
|
||||||
|
"@home_localization_advanced_json_text_location_other": {},
|
||||||
"home_localization_advanced_json_text_location_used": "Location-Commonly used",
|
"home_localization_advanced_json_text_location_used": "Location-Commonly used",
|
||||||
|
"@home_localization_advanced_json_text_location_used": {},
|
||||||
"home_localization_advanced_json_text_things_other": "Items-Other",
|
"home_localization_advanced_json_text_things_other": "Items-Other",
|
||||||
|
"@home_localization_advanced_json_text_things_other": {},
|
||||||
"home_localization_advanced_json_text_things_used": "Items-Commonly used",
|
"home_localization_advanced_json_text_things_used": "Items-Commonly used",
|
||||||
|
"@home_localization_advanced_json_text_things_used": {},
|
||||||
"home_localization_advanced_json_text_vehicle_other": "Vehicle-Other",
|
"home_localization_advanced_json_text_vehicle_other": "Vehicle-Other",
|
||||||
|
"@home_localization_advanced_json_text_vehicle_other": {},
|
||||||
"home_localization_advanced_json_text_vehicle_used": "Vehicle-Commonly used",
|
"home_localization_advanced_json_text_vehicle_used": "Vehicle-Commonly used",
|
||||||
|
"@home_localization_advanced_json_text_vehicle_used": {},
|
||||||
"home_localization_advanced_json_text_mission_or_logs": "Mission/Log",
|
"home_localization_advanced_json_text_mission_or_logs": "Mission/Log",
|
||||||
|
"@home_localization_advanced_json_text_mission_or_logs": {},
|
||||||
"home_localization_advanced_json_text_subtitle": "Subtitle",
|
"home_localization_advanced_json_text_subtitle": "Subtitle",
|
||||||
|
"@home_localization_advanced_json_text_subtitle": {},
|
||||||
"home_localization_advanced_json_text_ui_or_hud_or_menu": "UI/HUD/menu",
|
"home_localization_advanced_json_text_ui_or_hud_or_menu": "UI/HUD/menu",
|
||||||
|
"@home_localization_advanced_json_text_ui_or_hud_or_menu": {},
|
||||||
"home_localization_advanced_json_text_un_localization": "Unwaver",
|
"home_localization_advanced_json_text_un_localization": "Unwaver",
|
||||||
|
"@home_localization_advanced_json_text_un_localization": {},
|
||||||
"home_localization_advanced_json_text_others": "Other",
|
"home_localization_advanced_json_text_others": "Other",
|
||||||
|
"@home_localization_advanced_json_text_others": {},
|
||||||
"home_localization_advanced_action_mod_change_localization": "Localization",
|
"home_localization_advanced_action_mod_change_localization": "Localization",
|
||||||
|
"@home_localization_advanced_action_mod_change_localization": {},
|
||||||
"home_localization_advanced_action_mod_change_un_localization": "Original English",
|
"home_localization_advanced_action_mod_change_un_localization": "Original English",
|
||||||
|
"@home_localization_advanced_action_mod_change_un_localization": {},
|
||||||
"home_localization_advanced_action_mod_change_mixed": "Bilingual",
|
"home_localization_advanced_action_mod_change_mixed": "Bilingual",
|
||||||
|
"@home_localization_advanced_action_mod_change_mixed": {},
|
||||||
"home_localization_advanced_action_mod_change_mixed_newline": "Bilingual (newline)",
|
"home_localization_advanced_action_mod_change_mixed_newline": "Bilingual (newline)",
|
||||||
|
"@home_localization_advanced_action_mod_change_mixed_newline": {},
|
||||||
"home_localization_advanced_msg_classifying": "Classified ...",
|
"home_localization_advanced_msg_classifying": "Classified ...",
|
||||||
|
"@home_localization_advanced_msg_classifying": {},
|
||||||
"home_localization_advanced_msg_reading_p4k": "Read p4k file ...",
|
"home_localization_advanced_msg_reading_p4k": "Read p4k file ...",
|
||||||
|
"@home_localization_advanced_msg_reading_p4k": {},
|
||||||
"home_localization_advanced_msg_reading_server_localization_text": "Get Localization text ...",
|
"home_localization_advanced_msg_reading_server_localization_text": "Get Localization text ...",
|
||||||
|
"@home_localization_advanced_msg_reading_server_localization_text": {},
|
||||||
"home_localization_advanced_msg_gen_localization_text": "Generate Localization file ...",
|
"home_localization_advanced_msg_gen_localization_text": "Generate Localization file ...",
|
||||||
|
"@home_localization_advanced_msg_gen_localization_text": {},
|
||||||
"home_localization_advanced_msg_gen_localization_install": "Install Localization file ...",
|
"home_localization_advanced_msg_gen_localization_install": "Install Localization file ...",
|
||||||
|
"@home_localization_advanced_msg_gen_localization_install": {},
|
||||||
"home_localization_msg_version_advanced": "(Advanced)",
|
"home_localization_msg_version_advanced": "(Advanced)",
|
||||||
|
"@home_localization_msg_version_advanced": {},
|
||||||
"home_localization_msg_no_note": "This version does not provide a description",
|
"home_localization_msg_no_note": "This version does not provide a description",
|
||||||
|
"@home_localization_msg_no_note": {},
|
||||||
"home_localization_action_rsi_launcher_localization": "RSILauncher Localization",
|
"home_localization_action_rsi_launcher_localization": "RSILauncher Localization",
|
||||||
|
"@home_localization_action_rsi_launcher_localization": {},
|
||||||
"home_localization_action_advanced": "Advanced Localization",
|
"home_localization_action_advanced": "Advanced Localization",
|
||||||
|
"@home_localization_action_advanced": {},
|
||||||
"home_localization_action_install_customize": "Install custom file",
|
"home_localization_action_install_customize": "Install custom file",
|
||||||
|
"@home_localization_action_install_customize": {},
|
||||||
"home_localization_title_localization_tools": "Localization tool",
|
"home_localization_title_localization_tools": "Localization tool",
|
||||||
|
"@home_localization_title_localization_tools": {},
|
||||||
"performance_json_text_ssdo": "Swip light after the screen light",
|
"performance_json_text_ssdo": "Swip light after the screen light",
|
||||||
|
"@performance_json_text_ssdo": {},
|
||||||
"performance_json_text_ssdo_info": "After adjusting the light, processing level",
|
"performance_json_text_ssdo_info": "After adjusting the light, processing level",
|
||||||
|
"@performance_json_text_ssdo_info": {},
|
||||||
"performance_json_text_title_graphics": "Graphic",
|
"performance_json_text_title_graphics": "Graphic",
|
||||||
|
"@performance_json_text_title_graphics": {},
|
||||||
"performance_json_text_antialiasing": "Anti -aliasing",
|
"performance_json_text_antialiasing": "Anti -aliasing",
|
||||||
|
"@performance_json_text_antialiasing": {},
|
||||||
"performance_json_text_antialiasing_info": "0 Close, 1 SMAA, 2 time filter+SMAA, 3 time filtering and projection matrix shake SMAA",
|
"performance_json_text_antialiasing_info": "0 Close, 1 SMAA, 2 time filter+SMAA, 3 time filtering and projection matrix shake SMAA",
|
||||||
|
"@performance_json_text_antialiasing_info": {},
|
||||||
"performance_json_text_game_effects": "Special effect level",
|
"performance_json_text_game_effects": "Special effect level",
|
||||||
|
"@performance_json_text_game_effects": {},
|
||||||
"performance_json_text_game_effects_info": "Game special effect level",
|
"performance_json_text_game_effects_info": "Game special effect level",
|
||||||
|
"@performance_json_text_game_effects_info": {},
|
||||||
"performance_json_text_texture": "Grade",
|
"performance_json_text_texture": "Grade",
|
||||||
|
"@performance_json_text_texture": {},
|
||||||
"performance_json_text_texture_info": "Model texture details",
|
"performance_json_text_texture_info": "Model texture details",
|
||||||
|
"@performance_json_text_texture_info": {},
|
||||||
"performance_json_text_volumetric_effects": "Volume effect",
|
"performance_json_text_volumetric_effects": "Volume effect",
|
||||||
|
"@performance_json_text_volumetric_effects": {},
|
||||||
"performance_json_text_volumetric_effects_info": "Volume cloud, volume light, etc.",
|
"performance_json_text_volumetric_effects_info": "Volume cloud, volume light, etc.",
|
||||||
|
"@performance_json_text_volumetric_effects_info": {},
|
||||||
"performance_json_text_water": "Water effect",
|
"performance_json_text_water": "Water effect",
|
||||||
|
"@performance_json_text_water": {},
|
||||||
"performance_json_text_water_info": "Grade of various water",
|
"performance_json_text_water_info": "Grade of various water",
|
||||||
|
"@performance_json_text_water_info": {},
|
||||||
"performance_json_text_object_detail": "Object detail",
|
"performance_json_text_object_detail": "Object detail",
|
||||||
|
"@performance_json_text_object_detail": {},
|
||||||
"performance_json_text_object_detail_info": "Model object details, affect LOD, etc.",
|
"performance_json_text_object_detail_info": "Model object details, affect LOD, etc.",
|
||||||
|
"@performance_json_text_object_detail_info": {},
|
||||||
"performance_json_text_particles": "Particle details",
|
"performance_json_text_particles": "Particle details",
|
||||||
|
"@performance_json_text_particles": {},
|
||||||
"performance_json_text_physics": "Physical details",
|
"performance_json_text_physics": "Physical details",
|
||||||
|
"@performance_json_text_physics": {},
|
||||||
"performance_json_text_physics_info": "Scope of physical effects",
|
"performance_json_text_physics_info": "Scope of physical effects",
|
||||||
|
"@performance_json_text_physics_info": {},
|
||||||
"performance_json_text_shading": "Colorrhea details",
|
"performance_json_text_shading": "Colorrhea details",
|
||||||
|
"@performance_json_text_shading": {},
|
||||||
"performance_json_text_shading_info": "Coloror related",
|
"performance_json_text_shading_info": "Coloror related",
|
||||||
|
"@performance_json_text_shading_info": {},
|
||||||
"performance_json_text_shadows": "Shadow details",
|
"performance_json_text_shadows": "Shadow details",
|
||||||
|
"@performance_json_text_shadows": {},
|
||||||
"performance_json_text_shadows_info": "Shadow effect",
|
"performance_json_text_shadows_info": "Shadow effect",
|
||||||
|
"@performance_json_text_shadows_info": {},
|
||||||
"performance_json_text_postprocessing": "Post -processing details",
|
"performance_json_text_postprocessing": "Post -processing details",
|
||||||
|
"@performance_json_text_postprocessing": {},
|
||||||
"performance_json_text_postprocessing_info": "After the color device, dynamic blur effect, etc.",
|
"performance_json_text_postprocessing_info": "After the color device, dynamic blur effect, etc.",
|
||||||
|
"@performance_json_text_postprocessing_info": {},
|
||||||
"performance_json_text_renderer": "Rendering device quality",
|
"performance_json_text_renderer": "Rendering device quality",
|
||||||
|
"@performance_json_text_renderer": {},
|
||||||
"performance_json_text_renderer_info": "Cryengine rendereer quality",
|
"performance_json_text_renderer_info": "Cryengine rendereer quality",
|
||||||
|
"@performance_json_text_renderer_info": {},
|
||||||
"performance_json_text_shader_decal": "Quality",
|
"performance_json_text_shader_decal": "Quality",
|
||||||
|
"@performance_json_text_shader_decal": {},
|
||||||
"performance_json_text_shader_decal_info": "(LOGO, logo, etc.)",
|
"performance_json_text_shader_decal_info": "(LOGO, logo, etc.)",
|
||||||
|
"@performance_json_text_shader_decal_info": {},
|
||||||
"performance_json_text_shader_post_process": "Color quality",
|
"performance_json_text_shader_post_process": "Color quality",
|
||||||
|
"@performance_json_text_shader_post_process": {},
|
||||||
"performance_json_text_shader_fx": "FX quality",
|
"performance_json_text_shader_fx": "FX quality",
|
||||||
|
"@performance_json_text_shader_fx": {},
|
||||||
"performance_json_text_shader_general": "Conventional quality",
|
"performance_json_text_shader_general": "Conventional quality",
|
||||||
|
"@performance_json_text_shader_general": {},
|
||||||
"performance_json_text_shader_general_info": "Overall model quality",
|
"performance_json_text_shader_general_info": "Overall model quality",
|
||||||
|
"@performance_json_text_shader_general_info": {},
|
||||||
"performance_json_text_shader_glass": "Glass quality",
|
"performance_json_text_shader_glass": "Glass quality",
|
||||||
|
"@performance_json_text_shader_glass": {},
|
||||||
"performance_json_text_shader_glass_info": "Window, mirror, etc.",
|
"performance_json_text_shader_glass_info": "Window, mirror, etc.",
|
||||||
|
"@performance_json_text_shader_glass_info": {},
|
||||||
"performance_json_text_shader_hdr": "HDR quality",
|
"performance_json_text_shader_hdr": "HDR quality",
|
||||||
|
"@performance_json_text_shader_hdr": {},
|
||||||
"performance_json_text_shader_hdr_info": "HDR color difference, brightness level treatment, etc.",
|
"performance_json_text_shader_hdr_info": "HDR color difference, brightness level treatment, etc.",
|
||||||
|
"@performance_json_text_shader_hdr_info": {},
|
||||||
"performance_json_text_shader_particle": "Particle quality",
|
"performance_json_text_shader_particle": "Particle quality",
|
||||||
|
"@performance_json_text_shader_particle": {},
|
||||||
"performance_json_text_shader_particle_info": "Particle effect quality",
|
"performance_json_text_shader_particle_info": "Particle effect quality",
|
||||||
|
"@performance_json_text_shader_particle_info": {},
|
||||||
"performance_json_text_shader_terrain": "Ground quality",
|
"performance_json_text_shader_terrain": "Ground quality",
|
||||||
|
"@performance_json_text_shader_terrain": {},
|
||||||
"performance_json_text_shader_shadow": "Shadow quality",
|
"performance_json_text_shader_shadow": "Shadow quality",
|
||||||
|
"@performance_json_text_shader_shadow": {},
|
||||||
"performance_json_text_shader_sky": "Sky quality",
|
"performance_json_text_shader_sky": "Sky quality",
|
||||||
|
"@performance_json_text_shader_sky": {},
|
||||||
"performance_json_text_particles_object_collisions": "Particle collision",
|
"performance_json_text_particles_object_collisions": "Particle collision",
|
||||||
|
"@performance_json_text_particles_object_collisions": {},
|
||||||
"performance_json_text_particles_object_collisions_info": "1 Static particles 2 include dynamic particles",
|
"performance_json_text_particles_object_collisions_info": "1 Static particles 2 include dynamic particles",
|
||||||
|
"@performance_json_text_particles_object_collisions_info": {},
|
||||||
"performance_json_text_displayinfo": "Screen information (display frame rate)",
|
"performance_json_text_displayinfo": "Screen information (display frame rate)",
|
||||||
|
"@performance_json_text_displayinfo": {},
|
||||||
"performance_json_text_displayinfo_info": "Display frame rates, server information, etc. in the upper right corner of the screen",
|
"performance_json_text_displayinfo_info": "Display frame rates, server information, etc. in the upper right corner of the screen",
|
||||||
|
"@performance_json_text_displayinfo_info": {},
|
||||||
"performance_json_text_max_fps": "Maximum frame rate",
|
"performance_json_text_max_fps": "Maximum frame rate",
|
||||||
|
"@performance_json_text_max_fps": {},
|
||||||
"performance_json_text_max_fps_info": "Adjust the maximum frame rate of the game, 0 is not limited",
|
"performance_json_text_max_fps_info": "Adjust the maximum frame rate of the game, 0 is not limited",
|
||||||
|
"@performance_json_text_max_fps_info": {},
|
||||||
"performance_json_text_display_session": "Display session information",
|
"performance_json_text_display_session": "Display session information",
|
||||||
|
"@performance_json_text_display_session": {},
|
||||||
"performance_json_text_display_session_info": "After turning on, display a QR code on the screen to allow CIG to quickly locate related information when feedback",
|
"performance_json_text_display_session_info": "After turning on, display a QR code on the screen to allow CIG to quickly locate related information when feedback",
|
||||||
|
"@performance_json_text_display_session_info": {},
|
||||||
"performance_json_text_vsync": "Vertical sync",
|
"performance_json_text_vsync": "Vertical sync",
|
||||||
|
"@performance_json_text_vsync": {},
|
||||||
"performance_json_text_vsync_info": "Open to prevent tearing, turn off to increase the frame rate",
|
"performance_json_text_vsync_info": "Open to prevent tearing, turn off to increase the frame rate",
|
||||||
|
"@performance_json_text_vsync_info": {},
|
||||||
"performance_json_text_motion_blur": "Dynamic blur",
|
"performance_json_text_motion_blur": "Dynamic blur",
|
||||||
|
"@performance_json_text_motion_blur": {},
|
||||||
"performance_json_text_motion_blur_info": "Open to improve the sense of movement, turn off and enhance the perception",
|
"performance_json_text_motion_blur_info": "Open to improve the sense of movement, turn off and enhance the perception",
|
||||||
|
"@performance_json_text_motion_blur_info": {},
|
||||||
"performance_json_text_fov": "Set viewing angle FOV",
|
"performance_json_text_fov": "Set viewing angle FOV",
|
||||||
|
"@performance_json_text_fov": {},
|
||||||
"performance_json_text_ui_animation": "UI fades into the animation",
|
"performance_json_text_ui_animation": "UI fades into the animation",
|
||||||
|
"@performance_json_text_ui_animation": {},
|
||||||
"performance_json_text_custom_parameters": "Custom parameter",
|
"performance_json_text_custom_parameters": "Custom parameter",
|
||||||
|
"@performance_json_text_custom_parameters": {},
|
||||||
"performance_json_text_title_custom": "Customize",
|
"performance_json_text_title_custom": "Customize",
|
||||||
"tools_rsi_launcher_enhance_init_msg1": "Read the starter information ...",
|
"@performance_json_text_title_custom": {},
|
||||||
|
"tools_rsi_launcher_enhance_init_msg1": "Read the RSI Launcher information ...",
|
||||||
|
"@tools_rsi_launcher_enhance_init_msg1": {},
|
||||||
"tools_rsi_launcher_enhance_init_msg2": "Obtaining enhanced data from the Internet ...",
|
"tools_rsi_launcher_enhance_init_msg2": "Obtaining enhanced data from the Internet ...",
|
||||||
|
"@tools_rsi_launcher_enhance_init_msg2": {},
|
||||||
"tools_rsi_launcher_enhance_working_msg1": "Generate patch ...",
|
"tools_rsi_launcher_enhance_working_msg1": "Generate patch ...",
|
||||||
|
"@tools_rsi_launcher_enhance_working_msg1": {},
|
||||||
"tools_rsi_launcher_enhance_working_msg2": "Installation patch takes a little time, depending on your computer performance ...",
|
"tools_rsi_launcher_enhance_working_msg2": "Installation patch takes a little time, depending on your computer performance ...",
|
||||||
"tools_rsi_launcher_enhance_title": "RSI starter enhancement",
|
"@tools_rsi_launcher_enhance_working_msg2": {},
|
||||||
"tools_rsi_launcher_enhance_msg_version": "Internal version information of the starter: {v0}",
|
"tools_rsi_launcher_enhance_title": "RSI Launcher enhancement",
|
||||||
|
"@tools_rsi_launcher_enhance_title": {},
|
||||||
|
"tools_rsi_launcher_enhance_msg_version": "Internal version information of the RSI Launcher: {v0}",
|
||||||
|
"@tools_rsi_launcher_enhance_msg_version": {},
|
||||||
"tools_rsi_launcher_enhance_msg_patch_status": "Patch status: {v0}",
|
"tools_rsi_launcher_enhance_msg_patch_status": "Patch status: {v0}",
|
||||||
|
"@tools_rsi_launcher_enhance_msg_patch_status": {},
|
||||||
"tools_rsi_launcher_enhance_msg_error": "Obtaining enhanced data failure may be the network problem or the current version does not support",
|
"tools_rsi_launcher_enhance_msg_error": "Obtaining enhanced data failure may be the network problem or the current version does not support",
|
||||||
|
"@tools_rsi_launcher_enhance_msg_error": {},
|
||||||
"tools_rsi_launcher_enhance_title_localization": "RSI startup localization",
|
"tools_rsi_launcher_enhance_title_localization": "RSI startup localization",
|
||||||
"tools_rsi_launcher_enhance_subtitle_localization": "Add multi -language support to the RSI starter.",
|
"@tools_rsi_launcher_enhance_title_localization": {},
|
||||||
"tools_rsi_launcher_enhance_title_download_booster": "RSI starter download enhancement",
|
"tools_rsi_launcher_enhance_subtitle_localization": "Add multi -language support to the RSI Launcher.",
|
||||||
|
"@tools_rsi_launcher_enhance_subtitle_localization": {},
|
||||||
|
"tools_rsi_launcher_enhance_title_download_booster": "RSI Launcher download enhancement",
|
||||||
|
"@tools_rsi_launcher_enhance_title_download_booster": {},
|
||||||
"tools_rsi_launcher_enhance_subtitle_download_booster": "When downloading the game, you can use more threads to increase the download speed.",
|
"tools_rsi_launcher_enhance_subtitle_download_booster": "When downloading the game, you can use more threads to increase the download speed.",
|
||||||
|
"@tools_rsi_launcher_enhance_subtitle_download_booster": {},
|
||||||
"tools_rsi_launcher_enhance_action_install": "Installation enhanced patch",
|
"tools_rsi_launcher_enhance_action_install": "Installation enhanced patch",
|
||||||
|
"@tools_rsi_launcher_enhance_action_install": {},
|
||||||
"tools_rsi_launcher_enhance_msg_uninstall": "* If you need to uninstall the enhanced patch, cover the installation RSI promoter.",
|
"tools_rsi_launcher_enhance_msg_uninstall": "* If you need to uninstall the enhanced patch, cover the installation RSI promoter.",
|
||||||
|
"@tools_rsi_launcher_enhance_msg_uninstall": {},
|
||||||
"tools_rsi_launcher_enhance_msg_error_launcher_notfound": "No RSI promoter was found",
|
"tools_rsi_launcher_enhance_msg_error_launcher_notfound": "No RSI promoter was found",
|
||||||
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error": "Reading the starter information failed!",
|
"@tools_rsi_launcher_enhance_msg_error_launcher_notfound": {},
|
||||||
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args": "Read the starter information failure: {v0}",
|
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error": "Reading the Launcher information failed!",
|
||||||
|
"@tools_rsi_launcher_enhance_msg_error_get_launcher_info_error": {},
|
||||||
|
"tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args": "Read the RSI Launcher information failure: {v0}",
|
||||||
|
"@tools_rsi_launcher_enhance_msg_error_get_launcher_info_error_with_args": {},
|
||||||
"tools_action_rsi_launcher_enhance_info": "Enhanced launcher Localization、 download thread",
|
"tools_action_rsi_launcher_enhance_info": "Enhanced launcher Localization、 download thread",
|
||||||
"tools_rsi_launcher_enhance_note_title": "Instructions for the use of RSI starter enhancement",
|
"@tools_action_rsi_launcher_enhance_info": {},
|
||||||
"tools_rsi_launcher_enhance_note_msg": "RSI starter enhancement is a community function. It will unpack \"RSI LAUNCHER\" on your computer and add additional enhancement functions. What functions are determined by you.\n\nAt present, the official (CIG) only permits us to perform multi -language operations. The launch of the booter download enhancement is an extra function we think of it. Violation of the CIG user protocol (https://robertsspaceindustries.com/eula) may cause serious consequences such as accounts. Whether or not you are determined by yourself, we are not responsible for the possible consequences (game damage, account ban, etc.).\n\nFor the modified content of the starter, we are open from: https://github.com/starcitizentoolbox/rsilauncherenhance. If necessary, you can check it yourself.\n\nIf you need to cancel this enhanced patch for any reason, cover the installation of the official startup directly.",
|
"tools_rsi_launcher_enhance_note_title": "Instructions for the use of RSI Launcher enhancement",
|
||||||
|
"@tools_rsi_launcher_enhance_note_title": {},
|
||||||
|
"tools_rsi_launcher_enhance_note_msg": "RSI Launcher enhancement is a community function. It will unpack \"RSI LAUNCHER\" on your computer and add additional enhancement functions. What functions are determined by you.\n\nAt present, the official (CIG) only permits us to perform multi -language operations. The launch of the booter download enhancement is an extra function we think of it. Violation of the CIG user protocol (https://robertsspaceindustries.com/eula) may cause serious consequences such as accounts. Whether or not you are determined by yourself, we are not responsible for the possible consequences (game damage, account ban, etc.).\n\nFor the modified content of the Launcher, we are open from: https://github.com/starcitizentoolbox/rsilauncherenhance. If necessary, you can check it yourself.\n\nIf you need to cancel this enhanced patch for any reason, cover the installation of the official RSI Launcher directly.",
|
||||||
|
"@tools_rsi_launcher_enhance_note_msg": {},
|
||||||
"tools_action_unp4k": "P4K viewer",
|
"tools_action_unp4k": "P4K viewer",
|
||||||
|
"@tools_action_unp4k": {},
|
||||||
"tools_action_unp4k_info": "Package Star Citizen P4K File",
|
"tools_action_unp4k_info": "Package Star Citizen P4K File",
|
||||||
|
"@tools_action_unp4k_info": {},
|
||||||
"tools_unp4k_title": "P4k viewer -> {v0}",
|
"tools_unp4k_title": "P4k viewer -> {v0}",
|
||||||
|
"@tools_unp4k_title": {},
|
||||||
"tools_unp4k_view_file": "Click the file to preview",
|
"tools_unp4k_view_file": "Click the file to preview",
|
||||||
|
"@tools_unp4k_view_file": {},
|
||||||
"tools_unp4k_msg_unknown_file_type": "Unknown file type\n{v0}",
|
"tools_unp4k_msg_unknown_file_type": "Unknown file type\n{v0}",
|
||||||
|
"@tools_unp4k_msg_unknown_file_type": {},
|
||||||
"home_localization_select_customize_file_ini": "Please select INI file",
|
"home_localization_select_customize_file_ini": "Please select INI file",
|
||||||
|
"@home_localization_select_customize_file_ini": {},
|
||||||
"home_localization_select_customize_file": "Please select custom Localization file",
|
"home_localization_select_customize_file": "Please select custom Localization file",
|
||||||
|
"@home_localization_select_customize_file": {},
|
||||||
"home_localization_action_select_customize_file": "Click to select INI file",
|
"home_localization_action_select_customize_file": "Click to select INI file",
|
||||||
|
"@home_localization_action_select_customize_file": {},
|
||||||
"home_localization_ptu_advanced_localization_tip_title": "Recommended advanced localization",
|
"home_localization_ptu_advanced_localization_tip_title": "Recommended advanced localization",
|
||||||
|
"@home_localization_ptu_advanced_localization_tip_title": {},
|
||||||
"home_localization_ptu_advanced_localization_tip_title_info": "On PTU/EPTU and other test channels, the current localization text text may not be synchronized with the game, and the use of advanced localization can reduce garbled production.",
|
"home_localization_ptu_advanced_localization_tip_title_info": "On PTU/EPTU and other test channels, the current localization text text may not be synchronized with the game, and the use of advanced localization can reduce garbled production.",
|
||||||
|
"@home_localization_ptu_advanced_localization_tip_title_info": {},
|
||||||
"tools_rsi_launcher_enhance_action_fold": "Put up the additional function",
|
"tools_rsi_launcher_enhance_action_fold": "Put up the additional function",
|
||||||
|
"@tools_rsi_launcher_enhance_action_fold": {},
|
||||||
"tools_rsi_launcher_enhance_action_expand": "Expand additional features",
|
"tools_rsi_launcher_enhance_action_expand": "Expand additional features",
|
||||||
|
"@tools_rsi_launcher_enhance_action_expand": {},
|
||||||
"tools_unp4k_missing_runtime": "Lack of runtime",
|
"tools_unp4k_missing_runtime": "Lack of runtime",
|
||||||
|
"@tools_unp4k_missing_runtime": {},
|
||||||
"tools_unp4k_missing_runtime_info": "Use this function to install the .NET8 runtime, please click the button below to download and install it. After the installation is successful, reopen this page to continue to use.",
|
"tools_unp4k_missing_runtime_info": "Use this function to install the .NET8 runtime, please click the button below to download and install it. After the installation is successful, reopen this page to continue to use.",
|
||||||
"tools_unp4k_missing_runtime_action_install": "Install the runtime"
|
"@tools_unp4k_missing_runtime_info": {},
|
||||||
|
"tools_unp4k_missing_runtime_action_install": "Install the runtime",
|
||||||
|
"@tools_unp4k_missing_runtime_action_install": {},
|
||||||
|
"home_localization_action_rsi_launcher_no_game_path_msg": "You are not currently installed in the game body or the game installation directory is not selected, and you can only use the promoter Chinese function. Please make sure the game is installed or adds the game installation directory in the box settings.",
|
||||||
|
"doctor_game_error_gpu_vulkan_crash": "GPU Vulkan Crash",
|
||||||
|
"doctor_game_error_gpu_vulkan_crash_info": "Vulkan Crash! This may be the problem of driving version or game engine, please try to update the GPU driver or use the color cleaner function to return to DX11"
|
||||||
}
|
}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"@@locale": "ja",
|
"@@locale": "ja",
|
||||||
|
"@@auto_translate_locale": "ja",
|
||||||
"app_language_name": "日本語",
|
"app_language_name": "日本語",
|
||||||
"@app_language_name": {},
|
"@app_language_name": {},
|
||||||
"app_language_code": "ja",
|
"app_language_code": "ja",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"@@locale": "zh_CN",
|
"@@locale": "zh_CN",
|
||||||
"@auto_translate_locale": "zh-cn",
|
"@@auto_translate_locale": "zh-cn",
|
||||||
"app_language_name": "简体中文",
|
"app_language_name": "简体中文",
|
||||||
"@app_language_name": {},
|
"@app_language_name": {},
|
||||||
"app_language_code": "zh_CN",
|
"app_language_code": "zh_CN",
|
||||||
@ -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}",
|
||||||
@ -508,8 +508,6 @@
|
|||||||
"@app_splash_almost_done": {},
|
"@app_splash_almost_done": {},
|
||||||
"tools_hosts_info_rsi_official_website": "RSI 官网",
|
"tools_hosts_info_rsi_official_website": "RSI 官网",
|
||||||
"@tools_hosts_info_rsi_official_website": {},
|
"@tools_hosts_info_rsi_official_website": {},
|
||||||
"tools_hosts_info_rsi_zendesk": "RSI Zendesk 客服站",
|
|
||||||
"@tools_hosts_info_rsi_zendesk": {},
|
|
||||||
"tools_hosts_info_rsi_customer_service": "RSI 客服站",
|
"tools_hosts_info_rsi_customer_service": "RSI 客服站",
|
||||||
"@tools_hosts_info_rsi_customer_service": {},
|
"@tools_hosts_info_rsi_customer_service": {},
|
||||||
"tools_hosts_info_dns_query_and_test": "正在查询 DNS 并测试可访问性 请耐心等待...",
|
"tools_hosts_info_dns_query_and_test": "正在查询 DNS 并测试可访问性 请耐心等待...",
|
||||||
@ -654,6 +652,8 @@
|
|||||||
"doctor_game_error_game_damaged_p4k_file_info": "请尝试删除 Data.p4k 文件 并在启动器校验 或 使用盒子分流。",
|
"doctor_game_error_game_damaged_p4k_file_info": "请尝试删除 Data.p4k 文件 并在启动器校验 或 使用盒子分流。",
|
||||||
"doctor_game_error_low_gpu_memory": "可用显存不足",
|
"doctor_game_error_low_gpu_memory": "可用显存不足",
|
||||||
"doctor_game_error_low_gpu_memory_info": "请不要在后台运行其他高显卡占用的 游戏/应用,或更换显卡。",
|
"doctor_game_error_low_gpu_memory_info": "请不要在后台运行其他高显卡占用的 游戏/应用,或更换显卡。",
|
||||||
|
"doctor_game_error_gpu_vulkan_crash": "GPU Vulkan 崩溃",
|
||||||
|
"doctor_game_error_gpu_vulkan_crash_info": "Vulkan 崩溃!这可能是驱动版本或游戏引擎问题,请尝试更新 GPU 驱动 或 使用清理着色器功能为您回退到 DX11",
|
||||||
"app_common_error_info": "出现错误: {v0}",
|
"app_common_error_info": "出现错误: {v0}",
|
||||||
"app_common_tip": "提示",
|
"app_common_tip": "提示",
|
||||||
"app_common_tip_i_know": "我知道了",
|
"app_common_tip_i_know": "我知道了",
|
||||||
@ -702,6 +702,7 @@
|
|||||||
"home_localization_msg_version_advanced": " (高级汉化)",
|
"home_localization_msg_version_advanced": " (高级汉化)",
|
||||||
"home_localization_msg_no_note": "该版本没有提供描述",
|
"home_localization_msg_no_note": "该版本没有提供描述",
|
||||||
"home_localization_action_rsi_launcher_localization": "RSI 启动器汉化",
|
"home_localization_action_rsi_launcher_localization": "RSI 启动器汉化",
|
||||||
|
"home_localization_action_rsi_launcher_no_game_path_msg": "您当前未安装游戏本体或未选择游戏安装目录,只可使用启动器汉化功能。请确保游戏安装完毕或在盒子设置中添加游戏安装目录后重试。",
|
||||||
"home_localization_action_advanced": "高级汉化",
|
"home_localization_action_advanced": "高级汉化",
|
||||||
"home_localization_action_install_customize": "安装自定义文件",
|
"home_localization_action_install_customize": "安装自定义文件",
|
||||||
"home_localization_title_localization_tools": "汉化工具",
|
"home_localization_title_localization_tools": "汉化工具",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"@@locale": "zh_TW",
|
"@@locale": "zh_TW",
|
||||||
"@auto_translate_locale": "zh-cn",
|
"@@auto_translate_locale": "zh-tw",
|
||||||
"app_language_name": "繁體中文",
|
"app_language_name": "繁體中文",
|
||||||
"@app_language_name": {},
|
"@app_language_name": {},
|
||||||
"app_language_code": "zh_TW",
|
"app_language_code": "zh_TW",
|
||||||
@ -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}",
|
||||||
@ -508,8 +508,6 @@
|
|||||||
"@app_splash_almost_done": {},
|
"@app_splash_almost_done": {},
|
||||||
"tools_hosts_info_rsi_official_website": "RSI 官方網站",
|
"tools_hosts_info_rsi_official_website": "RSI 官方網站",
|
||||||
"@tools_hosts_info_rsi_official_website": {},
|
"@tools_hosts_info_rsi_official_website": {},
|
||||||
"tools_hosts_info_rsi_zendesk": "RSI Zendesk 客服站",
|
|
||||||
"@tools_hosts_info_rsi_zendesk": {},
|
|
||||||
"tools_hosts_info_rsi_customer_service": "RSI 客服站",
|
"tools_hosts_info_rsi_customer_service": "RSI 客服站",
|
||||||
"@tools_hosts_info_rsi_customer_service": {},
|
"@tools_hosts_info_rsi_customer_service": {},
|
||||||
"tools_hosts_info_dns_query_and_test": "正在查詢 DNS 並測試可瀏覽性 請耐心等待...",
|
"tools_hosts_info_dns_query_and_test": "正在查詢 DNS 並測試可瀏覽性 請耐心等待...",
|
||||||
@ -786,5 +784,18 @@
|
|||||||
"tools_action_unp4k_info": "解包星際公民 p4k 文件",
|
"tools_action_unp4k_info": "解包星際公民 p4k 文件",
|
||||||
"tools_unp4k_title": "P4K 查看器 -> {v0}",
|
"tools_unp4k_title": "P4K 查看器 -> {v0}",
|
||||||
"tools_unp4k_view_file": "單擊文件以預覽",
|
"tools_unp4k_view_file": "單擊文件以預覽",
|
||||||
"tools_unp4k_msg_unknown_file_type": "未知文件類型\n{v0}"
|
"tools_unp4k_msg_unknown_file_type": "未知文件類型\n{v0}",
|
||||||
}
|
"home_localization_action_rsi_launcher_no_game_path_msg": "您當前未安裝遊戲本體或未選擇遊戲安裝目錄,只可使用啟動器翻譯功能。請確保遊戲安裝完畢或在工具箱設置中添加遊戲安裝目錄後重試。",
|
||||||
|
"home_localization_select_customize_file_ini": "請選擇 ini 文件",
|
||||||
|
"home_localization_select_customize_file": "請選擇自定義翻譯文件",
|
||||||
|
"home_localization_action_select_customize_file": "點擊選擇 ini 文件",
|
||||||
|
"home_localization_ptu_advanced_localization_tip_title": "推薦使用高級翻譯",
|
||||||
|
"home_localization_ptu_advanced_localization_tip_title_info": "在 PTU/EPTU 等測試頻道 ,當前翻譯文本可能與遊戲不同步,使用高級翻譯可以減少亂碼產生。",
|
||||||
|
"tools_rsi_launcher_enhance_action_fold": "收起額外功能",
|
||||||
|
"tools_rsi_launcher_enhance_action_expand": "展開額外功能",
|
||||||
|
"tools_unp4k_missing_runtime": "缺少運行庫",
|
||||||
|
"tools_unp4k_missing_runtime_info": "使用此功能需安裝 .NET8 運行庫,請點擊下方按鈕下載安裝,安裝成功後重新打開此頁面即可繼續使用。",
|
||||||
|
"tools_unp4k_missing_runtime_action_install": "安裝運行庫",
|
||||||
|
"doctor_game_error_gpu_vulkan_crash": "GPU Vulkan 崩潰",
|
||||||
|
"doctor_game_error_gpu_vulkan_crash_info": "Vulkan 崩潰!這可能是驅動版本或遊戲引擎問題,請嘗試更新 GPU 驅動 或 使用清理著色器功能為您回退到 DX11"
|
||||||
|
}
|
||||||
@ -1,3 +1,4 @@
|
|||||||
|
import 'dart:io';
|
||||||
import 'package:desktop_webview_window/desktop_webview_window.dart';
|
import 'package:desktop_webview_window/desktop_webview_window.dart';
|
||||||
import 'package:fluent_ui/fluent_ui.dart';
|
import 'package:fluent_ui/fluent_ui.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
@ -26,6 +27,8 @@ _initWindow() async {
|
|||||||
TitleBarStyle.hidden,
|
TitleBarStyle.hidden,
|
||||||
windowButtonVisibility: false,
|
windowButtonVisibility: false,
|
||||||
);
|
);
|
||||||
|
await windowManager.setSize(const Size(1280, 810));
|
||||||
|
await windowManager.setMinimumSize(const Size(1280, 810));
|
||||||
await windowManager.center(animate: true);
|
await windowManager.center(animate: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,7 +68,7 @@ class App extends HookConsumerWidget {
|
|||||||
micaBackgroundColor: appState.themeConf.micaColor,
|
micaBackgroundColor: appState.themeConf.micaColor,
|
||||||
buttonTheme: ButtonThemeData(
|
buttonTheme: ButtonThemeData(
|
||||||
defaultButtonStyle: ButtonStyle(
|
defaultButtonStyle: ButtonStyle(
|
||||||
shape: ButtonState.all(RoundedRectangleBorder(
|
shape: WidgetStateProperty.all(RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(4),
|
borderRadius: BorderRadius.circular(4),
|
||||||
side: BorderSide(color: Colors.white.withOpacity(.01)))),
|
side: BorderSide(color: Colors.white.withOpacity(.01)))),
|
||||||
))),
|
))),
|
||||||
@ -86,6 +89,7 @@ Widget _defaultWebviewTitleBar(BuildContext context) {
|
|||||||
child: Row(
|
child: Row(
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
|
if (Platform.isMacOS) const SizedBox(width: 96),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: !state.canGoBack ? null : controller.back,
|
onPressed: !state.canGoBack ? null : controller.back,
|
||||||
icon: const Icon(FluentIcons.chevron_left),
|
icon: const Icon(FluentIcons.chevron_left),
|
||||||
|
|||||||
@ -103,7 +103,7 @@ class Aria2cModel extends _$Aria2cModel {
|
|||||||
arguments: [
|
arguments: [
|
||||||
"-V",
|
"-V",
|
||||||
"-c",
|
"-c",
|
||||||
"-x 10",
|
"-x 16",
|
||||||
"--dir=${state.aria2cDir}\\downloads",
|
"--dir=${state.aria2cDir}\\downloads",
|
||||||
"--disable-ipv6",
|
"--disable-ipv6",
|
||||||
"--enable-rpc",
|
"--enable-rpc",
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@ part of 'aria2c.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$aria2cModelHash() => r'8efef4661876de219510cf3e7e2d86c02405eb26';
|
String _$aria2cModelHash() => r'55dea5bd2e1c81fec0ef8ef1a10f41179775d7ee';
|
||||||
|
|
||||||
/// See also [Aria2cModel].
|
/// See also [Aria2cModel].
|
||||||
@ProviderFor(Aria2cModel)
|
@ProviderFor(Aria2cModel)
|
||||||
|
|||||||
@ -83,10 +83,7 @@ class Unp4kCModel extends _$Unp4kCModel {
|
|||||||
errorMessage: "${state.errorMessage}\n${event.data}");
|
errorMessage: "${state.errorMessage}\n${event.data}");
|
||||||
}
|
}
|
||||||
if (!_hasUnp4kRunTimeError) {
|
if (!_hasUnp4kRunTimeError) {
|
||||||
if (state.errorMessage.contains(
|
if (checkRunTimeError(state.errorMessage)) {
|
||||||
"You must install .NET to run this application") ||
|
|
||||||
state.errorMessage.contains(
|
|
||||||
"You must install or update .NET to run this application")) {
|
|
||||||
_hasUnp4kRunTimeError = true;
|
_hasUnp4kRunTimeError = true;
|
||||||
AnalyticsApi.touch("unp4k_no_runtime");
|
AnalyticsApi.touch("unp4k_no_runtime");
|
||||||
}
|
}
|
||||||
@ -246,6 +243,19 @@ class Unp4kCModel extends _$Unp4kCModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool checkRunTimeError(String errorMessage) {
|
||||||
|
if (errorMessage
|
||||||
|
.contains("You must install .NET to run this application") ||
|
||||||
|
errorMessage.contains(
|
||||||
|
"You must install or update .NET to run this application") ||
|
||||||
|
errorMessage.contains(
|
||||||
|
"It was not possible to find any compatible framework version")) {
|
||||||
|
AnalyticsApi.touch("unp4k_no_runtime");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
static Future<Uint8List> unp4kTools(
|
static Future<Uint8List> unp4kTools(
|
||||||
String applicationBinaryModuleDir, List<String> args) async {
|
String applicationBinaryModuleDir, List<String> args) async {
|
||||||
await BinaryModuleConf.extractModule(
|
await BinaryModuleConf.extractModule(
|
||||||
|
|||||||
@ -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'23b148d557f55aa6050f1b1e38a3465d22a09034';
|
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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -103,7 +103,7 @@ class HomeGameDoctorUIModel extends _$HomeGameDoctorUIModel {
|
|||||||
showToast(context, S.current.doctor_action_result_redirect_warning);
|
showToast(context, S.current.doctor_action_result_redirect_warning);
|
||||||
await Future.delayed(const Duration(milliseconds: 300));
|
await Future.delayed(const Duration(milliseconds: 300));
|
||||||
launchUrlString(
|
launchUrlString(
|
||||||
"https://btfy.eu.org/?q=5L+u5pS5d2luZG93c+eUqOaIt+WQjeS7juS4reaWh+WIsOiLseaWhw==");
|
"https://jingyan.baidu.com/article/59703552a318a08fc0074021.html");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
showToast(context, S.current.doctor_action_result_issue_not_supported);
|
showToast(context, S.current.doctor_action_result_issue_not_supported);
|
||||||
|
|||||||
@ -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,7 @@ 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/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';
|
||||||
|
|
||||||
@ -153,7 +153,7 @@ class HomeUI extends HookConsumerWidget {
|
|||||||
? null
|
? null
|
||||||
: ButtonStyle(
|
: ButtonStyle(
|
||||||
backgroundColor:
|
backgroundColor:
|
||||||
ButtonState.resolveWith(_getRunButtonColor),
|
WidgetStateProperty.resolveWith(_getRunButtonColor),
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.all(6),
|
padding: const EdgeInsets.all(6),
|
||||||
@ -167,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(
|
||||||
@ -476,13 +467,13 @@ class HomeUI extends HookConsumerWidget {
|
|||||||
final item = items.elementAt(index);
|
final item = items.elementAt(index);
|
||||||
return HoverButton(
|
return HoverButton(
|
||||||
onPressed: () => _onMenuTap(context, item.key, homeState, ref),
|
onPressed: () => _onMenuTap(context, item.key, homeState, ref),
|
||||||
builder: (BuildContext context, Set<ButtonStates> states) {
|
builder: (BuildContext context, Set<WidgetState> states) {
|
||||||
return Container(
|
return Container(
|
||||||
width: 300,
|
width: 300,
|
||||||
height: 120,
|
height: 120,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
color: states.isHovering
|
color: states.isHovered
|
||||||
? FluentTheme.of(context).cardColor.withOpacity(.1)
|
? FluentTheme.of(context).cardColor.withOpacity(.1)
|
||||||
: FluentTheme.of(context).cardColor,
|
: FluentTheme.of(context).cardColor,
|
||||||
),
|
),
|
||||||
@ -795,27 +786,35 @@ class HomeUI extends HookConsumerWidget {
|
|||||||
switch (key) {
|
switch (key) {
|
||||||
case "localization":
|
case "localization":
|
||||||
if (homeState.scInstalledPath == "not_install") {
|
if (homeState.scInstalledPath == "not_install") {
|
||||||
showToast(context, gameInstallReqInfo);
|
ToolsUIModel.rsiEnhance(context, showNotGameInstallMsg: true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
final model = ref.watch(homeUIModelProvider.notifier);
|
final model = ref.watch(homeUIModelProvider.notifier);
|
||||||
model.checkLocalizationUpdate();
|
model.checkLocalizationUpdate();
|
||||||
await showDialog(
|
await showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
dismissWithEsc: false,
|
dismissWithEsc: false,
|
||||||
builder: (BuildContext context) => const LocalizationDialogUI());
|
builder: (BuildContext context) => const LocalizationDialogUI(),
|
||||||
|
);
|
||||||
model.checkLocalizationUpdate(skipReload: true);
|
model.checkLocalizationUpdate(skipReload: true);
|
||||||
break;
|
break;
|
||||||
|
case "performance":
|
||||||
|
if (homeState.scInstalledPath == "not_install") {
|
||||||
|
showToast(context, gameInstallReqInfo);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
context.push("/index/$key");
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
context.push("/index/$key");
|
context.push("/index/$key");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Color? _getRunButtonColor(Set<ButtonStates> states) {
|
Color? _getRunButtonColor(Set<WidgetState> states) {
|
||||||
if (states.isPressing) {
|
if (states.isPressed) {
|
||||||
return const Color.fromRGBO(49, 227, 88, .5);
|
return const Color.fromRGBO(49, 227, 88, .5);
|
||||||
}
|
}
|
||||||
if (states.isHovering) {
|
if (states.isPressed) {
|
||||||
return const Color.fromRGBO(47, 213, 84, 1.0);
|
return const Color.fromRGBO(47, 213, 84, 1.0);
|
||||||
}
|
}
|
||||||
return const Color.fromRGBO(49, 227, 88, .8);
|
return const Color.fromRGBO(49, 227, 88, .8);
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -235,10 +235,7 @@ class AdvancedLocalizationUIModel extends _$AdvancedLocalizationUIModel {
|
|||||||
return iniData;
|
return iniData;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
final errorMessage = e.toString();
|
final errorMessage = e.toString();
|
||||||
if (errorMessage
|
if (Unp4kCModel.checkRunTimeError(errorMessage)) {
|
||||||
.contains("You must install .NET to run this application") ||
|
|
||||||
errorMessage.contains(
|
|
||||||
"You must install or update .NET to run this application")) {
|
|
||||||
AnalyticsApi.touch("advanced_localization_no_runtime");
|
AnalyticsApi.touch("advanced_localization_no_runtime");
|
||||||
}
|
}
|
||||||
state = state.copyWith(
|
state = state.copyWith(
|
||||||
|
|||||||
@ -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'4e1fc9193a85a06ba11a249d6cc00d79306d2532';
|
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),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -280,7 +280,8 @@ class LocalizationUIModel extends _$LocalizationUIModel {
|
|||||||
"${URLConf.gitlabLocalizationUrl}/archive/${value.versionName}.tar.gz";
|
"${URLConf.gitlabLocalizationUrl}/archive/${value.versionName}.tar.gz";
|
||||||
final r = await RSHttp.get(downloadUrl);
|
final r = await RSHttp.get(downloadUrl);
|
||||||
if (r.statusCode == 200 && r.data != null) {
|
if (r.statusCode == 200 && r.data != null) {
|
||||||
await savePath.writeAsBytes(r.data!);
|
await savePath.create(recursive: true);
|
||||||
|
await savePath.writeAsBytes(r.data!, flush: true);
|
||||||
} else {
|
} else {
|
||||||
throw "statusCode Error : ${r.statusCode}";
|
throw "statusCode Error : ${r.statusCode}";
|
||||||
}
|
}
|
||||||
@ -296,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -350,9 +351,14 @@ class LocalizationUIModel extends _$LocalizationUIModel {
|
|||||||
return iniString.contains("_starcitizen_doctor_localization_advanced=true");
|
return iniString.contains("_starcitizen_doctor_localization_advanced=true");
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> _getLangCfgEnableLang({String lang = ""}) async {
|
Future<bool> _getLangCfgEnableLang(
|
||||||
if (!await _cfgFile.exists()) return false;
|
{String lang = "", String gamePath = ""}) async {
|
||||||
final str = (await _cfgFile.readAsString()).replaceAll(" ", "");
|
if (gamePath.isEmpty) {
|
||||||
|
gamePath = _scInstallPath;
|
||||||
|
}
|
||||||
|
final cfgFile = File("${_scDataDir.absolute.path}\\system.cfg");
|
||||||
|
if (!await cfgFile.exists()) return false;
|
||||||
|
final str = (await cfgFile.readAsString()).replaceAll(" ", "");
|
||||||
return str.contains("sys_languages=$lang") &&
|
return str.contains("sys_languages=$lang") &&
|
||||||
str.contains("g_language=$lang") &&
|
str.contains("g_language=$lang") &&
|
||||||
str.contains("g_languageAudio=english");
|
str.contains("g_languageAudio=english");
|
||||||
@ -396,7 +402,9 @@ class LocalizationUIModel extends _$LocalizationUIModel {
|
|||||||
final dirList = await scDataDir.list().toList();
|
final dirList = await scDataDir.list().toList();
|
||||||
for (var element in dirList) {
|
for (var element in dirList) {
|
||||||
for (var lang in languageSupport.keys) {
|
for (var lang in languageSupport.keys) {
|
||||||
if (element.path.contains(lang)) {
|
if (element.path.contains(lang) &&
|
||||||
|
await _getLangCfgEnableLang(
|
||||||
|
lang: lang, gamePath: scInstallPath)) {
|
||||||
final installedVersion =
|
final installedVersion =
|
||||||
await _getInstalledIniVersion("${element.path}\\global.ini");
|
await _getInstalledIniVersion("${element.path}\\global.ini");
|
||||||
if (installedVersion == S.current.home_action_info_game_built_in ||
|
if (installedVersion == S.current.home_action_info_game_built_in ||
|
||||||
|
|||||||
@ -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'6aad19a3302d7b5691fc5f6f2cce26ccdf245662';
|
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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -81,20 +81,28 @@ class IndexUI extends HookConsumerWidget {
|
|||||||
openWidth: S.current.app_language_code.startsWith("zh") ? 64 : 74),
|
openWidth: S.current.app_language_code.startsWith("zh") ? 64 : 74),
|
||||||
),
|
),
|
||||||
paneBodyBuilder: (item, child) {
|
paneBodyBuilder: (item, child) {
|
||||||
return FocusTraversalGroup(
|
return item!.body;
|
||||||
key: ValueKey('body_$curIndex'),
|
|
||||||
child: getPage(curIndex.value),
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<IconData, String> get pageMenus => {
|
Map<IconData, (String, Widget)> get pageMenus => {
|
||||||
FluentIcons.home: S.current.app_index_menu_home,
|
FluentIcons.home: (
|
||||||
// FluentIcons.game: S.current.app_index_menu_lobby,
|
S.current.app_index_menu_home,
|
||||||
FluentIcons.toolbox: S.current.app_index_menu_tools,
|
const HomeUI(),
|
||||||
FluentIcons.settings: S.current.app_index_menu_settings,
|
),
|
||||||
FluentIcons.info: S.current.app_index_menu_about,
|
FluentIcons.toolbox: (
|
||||||
|
S.current.app_index_menu_tools,
|
||||||
|
const ToolsUI(),
|
||||||
|
),
|
||||||
|
FluentIcons.settings: (
|
||||||
|
S.current.app_index_menu_settings,
|
||||||
|
const SettingsUI()
|
||||||
|
),
|
||||||
|
FluentIcons.info: (
|
||||||
|
S.current.app_index_menu_about,
|
||||||
|
const AboutUI(),
|
||||||
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
List<NavigationPaneItem> getNavigationPaneItems(
|
List<NavigationPaneItem> getNavigationPaneItems(
|
||||||
@ -113,7 +121,7 @@ class IndexUI extends HookConsumerWidget {
|
|||||||
Icon(kv.key, size: 18),
|
Icon(kv.key, size: 18),
|
||||||
const SizedBox(height: 3),
|
const SizedBox(height: 3),
|
||||||
Text(
|
Text(
|
||||||
kv.value,
|
kv.value.$1,
|
||||||
style: const TextStyle(fontSize: 11),
|
style: const TextStyle(fontSize: 11),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
@ -121,34 +129,15 @@ class IndexUI extends HookConsumerWidget {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
// title: Text(kv.value),
|
// title: Text(kv.value),
|
||||||
body: const SizedBox.shrink(),
|
body: kv.value.$2,
|
||||||
onTap: () => _onTapIndexMenu(kv.value, curIndexState),
|
onTap: () => _onTapIndexMenu(kv.value.$1, curIndexState),
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget getPage(int value) {
|
|
||||||
switch (value) {
|
|
||||||
case 0:
|
|
||||||
return const HomeUI();
|
|
||||||
// case 1:
|
|
||||||
// return const PartyRoomUI();
|
|
||||||
case 1:
|
|
||||||
return const ToolsUI();
|
|
||||||
case 2:
|
|
||||||
return const SettingsUI();
|
|
||||||
case 3:
|
|
||||||
return const AboutUI();
|
|
||||||
default:
|
|
||||||
return Center(
|
|
||||||
child: Text("UnimplPage $value"),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _onTapIndexMenu(String value, ValueNotifier<int> curIndexState) {
|
void _onTapIndexMenu(String value, ValueNotifier<int> curIndexState) {
|
||||||
final pageIndex =
|
final pageIndex =
|
||||||
pageMenus.values.toList().indexWhere((element) => element == value);
|
pageMenus.values.toList().indexWhere((element) => element.$1 == value);
|
||||||
curIndexState.value = pageIndex;
|
curIndexState.value = pageIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -38,4 +38,4 @@ class PartyRoomUI extends HookConsumerWidget {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,9 +18,6 @@ class HostsBoosterDialogUI extends HookConsumerWidget {
|
|||||||
S.current.tools_hosts_info_rsi_official_website: [
|
S.current.tools_hosts_info_rsi_official_website: [
|
||||||
"robertsspaceindustries.com"
|
"robertsspaceindustries.com"
|
||||||
],
|
],
|
||||||
S.current.tools_hosts_info_rsi_zendesk: [
|
|
||||||
"cloudimperiumservicesllc.zendesk.com"
|
|
||||||
],
|
|
||||||
S.current.tools_hosts_info_rsi_customer_service: [
|
S.current.tools_hosts_info_rsi_customer_service: [
|
||||||
"support.robertsspaceindustries.com"
|
"support.robertsspaceindustries.com"
|
||||||
],
|
],
|
||||||
|
|||||||
@ -33,11 +33,15 @@ class RSILauncherStateData with _$RSILauncherStateData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
|
class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
|
||||||
const RsiLauncherEnhanceDialogUI({super.key});
|
final bool showNotGameInstallMsg;
|
||||||
|
|
||||||
|
const RsiLauncherEnhanceDialogUI(
|
||||||
|
{super.key, this.showNotGameInstallMsg = false});
|
||||||
|
|
||||||
static const supportLocalizationMap = {
|
static const supportLocalizationMap = {
|
||||||
"en": NoL10n.langEn,
|
"en": NoL10n.langEn,
|
||||||
"zh_CN": NoL10n.langZHS,
|
"zh_CN": NoL10n.langZHS,
|
||||||
|
"zh_TW": NoL10n.langZHT,
|
||||||
"fr": NoL10n.langFR,
|
"fr": NoL10n.langFR,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -112,6 +116,23 @@ class RsiLauncherEnhanceDialogUI extends HookConsumerWidget {
|
|||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
|
if (showNotGameInstallMsg) ...[
|
||||||
|
InfoBar(
|
||||||
|
title: const SizedBox(),
|
||||||
|
content: Text(S.current
|
||||||
|
.home_localization_action_rsi_launcher_no_game_path_msg),
|
||||||
|
style: InfoBarThemeData(decoration: (severity) {
|
||||||
|
return BoxDecoration(
|
||||||
|
color: Colors.orange,
|
||||||
|
);
|
||||||
|
}, iconColor: (severity) {
|
||||||
|
return Colors.white;
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
const SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
],
|
||||||
if (workingText.value.isNotEmpty) ...[
|
if (workingText.value.isNotEmpty) ...[
|
||||||
Center(
|
Center(
|
||||||
child: Column(
|
child: Column(
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
@ -593,7 +548,8 @@ class ToolsUIModel extends _$ToolsUIModel {
|
|||||||
context.push("/tools/unp4kc");
|
context.push("/tools/unp4kc");
|
||||||
}
|
}
|
||||||
|
|
||||||
static rsiEnhance(BuildContext context) async {
|
static rsiEnhance(BuildContext context,
|
||||||
|
{bool showNotGameInstallMsg = false}) async {
|
||||||
if ((await SystemHelper.getPID("\"RSI Launcher\"")).isNotEmpty) {
|
if ((await SystemHelper.getPID("\"RSI Launcher\"")).isNotEmpty) {
|
||||||
if (!context.mounted) return;
|
if (!context.mounted) return;
|
||||||
showToast(
|
showToast(
|
||||||
@ -605,6 +561,8 @@ class ToolsUIModel extends _$ToolsUIModel {
|
|||||||
if (!context.mounted) return;
|
if (!context.mounted) return;
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext context) => const RsiLauncherEnhanceDialogUI());
|
builder: (BuildContext context) => RsiLauncherEnhanceDialogUI(
|
||||||
|
showNotGameInstallMsg: showNotGameInstallMsg,
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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'7c446c50a920b43d54a9c8dba1eb437b45ba72fe';
|
String _$toolsUIModelHash() => r'b61ae444063db4c550fbf71e724eddd0f7104dc5';
|
||||||
|
|
||||||
/// See also [ToolsUIModel].
|
/// See also [ToolsUIModel].
|
||||||
@ProviderFor(ToolsUIModel)
|
@ProviderFor(ToolsUIModel)
|
||||||
|
|||||||
@ -302,10 +302,7 @@ class UnP4kErrorWidget extends StatelessWidget {
|
|||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
if (errorMessage.contains(
|
if (Unp4kCModel.checkRunTimeError(errorMessage)) ...[
|
||||||
"You must install .NET to run this application") ||
|
|
||||||
errorMessage.contains(
|
|
||||||
"You must install or update .NET to run this application")) ...[
|
|
||||||
Text(
|
Text(
|
||||||
S.current.tools_unp4k_missing_runtime,
|
S.current.tools_unp4k_missing_runtime,
|
||||||
style: const TextStyle(fontSize: 16),
|
style: const TextStyle(fontSize: 16),
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:desktop_webview_window/desktop_webview_window.dart';
|
import 'package:desktop_webview_window/desktop_webview_window.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
@ -63,7 +64,7 @@ class WebViewModel {
|
|||||||
windowWidth: loginMode ? 960 : 1920,
|
windowWidth: loginMode ? 960 : 1920,
|
||||||
windowHeight: loginMode ? 720 : 1080,
|
windowHeight: loginMode ? 720 : 1080,
|
||||||
userDataFolderWindows: "$applicationSupportDir/webview_data",
|
userDataFolderWindows: "$applicationSupportDir/webview_data",
|
||||||
title: title));
|
title: Platform.isMacOS ? "" : title));
|
||||||
// webview.openDevToolsWindow();
|
// webview.openDevToolsWindow();
|
||||||
webview.isNavigating.addListener(() async {
|
webview.isNavigating.addListener(() async {
|
||||||
if (!webview.isNavigating.value && localizationResource.isNotEmpty) {
|
if (!webview.isNavigating.value && localizationResource.isNotEmpty) {
|
||||||
@ -192,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));
|
||||||
|
|||||||
1
linux/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
flutter/ephemeral
|
||||||
145
linux/CMakeLists.txt
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
# Project-level configuration.
|
||||||
|
cmake_minimum_required(VERSION 3.10)
|
||||||
|
project(runner LANGUAGES CXX)
|
||||||
|
|
||||||
|
# The name of the executable created for the application. Change this to change
|
||||||
|
# the on-disk name of your application.
|
||||||
|
set(BINARY_NAME "app")
|
||||||
|
# The unique GTK application identifier for this application. See:
|
||||||
|
# https://wiki.gnome.org/HowDoI/ChooseApplicationID
|
||||||
|
set(APPLICATION_ID "com.example.app")
|
||||||
|
|
||||||
|
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
|
||||||
|
# versions of CMake.
|
||||||
|
cmake_policy(SET CMP0063 NEW)
|
||||||
|
|
||||||
|
# Load bundled libraries from the lib/ directory relative to the binary.
|
||||||
|
set(CMAKE_INSTALL_RPATH "$ORIGIN/lib")
|
||||||
|
|
||||||
|
# Root filesystem for cross-building.
|
||||||
|
if(FLUTTER_TARGET_PLATFORM_SYSROOT)
|
||||||
|
set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT})
|
||||||
|
set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Define build configuration options.
|
||||||
|
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||||
|
set(CMAKE_BUILD_TYPE "Debug" CACHE
|
||||||
|
STRING "Flutter build mode" FORCE)
|
||||||
|
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
|
||||||
|
"Debug" "Profile" "Release")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Compilation settings that should be applied to most targets.
|
||||||
|
#
|
||||||
|
# Be cautious about adding new options here, as plugins use this function by
|
||||||
|
# default. In most cases, you should add new options to specific targets instead
|
||||||
|
# of modifying this function.
|
||||||
|
function(APPLY_STANDARD_SETTINGS TARGET)
|
||||||
|
target_compile_features(${TARGET} PUBLIC cxx_std_14)
|
||||||
|
target_compile_options(${TARGET} PRIVATE -Wall -Werror)
|
||||||
|
target_compile_options(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O3>")
|
||||||
|
target_compile_definitions(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>")
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
# Flutter library and tool build rules.
|
||||||
|
set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
|
||||||
|
add_subdirectory(${FLUTTER_MANAGED_DIR})
|
||||||
|
|
||||||
|
# System-level dependencies.
|
||||||
|
find_package(PkgConfig REQUIRED)
|
||||||
|
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
|
||||||
|
|
||||||
|
add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}")
|
||||||
|
|
||||||
|
# Define the application target. To change its name, change BINARY_NAME above,
|
||||||
|
# not the value here, or `flutter run` will no longer work.
|
||||||
|
#
|
||||||
|
# Any new source files that you add to the application should be added here.
|
||||||
|
add_executable(${BINARY_NAME}
|
||||||
|
"main.cc"
|
||||||
|
"my_application.cc"
|
||||||
|
"${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Apply the standard set of build settings. This can be removed for applications
|
||||||
|
# that need different build settings.
|
||||||
|
apply_standard_settings(${BINARY_NAME})
|
||||||
|
|
||||||
|
# Add dependency libraries. Add any application-specific dependencies here.
|
||||||
|
target_link_libraries(${BINARY_NAME} PRIVATE flutter)
|
||||||
|
target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK)
|
||||||
|
|
||||||
|
# Run the Flutter tool portions of the build. This must not be removed.
|
||||||
|
add_dependencies(${BINARY_NAME} flutter_assemble)
|
||||||
|
|
||||||
|
# Only the install-generated bundle's copy of the executable will launch
|
||||||
|
# correctly, since the resources must in the right relative locations. To avoid
|
||||||
|
# people trying to run the unbundled copy, put it in a subdirectory instead of
|
||||||
|
# the default top-level location.
|
||||||
|
set_target_properties(${BINARY_NAME}
|
||||||
|
PROPERTIES
|
||||||
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Generated plugin build rules, which manage building the plugins and adding
|
||||||
|
# them to the application.
|
||||||
|
include(flutter/generated_plugins.cmake)
|
||||||
|
|
||||||
|
|
||||||
|
# === Installation ===
|
||||||
|
# By default, "installing" just makes a relocatable bundle in the build
|
||||||
|
# directory.
|
||||||
|
set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle")
|
||||||
|
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||||
|
set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Start with a clean build bundle directory every time.
|
||||||
|
install(CODE "
|
||||||
|
file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\")
|
||||||
|
" COMPONENT Runtime)
|
||||||
|
|
||||||
|
set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data")
|
||||||
|
set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")
|
||||||
|
|
||||||
|
install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"
|
||||||
|
COMPONENT Runtime)
|
||||||
|
|
||||||
|
install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"
|
||||||
|
COMPONENT Runtime)
|
||||||
|
|
||||||
|
install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||||
|
COMPONENT Runtime)
|
||||||
|
|
||||||
|
foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES})
|
||||||
|
install(FILES "${bundled_library}"
|
||||||
|
DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||||
|
COMPONENT Runtime)
|
||||||
|
endforeach(bundled_library)
|
||||||
|
|
||||||
|
# Copy the native assets provided by the build.dart from all packages.
|
||||||
|
set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/")
|
||||||
|
install(DIRECTORY "${NATIVE_ASSETS_DIR}"
|
||||||
|
DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||||
|
COMPONENT Runtime)
|
||||||
|
|
||||||
|
# Fully re-copy the assets directory on each build to avoid having stale files
|
||||||
|
# from a previous install.
|
||||||
|
set(FLUTTER_ASSET_DIR_NAME "flutter_assets")
|
||||||
|
install(CODE "
|
||||||
|
file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\")
|
||||||
|
" COMPONENT Runtime)
|
||||||
|
install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}"
|
||||||
|
DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime)
|
||||||
|
|
||||||
|
# Install the AOT library on non-Debug builds only.
|
||||||
|
if(NOT CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||||
|
install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||||
|
COMPONENT Runtime)
|
||||||
|
endif()
|
||||||
88
linux/flutter/CMakeLists.txt
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
# This file controls Flutter-level build steps. It should not be edited.
|
||||||
|
cmake_minimum_required(VERSION 3.10)
|
||||||
|
|
||||||
|
set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral")
|
||||||
|
|
||||||
|
# Configuration provided via flutter tool.
|
||||||
|
include(${EPHEMERAL_DIR}/generated_config.cmake)
|
||||||
|
|
||||||
|
# TODO: Move the rest of this into files in ephemeral. See
|
||||||
|
# https://github.com/flutter/flutter/issues/57146.
|
||||||
|
|
||||||
|
# Serves the same purpose as list(TRANSFORM ... PREPEND ...),
|
||||||
|
# which isn't available in 3.10.
|
||||||
|
function(list_prepend LIST_NAME PREFIX)
|
||||||
|
set(NEW_LIST "")
|
||||||
|
foreach(element ${${LIST_NAME}})
|
||||||
|
list(APPEND NEW_LIST "${PREFIX}${element}")
|
||||||
|
endforeach(element)
|
||||||
|
set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
# === Flutter Library ===
|
||||||
|
# System-level dependencies.
|
||||||
|
find_package(PkgConfig REQUIRED)
|
||||||
|
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
|
||||||
|
pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0)
|
||||||
|
pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)
|
||||||
|
|
||||||
|
set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so")
|
||||||
|
|
||||||
|
# Published to parent scope for install step.
|
||||||
|
set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE)
|
||||||
|
set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE)
|
||||||
|
set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE)
|
||||||
|
set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE)
|
||||||
|
|
||||||
|
list(APPEND FLUTTER_LIBRARY_HEADERS
|
||||||
|
"fl_basic_message_channel.h"
|
||||||
|
"fl_binary_codec.h"
|
||||||
|
"fl_binary_messenger.h"
|
||||||
|
"fl_dart_project.h"
|
||||||
|
"fl_engine.h"
|
||||||
|
"fl_json_message_codec.h"
|
||||||
|
"fl_json_method_codec.h"
|
||||||
|
"fl_message_codec.h"
|
||||||
|
"fl_method_call.h"
|
||||||
|
"fl_method_channel.h"
|
||||||
|
"fl_method_codec.h"
|
||||||
|
"fl_method_response.h"
|
||||||
|
"fl_plugin_registrar.h"
|
||||||
|
"fl_plugin_registry.h"
|
||||||
|
"fl_standard_message_codec.h"
|
||||||
|
"fl_standard_method_codec.h"
|
||||||
|
"fl_string_codec.h"
|
||||||
|
"fl_value.h"
|
||||||
|
"fl_view.h"
|
||||||
|
"flutter_linux.h"
|
||||||
|
)
|
||||||
|
list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/")
|
||||||
|
add_library(flutter INTERFACE)
|
||||||
|
target_include_directories(flutter INTERFACE
|
||||||
|
"${EPHEMERAL_DIR}"
|
||||||
|
)
|
||||||
|
target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}")
|
||||||
|
target_link_libraries(flutter INTERFACE
|
||||||
|
PkgConfig::GTK
|
||||||
|
PkgConfig::GLIB
|
||||||
|
PkgConfig::GIO
|
||||||
|
)
|
||||||
|
add_dependencies(flutter flutter_assemble)
|
||||||
|
|
||||||
|
# === Flutter tool backend ===
|
||||||
|
# _phony_ is a non-existent file to force this command to run every time,
|
||||||
|
# since currently there's no way to get a full input/output list from the
|
||||||
|
# flutter tool.
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS}
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/_phony_
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E env
|
||||||
|
${FLUTTER_TOOL_ENVIRONMENT}
|
||||||
|
"${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh"
|
||||||
|
${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE}
|
||||||
|
VERBATIM
|
||||||
|
)
|
||||||
|
add_custom_target(flutter_assemble DEPENDS
|
||||||
|
"${FLUTTER_LIBRARY}"
|
||||||
|
${FLUTTER_LIBRARY_HEADERS}
|
||||||
|
)
|
||||||
31
linux/flutter/generated_plugin_registrant.cc
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
//
|
||||||
|
// Generated file. Do not edit.
|
||||||
|
//
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
|
||||||
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
|
#include <desktop_webview_window/desktop_webview_window_plugin.h>
|
||||||
|
#include <flutter_acrylic/flutter_acrylic_plugin.h>
|
||||||
|
#include <screen_retriever/screen_retriever_plugin.h>
|
||||||
|
#include <url_launcher_linux/url_launcher_plugin.h>
|
||||||
|
#include <window_manager/window_manager_plugin.h>
|
||||||
|
|
||||||
|
void fl_register_plugins(FlPluginRegistry* registry) {
|
||||||
|
g_autoptr(FlPluginRegistrar) desktop_webview_window_registrar =
|
||||||
|
fl_plugin_registry_get_registrar_for_plugin(registry, "DesktopWebviewWindowPlugin");
|
||||||
|
desktop_webview_window_plugin_register_with_registrar(desktop_webview_window_registrar);
|
||||||
|
g_autoptr(FlPluginRegistrar) flutter_acrylic_registrar =
|
||||||
|
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterAcrylicPlugin");
|
||||||
|
flutter_acrylic_plugin_register_with_registrar(flutter_acrylic_registrar);
|
||||||
|
g_autoptr(FlPluginRegistrar) screen_retriever_registrar =
|
||||||
|
fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverPlugin");
|
||||||
|
screen_retriever_plugin_register_with_registrar(screen_retriever_registrar);
|
||||||
|
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
|
||||||
|
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
|
||||||
|
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
|
||||||
|
g_autoptr(FlPluginRegistrar) window_manager_registrar =
|
||||||
|
fl_plugin_registry_get_registrar_for_plugin(registry, "WindowManagerPlugin");
|
||||||
|
window_manager_plugin_register_with_registrar(window_manager_registrar);
|
||||||
|
}
|
||||||
15
linux/flutter/generated_plugin_registrant.h
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
//
|
||||||
|
// Generated file. Do not edit.
|
||||||
|
//
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
|
||||||
|
#ifndef GENERATED_PLUGIN_REGISTRANT_
|
||||||
|
#define GENERATED_PLUGIN_REGISTRANT_
|
||||||
|
|
||||||
|
#include <flutter_linux/flutter_linux.h>
|
||||||
|
|
||||||
|
// Registers Flutter plugins.
|
||||||
|
void fl_register_plugins(FlPluginRegistry* registry);
|
||||||
|
|
||||||
|
#endif // GENERATED_PLUGIN_REGISTRANT_
|
||||||
29
linux/flutter/generated_plugins.cmake
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#
|
||||||
|
# Generated file, do not edit.
|
||||||
|
#
|
||||||
|
|
||||||
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
|
desktop_webview_window
|
||||||
|
flutter_acrylic
|
||||||
|
screen_retriever
|
||||||
|
url_launcher_linux
|
||||||
|
window_manager
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
||||||
|
rust_builder
|
||||||
|
)
|
||||||
|
|
||||||
|
set(PLUGIN_BUNDLED_LIBRARIES)
|
||||||
|
|
||||||
|
foreach(plugin ${FLUTTER_PLUGIN_LIST})
|
||||||
|
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin})
|
||||||
|
target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
|
||||||
|
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
|
||||||
|
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
|
||||||
|
endforeach(plugin)
|
||||||
|
|
||||||
|
foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
|
||||||
|
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin})
|
||||||
|
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
|
||||||
|
endforeach(ffi_plugin)
|
||||||
6
linux/main.cc
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include "my_application.h"
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
g_autoptr(MyApplication) app = my_application_new();
|
||||||
|
return g_application_run(G_APPLICATION(app), argc, argv);
|
||||||
|
}
|
||||||
124
linux/my_application.cc
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
#include "my_application.h"
|
||||||
|
|
||||||
|
#include <flutter_linux/flutter_linux.h>
|
||||||
|
#ifdef GDK_WINDOWING_X11
|
||||||
|
#include <gdk/gdkx.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "flutter/generated_plugin_registrant.h"
|
||||||
|
|
||||||
|
struct _MyApplication {
|
||||||
|
GtkApplication parent_instance;
|
||||||
|
char** dart_entrypoint_arguments;
|
||||||
|
};
|
||||||
|
|
||||||
|
G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)
|
||||||
|
|
||||||
|
// Implements GApplication::activate.
|
||||||
|
static void my_application_activate(GApplication* application) {
|
||||||
|
MyApplication* self = MY_APPLICATION(application);
|
||||||
|
GtkWindow* window =
|
||||||
|
GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));
|
||||||
|
|
||||||
|
// Use a header bar when running in GNOME as this is the common style used
|
||||||
|
// by applications and is the setup most users will be using (e.g. Ubuntu
|
||||||
|
// desktop).
|
||||||
|
// If running on X and not using GNOME then just use a traditional title bar
|
||||||
|
// in case the window manager does more exotic layout, e.g. tiling.
|
||||||
|
// If running on Wayland assume the header bar will work (may need changing
|
||||||
|
// if future cases occur).
|
||||||
|
gboolean use_header_bar = TRUE;
|
||||||
|
#ifdef GDK_WINDOWING_X11
|
||||||
|
GdkScreen* screen = gtk_window_get_screen(window);
|
||||||
|
if (GDK_IS_X11_SCREEN(screen)) {
|
||||||
|
const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen);
|
||||||
|
if (g_strcmp0(wm_name, "GNOME Shell") != 0) {
|
||||||
|
use_header_bar = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (use_header_bar) {
|
||||||
|
GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
|
||||||
|
gtk_widget_show(GTK_WIDGET(header_bar));
|
||||||
|
gtk_header_bar_set_title(header_bar, "app");
|
||||||
|
gtk_header_bar_set_show_close_button(header_bar, TRUE);
|
||||||
|
gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
|
||||||
|
} else {
|
||||||
|
gtk_window_set_title(window, "app");
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_window_set_default_size(window, 1280, 720);
|
||||||
|
gtk_widget_show(GTK_WIDGET(window));
|
||||||
|
|
||||||
|
g_autoptr(FlDartProject) project = fl_dart_project_new();
|
||||||
|
fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments);
|
||||||
|
|
||||||
|
FlView* view = fl_view_new(project);
|
||||||
|
gtk_widget_show(GTK_WIDGET(view));
|
||||||
|
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));
|
||||||
|
|
||||||
|
fl_register_plugins(FL_PLUGIN_REGISTRY(view));
|
||||||
|
|
||||||
|
gtk_widget_grab_focus(GTK_WIDGET(view));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implements GApplication::local_command_line.
|
||||||
|
static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) {
|
||||||
|
MyApplication* self = MY_APPLICATION(application);
|
||||||
|
// Strip out the first argument as it is the binary name.
|
||||||
|
self->dart_entrypoint_arguments = g_strdupv(*arguments + 1);
|
||||||
|
|
||||||
|
g_autoptr(GError) error = nullptr;
|
||||||
|
if (!g_application_register(application, nullptr, &error)) {
|
||||||
|
g_warning("Failed to register: %s", error->message);
|
||||||
|
*exit_status = 1;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_application_activate(application);
|
||||||
|
*exit_status = 0;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implements GApplication::startup.
|
||||||
|
static void my_application_startup(GApplication* application) {
|
||||||
|
//MyApplication* self = MY_APPLICATION(object);
|
||||||
|
|
||||||
|
// Perform any actions required at application startup.
|
||||||
|
|
||||||
|
G_APPLICATION_CLASS(my_application_parent_class)->startup(application);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implements GApplication::shutdown.
|
||||||
|
static void my_application_shutdown(GApplication* application) {
|
||||||
|
//MyApplication* self = MY_APPLICATION(object);
|
||||||
|
|
||||||
|
// Perform any actions required at application shutdown.
|
||||||
|
|
||||||
|
G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implements GObject::dispose.
|
||||||
|
static void my_application_dispose(GObject* object) {
|
||||||
|
MyApplication* self = MY_APPLICATION(object);
|
||||||
|
g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev);
|
||||||
|
G_OBJECT_CLASS(my_application_parent_class)->dispose(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void my_application_class_init(MyApplicationClass* klass) {
|
||||||
|
G_APPLICATION_CLASS(klass)->activate = my_application_activate;
|
||||||
|
G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line;
|
||||||
|
G_APPLICATION_CLASS(klass)->startup = my_application_startup;
|
||||||
|
G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown;
|
||||||
|
G_OBJECT_CLASS(klass)->dispose = my_application_dispose;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void my_application_init(MyApplication* self) {}
|
||||||
|
|
||||||
|
MyApplication* my_application_new() {
|
||||||
|
return MY_APPLICATION(g_object_new(my_application_get_type(),
|
||||||
|
"application-id", APPLICATION_ID,
|
||||||
|
"flags", G_APPLICATION_NON_UNIQUE,
|
||||||
|
nullptr));
|
||||||
|
}
|
||||||
18
linux/my_application.h
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#ifndef FLUTTER_MY_APPLICATION_H_
|
||||||
|
#define FLUTTER_MY_APPLICATION_H_
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
|
G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,
|
||||||
|
GtkApplication)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* my_application_new:
|
||||||
|
*
|
||||||
|
* Creates a new Flutter-based application.
|
||||||
|
*
|
||||||
|
* Returns: a new #MyApplication.
|
||||||
|
*/
|
||||||
|
MyApplication* my_application_new();
|
||||||
|
|
||||||
|
#endif // FLUTTER_MY_APPLICATION_H_
|
||||||
7
macos/.gitignore
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Flutter-related
|
||||||
|
**/Flutter/ephemeral/
|
||||||
|
**/Pods/
|
||||||
|
|
||||||
|
# Xcode-related
|
||||||
|
**/dgph
|
||||||
|
**/xcuserdata/
|
||||||
2
macos/Flutter/Flutter-Debug.xcconfig
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
||||||
|
#include "ephemeral/Flutter-Generated.xcconfig"
|
||||||
2
macos/Flutter/Flutter-Release.xcconfig
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||||
|
#include "ephemeral/Flutter-Generated.xcconfig"
|
||||||
24
macos/Flutter/GeneratedPluginRegistrant.swift
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
//
|
||||||
|
// Generated file. Do not edit.
|
||||||
|
//
|
||||||
|
|
||||||
|
import FlutterMacOS
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
import desktop_webview_window
|
||||||
|
import device_info_plus
|
||||||
|
import macos_window_utils
|
||||||
|
import path_provider_foundation
|
||||||
|
import screen_retriever
|
||||||
|
import url_launcher_macos
|
||||||
|
import window_manager
|
||||||
|
|
||||||
|
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||||
|
DesktopWebviewWindowPlugin.register(with: registry.registrar(forPlugin: "DesktopWebviewWindowPlugin"))
|
||||||
|
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
||||||
|
MacOSWindowUtilsPlugin.register(with: registry.registrar(forPlugin: "MacOSWindowUtilsPlugin"))
|
||||||
|
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
||||||
|
ScreenRetrieverPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverPlugin"))
|
||||||
|
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
||||||
|
WindowManagerPlugin.register(with: registry.registrar(forPlugin: "WindowManagerPlugin"))
|
||||||
|
}
|
||||||
43
macos/Podfile
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
platform :osx, '10.15'
|
||||||
|
|
||||||
|
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||||
|
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||||
|
|
||||||
|
project 'Runner', {
|
||||||
|
'Debug' => :debug,
|
||||||
|
'Profile' => :release,
|
||||||
|
'Release' => :release,
|
||||||
|
}
|
||||||
|
|
||||||
|
def flutter_root
|
||||||
|
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__)
|
||||||
|
unless File.exist?(generated_xcode_build_settings_path)
|
||||||
|
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first"
|
||||||
|
end
|
||||||
|
|
||||||
|
File.foreach(generated_xcode_build_settings_path) do |line|
|
||||||
|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
|
||||||
|
return matches[1].strip if matches
|
||||||
|
end
|
||||||
|
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\""
|
||||||
|
end
|
||||||
|
|
||||||
|
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
|
||||||
|
|
||||||
|
flutter_macos_podfile_setup
|
||||||
|
|
||||||
|
target 'Runner' do
|
||||||
|
use_frameworks!
|
||||||
|
use_modular_headers!
|
||||||
|
|
||||||
|
flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
|
||||||
|
target 'RunnerTests' do
|
||||||
|
inherit! :search_paths
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
post_install do |installer|
|
||||||
|
installer.pods_project.targets.each do |target|
|
||||||
|
flutter_additional_macos_build_settings(target)
|
||||||
|
end
|
||||||
|
end
|
||||||
65
macos/Podfile.lock
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
PODS:
|
||||||
|
- desktop_webview_window (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
- device_info_plus (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
- FlutterMacOS (1.0.0)
|
||||||
|
- macos_window_utils (1.0.0):
|
||||||
|
- FlutterMacOS
|
||||||
|
- path_provider_foundation (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- FlutterMacOS
|
||||||
|
- rust_builder (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
- screen_retriever (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
- url_launcher_macos (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
- window_manager (0.2.0):
|
||||||
|
- FlutterMacOS
|
||||||
|
|
||||||
|
DEPENDENCIES:
|
||||||
|
- desktop_webview_window (from `Flutter/ephemeral/.symlinks/plugins/desktop_webview_window/macos`)
|
||||||
|
- device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`)
|
||||||
|
- FlutterMacOS (from `Flutter/ephemeral`)
|
||||||
|
- macos_window_utils (from `Flutter/ephemeral/.symlinks/plugins/macos_window_utils/macos`)
|
||||||
|
- path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`)
|
||||||
|
- rust_builder (from `Flutter/ephemeral/.symlinks/plugins/rust_builder/macos`)
|
||||||
|
- screen_retriever (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos`)
|
||||||
|
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
|
||||||
|
- window_manager (from `Flutter/ephemeral/.symlinks/plugins/window_manager/macos`)
|
||||||
|
|
||||||
|
EXTERNAL SOURCES:
|
||||||
|
desktop_webview_window:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/desktop_webview_window/macos
|
||||||
|
device_info_plus:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos
|
||||||
|
FlutterMacOS:
|
||||||
|
:path: Flutter/ephemeral
|
||||||
|
macos_window_utils:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/macos_window_utils/macos
|
||||||
|
path_provider_foundation:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin
|
||||||
|
rust_builder:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/rust_builder/macos
|
||||||
|
screen_retriever:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos
|
||||||
|
url_launcher_macos:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos
|
||||||
|
window_manager:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos
|
||||||
|
|
||||||
|
SPEC CHECKSUMS:
|
||||||
|
desktop_webview_window: d4365e71bcd4e1aa0c14cf0377aa24db0c16a7e2
|
||||||
|
device_info_plus: ce1b7762849d3ec103d0e0517299f2db7ad60720
|
||||||
|
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
|
||||||
|
macos_window_utils: 933f91f64805e2eb91a5bd057cf97cd097276663
|
||||||
|
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
|
||||||
|
rust_builder: 4b521d57bf67224da65f32b529be8fab420fca32
|
||||||
|
screen_retriever: 59634572a57080243dd1bf715e55b6c54f241a38
|
||||||
|
url_launcher_macos: 5f437abeda8c85500ceb03f5c1938a8c5a705399
|
||||||
|
window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8
|
||||||
|
|
||||||
|
PODFILE CHECKSUM: 9ebaf0ce3d369aaa26a9ea0e159195ed94724cf3
|
||||||
|
|
||||||
|
COCOAPODS: 1.15.2
|
||||||
797
macos/Runner.xcodeproj/project.pbxproj
Normal file
@ -0,0 +1,797 @@
|
|||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 54;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXAggregateTarget section */
|
||||||
|
33CC111A2044C6BA0003C045 /* Flutter Assemble */ = {
|
||||||
|
isa = PBXAggregateTarget;
|
||||||
|
buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */;
|
||||||
|
buildPhases = (
|
||||||
|
33CC111E2044C6BF0003C045 /* ShellScript */,
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = "Flutter Assemble";
|
||||||
|
productName = FLX;
|
||||||
|
};
|
||||||
|
/* End PBXAggregateTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; };
|
||||||
|
335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
|
||||||
|
33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
|
||||||
|
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
|
||||||
|
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
|
||||||
|
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
|
||||||
|
5D997FCC084EEDC755392183 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9408B1BF071E733725B4B689 /* Pods_RunnerTests.framework */; };
|
||||||
|
955C59A6B4A1B5CE345F2E3E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4C40EC7A2C78A6065285544 /* Pods_Runner.framework */; settings = {ATTRIBUTES = (Required, ); }; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
/* Begin PBXContainerItemProxy section */
|
||||||
|
331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = 33CC10EC2044A3C60003C045;
|
||||||
|
remoteInfo = Runner;
|
||||||
|
};
|
||||||
|
33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = 33CC111A2044C6BA0003C045;
|
||||||
|
remoteInfo = FLX;
|
||||||
|
};
|
||||||
|
/* End PBXContainerItemProxy section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
02451A4BA4B40C760076F2B8 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
2B7928003DA956B0CA3054C5 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
|
||||||
|
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
|
||||||
|
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
|
||||||
|
33CC10ED2044A3C60003C045 /* SCToolBox.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SCToolBox.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||||
|
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
|
||||||
|
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = "<group>"; };
|
||||||
|
33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = "<group>"; };
|
||||||
|
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
|
||||||
|
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
|
||||||
|
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
|
||||||
|
43FCA8E50F6C13577C7B3E18 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
4B6FFF210C41E489F5B6DF73 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
6A748F382C1E82D600F92386 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
|
||||||
|
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
|
||||||
|
8A62B92DD472D6FEBD5DFA05 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
9408B1BF071E733725B4B689 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
|
||||||
|
B4C40EC7A2C78A6065285544 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
F0A918B7DC1C155A0EF288B7 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
331C80D2294CF70F00263BE5 /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
5D997FCC084EEDC755392183 /* Pods_RunnerTests.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
33CC10EA2044A3C60003C045 /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
955C59A6B4A1B5CE345F2E3E /* Pods_Runner.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
331C80D6294CF71000263BE5 /* RunnerTests */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
331C80D7294CF71000263BE5 /* RunnerTests.swift */,
|
||||||
|
);
|
||||||
|
path = RunnerTests;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
33BA886A226E78AF003329D5 /* Configs */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
33E5194F232828860026EE4D /* AppInfo.xcconfig */,
|
||||||
|
9740EEB21CF90195004384FC /* Debug.xcconfig */,
|
||||||
|
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
|
||||||
|
333000ED22D3DE5D00554162 /* Warnings.xcconfig */,
|
||||||
|
);
|
||||||
|
path = Configs;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
33CC10E42044A3C60003C045 = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
33FAB671232836740065AC1E /* Runner */,
|
||||||
|
33CEB47122A05771004F2AC0 /* Flutter */,
|
||||||
|
331C80D6294CF71000263BE5 /* RunnerTests */,
|
||||||
|
33CC10EE2044A3C60003C045 /* Products */,
|
||||||
|
D73912EC22F37F3D000D13A0 /* Frameworks */,
|
||||||
|
DF1543E9F07C7B4884188F0D /* Pods */,
|
||||||
|
);
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
33CC10EE2044A3C60003C045 /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
33CC10ED2044A3C60003C045 /* SCToolBox.app */,
|
||||||
|
331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
33CC11242044D66E0003C045 /* Resources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
33CC10F22044A3C60003C045 /* Assets.xcassets */,
|
||||||
|
33CC10F42044A3C60003C045 /* MainMenu.xib */,
|
||||||
|
33CC10F72044A3C60003C045 /* Info.plist */,
|
||||||
|
);
|
||||||
|
name = Resources;
|
||||||
|
path = ..;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
33CEB47122A05771004F2AC0 /* Flutter */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,
|
||||||
|
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
|
||||||
|
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
|
||||||
|
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
|
||||||
|
);
|
||||||
|
path = Flutter;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
33FAB671232836740065AC1E /* Runner */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
33CC10F02044A3C60003C045 /* AppDelegate.swift */,
|
||||||
|
33CC11122044BFA00003C045 /* MainFlutterWindow.swift */,
|
||||||
|
33E51913231747F40026EE4D /* DebugProfile.entitlements */,
|
||||||
|
33E51914231749380026EE4D /* Release.entitlements */,
|
||||||
|
33CC11242044D66E0003C045 /* Resources */,
|
||||||
|
33BA886A226E78AF003329D5 /* Configs */,
|
||||||
|
);
|
||||||
|
path = Runner;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
6A748F382C1E82D600F92386 /* SystemConfiguration.framework */,
|
||||||
|
B4C40EC7A2C78A6065285544 /* Pods_Runner.framework */,
|
||||||
|
9408B1BF071E733725B4B689 /* Pods_RunnerTests.framework */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
DF1543E9F07C7B4884188F0D /* Pods */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4B6FFF210C41E489F5B6DF73 /* Pods-Runner.debug.xcconfig */,
|
||||||
|
8A62B92DD472D6FEBD5DFA05 /* Pods-Runner.release.xcconfig */,
|
||||||
|
43FCA8E50F6C13577C7B3E18 /* Pods-Runner.profile.xcconfig */,
|
||||||
|
2B7928003DA956B0CA3054C5 /* Pods-RunnerTests.debug.xcconfig */,
|
||||||
|
02451A4BA4B40C760076F2B8 /* Pods-RunnerTests.release.xcconfig */,
|
||||||
|
F0A918B7DC1C155A0EF288B7 /* Pods-RunnerTests.profile.xcconfig */,
|
||||||
|
);
|
||||||
|
path = Pods;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXNativeTarget section */
|
||||||
|
331C80D4294CF70F00263BE5 /* RunnerTests */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
|
||||||
|
buildPhases = (
|
||||||
|
300725451D4DD3AACE302066 /* [CP] Check Pods Manifest.lock */,
|
||||||
|
331C80D1294CF70F00263BE5 /* Sources */,
|
||||||
|
331C80D2294CF70F00263BE5 /* Frameworks */,
|
||||||
|
331C80D3294CF70F00263BE5 /* Resources */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
331C80DA294CF71000263BE5 /* PBXTargetDependency */,
|
||||||
|
);
|
||||||
|
name = RunnerTests;
|
||||||
|
productName = RunnerTests;
|
||||||
|
productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */;
|
||||||
|
productType = "com.apple.product-type.bundle.unit-test";
|
||||||
|
};
|
||||||
|
33CC10EC2044A3C60003C045 /* Runner */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
|
||||||
|
buildPhases = (
|
||||||
|
04B56771D78F13E7D7054D37 /* [CP] Check Pods Manifest.lock */,
|
||||||
|
33CC10E92044A3C60003C045 /* Sources */,
|
||||||
|
33CC10EA2044A3C60003C045 /* Frameworks */,
|
||||||
|
33CC10EB2044A3C60003C045 /* Resources */,
|
||||||
|
3399D490228B24CF009A79C7 /* ShellScript */,
|
||||||
|
3AEDD360A251A3172684EAB9 /* [CP] Embed Pods Frameworks */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
33CC11202044C79F0003C045 /* PBXTargetDependency */,
|
||||||
|
);
|
||||||
|
name = Runner;
|
||||||
|
productName = Runner;
|
||||||
|
productReference = 33CC10ED2044A3C60003C045 /* SCToolBox.app */;
|
||||||
|
productType = "com.apple.product-type.application";
|
||||||
|
};
|
||||||
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
33CC10E52044A3C60003C045 /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
attributes = {
|
||||||
|
BuildIndependentTargetsInParallel = YES;
|
||||||
|
LastSwiftUpdateCheck = 0920;
|
||||||
|
LastUpgradeCheck = 1510;
|
||||||
|
ORGANIZATIONNAME = "";
|
||||||
|
TargetAttributes = {
|
||||||
|
331C80D4294CF70F00263BE5 = {
|
||||||
|
CreatedOnToolsVersion = 14.0;
|
||||||
|
TestTargetID = 33CC10EC2044A3C60003C045;
|
||||||
|
};
|
||||||
|
33CC10EC2044A3C60003C045 = {
|
||||||
|
CreatedOnToolsVersion = 9.2;
|
||||||
|
LastSwiftMigration = 1100;
|
||||||
|
ProvisioningStyle = Automatic;
|
||||||
|
SystemCapabilities = {
|
||||||
|
com.apple.Sandbox = {
|
||||||
|
enabled = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
33CC111A2044C6BA0003C045 = {
|
||||||
|
CreatedOnToolsVersion = 9.2;
|
||||||
|
ProvisioningStyle = Manual;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */;
|
||||||
|
compatibilityVersion = "Xcode 9.3";
|
||||||
|
developmentRegion = en;
|
||||||
|
hasScannedForEncodings = 0;
|
||||||
|
knownRegions = (
|
||||||
|
en,
|
||||||
|
Base,
|
||||||
|
);
|
||||||
|
mainGroup = 33CC10E42044A3C60003C045;
|
||||||
|
productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
|
||||||
|
projectDirPath = "";
|
||||||
|
projectRoot = "";
|
||||||
|
targets = (
|
||||||
|
33CC10EC2044A3C60003C045 /* Runner */,
|
||||||
|
331C80D4294CF70F00263BE5 /* RunnerTests */,
|
||||||
|
33CC111A2044C6BA0003C045 /* Flutter Assemble */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXResourcesBuildPhase section */
|
||||||
|
331C80D3294CF70F00263BE5 /* Resources */ = {
|
||||||
|
isa = PBXResourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
33CC10EB2044A3C60003C045 /* Resources */ = {
|
||||||
|
isa = PBXResourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,
|
||||||
|
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXResourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXShellScriptBuildPhase section */
|
||||||
|
04B56771D78F13E7D7054D37 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
300725451D4DD3AACE302066 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
3399D490228B24CF009A79C7 /* ShellScript */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
alwaysOutOfDate = 1;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n";
|
||||||
|
};
|
||||||
|
33CC111E2044C6BF0003C045 /* ShellScript */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
Flutter/ephemeral/FlutterInputs.xcfilelist,
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
Flutter/ephemeral/tripwire,
|
||||||
|
);
|
||||||
|
outputFileListPaths = (
|
||||||
|
Flutter/ephemeral/FlutterOutputs.xcfilelist,
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
|
||||||
|
};
|
||||||
|
3AEDD360A251A3172684EAB9 /* [CP] Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
|
);
|
||||||
|
name = "[CP] Embed Pods Frameworks";
|
||||||
|
outputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
331C80D1294CF70F00263BE5 /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
33CC10E92044A3C60003C045 /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */,
|
||||||
|
33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */,
|
||||||
|
335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXTargetDependency section */
|
||||||
|
331C80DA294CF71000263BE5 /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
target = 33CC10EC2044A3C60003C045 /* Runner */;
|
||||||
|
targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
33CC11202044C79F0003C045 /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;
|
||||||
|
targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
/* End PBXTargetDependency section */
|
||||||
|
|
||||||
|
/* Begin PBXVariantGroup section */
|
||||||
|
33CC10F42044A3C60003C045 /* MainMenu.xib */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
33CC10F52044A3C60003C045 /* Base */,
|
||||||
|
);
|
||||||
|
name = MainMenu.xib;
|
||||||
|
path = Runner;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXVariantGroup section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
331C80DB294CF71000263BE5 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 2B7928003DA956B0CA3054C5 /* Pods-RunnerTests.debug.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
MARKETING_VERSION = 1.0;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.example.app.RunnerTests;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/app";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
331C80DC294CF71000263BE5 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 02451A4BA4B40C760076F2B8 /* Pods-RunnerTests.release.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
MARKETING_VERSION = 1.0;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.example.app.RunnerTests;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/app";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
331C80DD294CF71000263BE5 /* Profile */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = F0A918B7DC1C155A0EF288B7 /* Pods-RunnerTests.profile.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
MARKETING_VERSION = 1.0;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.example.app.RunnerTests;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/app";
|
||||||
|
};
|
||||||
|
name = Profile;
|
||||||
|
};
|
||||||
|
338D0CE9231458BD00FA5F75 /* Profile */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
||||||
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||||
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
|
CODE_SIGN_IDENTITY = "-";
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEAD_CODE_STRIPPING = YES;
|
||||||
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
||||||
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SWIFT_COMPILATION_MODE = wholemodule;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||||
|
};
|
||||||
|
name = Profile;
|
||||||
|
};
|
||||||
|
338D0CEA231458BD00FA5F75 /* Profile */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
INFOPLIST_KEY_CFBundleDisplayName = SCToolBox;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/../Frameworks",
|
||||||
|
);
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.xkeyc.tools.sctoolbox;
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
};
|
||||||
|
name = Profile;
|
||||||
|
};
|
||||||
|
338D0CEB231458BD00FA5F75 /* Profile */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
CODE_SIGN_STYLE = Manual;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
};
|
||||||
|
name = Profile;
|
||||||
|
};
|
||||||
|
33CC10F92044A3C60003C045 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
||||||
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||||
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
|
CODE_SIGN_IDENTITY = "-";
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEAD_CODE_STRIPPING = YES;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
ENABLE_TESTABILITY = YES;
|
||||||
|
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
|
"DEBUG=1",
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
||||||
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
33CC10FA2044A3C60003C045 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
||||||
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||||
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
|
CODE_SIGN_IDENTITY = "-";
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEAD_CODE_STRIPPING = YES;
|
||||||
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
||||||
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SWIFT_COMPILATION_MODE = wholemodule;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
33CC10FC2044A3C60003C045 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
INFOPLIST_KEY_CFBundleDisplayName = SCToolBox;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/../Frameworks",
|
||||||
|
);
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.xkeyc.tools.sctoolbox;
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
33CC10FD2044A3C60003C045 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
INFOPLIST_KEY_CFBundleDisplayName = SCToolBox;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/../Frameworks",
|
||||||
|
);
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.xkeyc.tools.sctoolbox;
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
33CC111C2044C6BA0003C045 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
CODE_SIGN_STYLE = Manual;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
33CC111D2044C6BA0003C045 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
331C80DB294CF71000263BE5 /* Debug */,
|
||||||
|
331C80DC294CF71000263BE5 /* Release */,
|
||||||
|
331C80DD294CF71000263BE5 /* Profile */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
33CC10F92044A3C60003C045 /* Debug */,
|
||||||
|
33CC10FA2044A3C60003C045 /* Release */,
|
||||||
|
338D0CE9231458BD00FA5F75 /* Profile */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
33CC10FC2044A3C60003C045 /* Debug */,
|
||||||
|
33CC10FD2044A3C60003C045 /* Release */,
|
||||||
|
338D0CEA231458BD00FA5F75 /* Profile */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
33CC111C2044C6BA0003C045 /* Debug */,
|
||||||
|
33CC111D2044C6BA0003C045 /* Release */,
|
||||||
|
338D0CEB231458BD00FA5F75 /* Profile */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
};
|
||||||
|
rootObject = 33CC10E52044A3C60003C045 /* Project object */;
|
||||||
|
}
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IDEDidComputeMac32BitWarning</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@ -0,0 +1,98 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Scheme
|
||||||
|
LastUpgradeVersion = "1510"
|
||||||
|
version = "1.3">
|
||||||
|
<BuildAction
|
||||||
|
parallelizeBuildables = "YES"
|
||||||
|
buildImplicitDependencies = "YES">
|
||||||
|
<BuildActionEntries>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||||
|
BuildableName = "SCToolBox.app"
|
||||||
|
BlueprintName = "Runner"
|
||||||
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
</BuildActionEntries>
|
||||||
|
</BuildAction>
|
||||||
|
<TestAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||||
|
<MacroExpansion>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||||
|
BuildableName = "SCToolBox.app"
|
||||||
|
BlueprintName = "Runner"
|
||||||
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</MacroExpansion>
|
||||||
|
<Testables>
|
||||||
|
<TestableReference
|
||||||
|
skipped = "NO"
|
||||||
|
parallelizable = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "331C80D4294CF70F00263BE5"
|
||||||
|
BuildableName = "RunnerTests.xctest"
|
||||||
|
BlueprintName = "RunnerTests"
|
||||||
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</TestableReference>
|
||||||
|
</Testables>
|
||||||
|
</TestAction>
|
||||||
|
<LaunchAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
launchStyle = "0"
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
ignoresPersistentStateOnLaunch = "NO"
|
||||||
|
debugDocumentVersioning = "YES"
|
||||||
|
debugServiceExtension = "internal"
|
||||||
|
allowLocationSimulation = "YES">
|
||||||
|
<BuildableProductRunnable
|
||||||
|
runnableDebuggingMode = "0">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||||
|
BuildableName = "SCToolBox.app"
|
||||||
|
BlueprintName = "Runner"
|
||||||
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
</LaunchAction>
|
||||||
|
<ProfileAction
|
||||||
|
buildConfiguration = "Profile"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
savedToolIdentifier = ""
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
debugDocumentVersioning = "YES">
|
||||||
|
<BuildableProductRunnable
|
||||||
|
runnableDebuggingMode = "0">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
|
||||||
|
BuildableName = "SCToolBox.app"
|
||||||
|
BlueprintName = "Runner"
|
||||||
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
</ProfileAction>
|
||||||
|
<AnalyzeAction
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
</AnalyzeAction>
|
||||||
|
<ArchiveAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
revealArchiveInOrganizer = "YES">
|
||||||
|
</ArchiveAction>
|
||||||
|
</Scheme>
|
||||||
10
macos/Runner.xcworkspace/contents.xcworkspacedata
generated
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Workspace
|
||||||
|
version = "1.0">
|
||||||
|
<FileRef
|
||||||
|
location = "group:Runner.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
|
<FileRef
|
||||||
|
location = "group:Pods/Pods.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
|
</Workspace>
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IDEDidComputeMac32BitWarning</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
9
macos/Runner/AppDelegate.swift
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import Cocoa
|
||||||
|
import FlutterMacOS
|
||||||
|
|
||||||
|
@NSApplicationMain
|
||||||
|
class AppDelegate: FlutterAppDelegate {
|
||||||
|
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/1024.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/128.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/16.png
Normal file
|
After Width: | Height: | Size: 909 B |
BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/256.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/32.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/512.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/64.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
@ -0,0 +1 @@
|
|||||||
|
{"images":[{"size":"128x128","expected-size":"128","filename":"128.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"256x256","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"128x128","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"256x256","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"512x512","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"16","filename":"16.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"64","filename":"64.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"512x512","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"}]}
|
||||||
343
macos/Runner/Base.lproj/MainMenu.xib
Normal file
@ -0,0 +1,343 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||||
|
<dependencies>
|
||||||
|
<deployment identifier="macosx"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||||
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
|
||||||
|
<connections>
|
||||||
|
<outlet property="delegate" destination="Voe-Tx-rLC" id="GzC-gU-4Uq"/>
|
||||||
|
</connections>
|
||||||
|
</customObject>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||||
|
<customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="Runner" customModuleProvider="target">
|
||||||
|
<connections>
|
||||||
|
<outlet property="applicationMenu" destination="uQy-DD-JDr" id="XBo-yE-nKs"/>
|
||||||
|
<outlet property="mainFlutterWindow" destination="QvC-M9-y7g" id="gIp-Ho-8D9"/>
|
||||||
|
</connections>
|
||||||
|
</customObject>
|
||||||
|
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
|
||||||
|
<menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
|
||||||
|
<items>
|
||||||
|
<menuItem title="APP_NAME" id="1Xt-HY-uBw">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="APP_NAME" systemMenu="apple" id="uQy-DD-JDr">
|
||||||
|
<items>
|
||||||
|
<menuItem title="About APP_NAME" id="5kV-Vb-QxS">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="orderFrontStandardAboutPanel:" target="-1" id="Exp-CZ-Vem"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
|
||||||
|
<menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/>
|
||||||
|
<menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/>
|
||||||
|
<menuItem title="Services" id="NMo-om-nkz">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem isSeparatorItem="YES" id="4je-JR-u6R"/>
|
||||||
|
<menuItem title="Hide APP_NAME" keyEquivalent="h" id="Olw-nP-bQN">
|
||||||
|
<connections>
|
||||||
|
<action selector="hide:" target="-1" id="PnN-Uc-m68"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="hideOtherApplications:" target="-1" id="VT4-aY-XCT"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Show All" id="Kd2-mp-pUS">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="unhideAllApplications:" target="-1" id="Dhg-Le-xox"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
|
||||||
|
<menuItem title="Quit APP_NAME" keyEquivalent="q" id="4sb-4s-VLi">
|
||||||
|
<connections>
|
||||||
|
<action selector="terminate:" target="-1" id="Te7-pn-YzF"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Edit" id="5QF-Oa-p0T">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="Edit" id="W48-6f-4Dl">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Undo" keyEquivalent="z" id="dRJ-4n-Yzg">
|
||||||
|
<connections>
|
||||||
|
<action selector="undo:" target="-1" id="M6e-cu-g7V"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Redo" keyEquivalent="Z" id="6dh-zS-Vam">
|
||||||
|
<connections>
|
||||||
|
<action selector="redo:" target="-1" id="oIA-Rs-6OD"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem isSeparatorItem="YES" id="WRV-NI-Exz"/>
|
||||||
|
<menuItem title="Cut" keyEquivalent="x" id="uRl-iY-unG">
|
||||||
|
<connections>
|
||||||
|
<action selector="cut:" target="-1" id="YJe-68-I9s"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Copy" keyEquivalent="c" id="x3v-GG-iWU">
|
||||||
|
<connections>
|
||||||
|
<action selector="copy:" target="-1" id="G1f-GL-Joy"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Paste" keyEquivalent="v" id="gVA-U4-sdL">
|
||||||
|
<connections>
|
||||||
|
<action selector="paste:" target="-1" id="UvS-8e-Qdg"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Paste and Match Style" keyEquivalent="V" id="WeT-3V-zwk">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="pasteAsPlainText:" target="-1" id="cEh-KX-wJQ"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Delete" id="pa3-QI-u2k">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="delete:" target="-1" id="0Mk-Ml-PaM"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Select All" keyEquivalent="a" id="Ruw-6m-B2m">
|
||||||
|
<connections>
|
||||||
|
<action selector="selectAll:" target="-1" id="VNm-Mi-diN"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem isSeparatorItem="YES" id="uyl-h8-XO2"/>
|
||||||
|
<menuItem title="Find" id="4EN-yA-p0u">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="Find" id="1b7-l0-nxx">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Find…" tag="1" keyEquivalent="f" id="Xz5-n4-O0W">
|
||||||
|
<connections>
|
||||||
|
<action selector="performFindPanelAction:" target="-1" id="cD7-Qs-BN4"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Find and Replace…" tag="12" keyEquivalent="f" id="YEy-JH-Tfz">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="performFindPanelAction:" target="-1" id="WD3-Gg-5AJ"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Find Next" tag="2" keyEquivalent="g" id="q09-fT-Sye">
|
||||||
|
<connections>
|
||||||
|
<action selector="performFindPanelAction:" target="-1" id="NDo-RZ-v9R"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Find Previous" tag="3" keyEquivalent="G" id="OwM-mh-QMV">
|
||||||
|
<connections>
|
||||||
|
<action selector="performFindPanelAction:" target="-1" id="HOh-sY-3ay"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="buJ-ug-pKt">
|
||||||
|
<connections>
|
||||||
|
<action selector="performFindPanelAction:" target="-1" id="U76-nv-p5D"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Jump to Selection" keyEquivalent="j" id="S0p-oC-mLd">
|
||||||
|
<connections>
|
||||||
|
<action selector="centerSelectionInVisibleArea:" target="-1" id="IOG-6D-g5B"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Spelling and Grammar" id="Dv1-io-Yv7">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="Spelling" id="3IN-sU-3Bg">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Show Spelling and Grammar" keyEquivalent=":" id="HFo-cy-zxI">
|
||||||
|
<connections>
|
||||||
|
<action selector="showGuessPanel:" target="-1" id="vFj-Ks-hy3"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Check Document Now" keyEquivalent=";" id="hz2-CU-CR7">
|
||||||
|
<connections>
|
||||||
|
<action selector="checkSpelling:" target="-1" id="fz7-VC-reM"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem isSeparatorItem="YES" id="bNw-od-mp5"/>
|
||||||
|
<menuItem title="Check Spelling While Typing" id="rbD-Rh-wIN">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleContinuousSpellChecking:" target="-1" id="7w6-Qz-0kB"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Check Grammar With Spelling" id="mK6-2p-4JG">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleGrammarChecking:" target="-1" id="muD-Qn-j4w"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Correct Spelling Automatically" id="78Y-hA-62v">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleAutomaticSpellingCorrection:" target="-1" id="2lM-Qi-WAP"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Substitutions" id="9ic-FL-obx">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="Substitutions" id="FeM-D8-WVr">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Show Substitutions" id="z6F-FW-3nz">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="orderFrontSubstitutionsPanel:" target="-1" id="oku-mr-iSq"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem isSeparatorItem="YES" id="gPx-C9-uUO"/>
|
||||||
|
<menuItem title="Smart Copy/Paste" id="9yt-4B-nSM">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleSmartInsertDelete:" target="-1" id="3IJ-Se-DZD"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Smart Quotes" id="hQb-2v-fYv">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleAutomaticQuoteSubstitution:" target="-1" id="ptq-xd-QOA"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Smart Dashes" id="rgM-f4-ycn">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleAutomaticDashSubstitution:" target="-1" id="oCt-pO-9gS"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Smart Links" id="cwL-P1-jid">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleAutomaticLinkDetection:" target="-1" id="Gip-E3-Fov"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Data Detectors" id="tRr-pd-1PS">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleAutomaticDataDetection:" target="-1" id="R1I-Nq-Kbl"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Text Replacement" id="HFQ-gK-NFA">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleAutomaticTextReplacement:" target="-1" id="DvP-Fe-Py6"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Transformations" id="2oI-Rn-ZJC">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="Transformations" id="c8a-y6-VQd">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Make Upper Case" id="vmV-6d-7jI">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="uppercaseWord:" target="-1" id="sPh-Tk-edu"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Make Lower Case" id="d9M-CD-aMd">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="lowercaseWord:" target="-1" id="iUZ-b5-hil"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Capitalize" id="UEZ-Bs-lqG">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="capitalizeWord:" target="-1" id="26H-TL-nsh"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Speech" id="xrE-MZ-jX0">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="Speech" id="3rS-ZA-NoH">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Start Speaking" id="Ynk-f8-cLZ">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="startSpeaking:" target="-1" id="654-Ng-kyl"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Stop Speaking" id="Oyz-dy-DGm">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="stopSpeaking:" target="-1" id="dX8-6p-jy9"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="View" id="H8h-7b-M4v">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="View" id="HyV-fh-RgO">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Enter Full Screen" keyEquivalent="f" id="4J7-dP-txa">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleFullScreen:" target="-1" id="dU3-MA-1Rq"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Window" id="aUF-d1-5bR">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
|
||||||
|
<connections>
|
||||||
|
<action selector="performMiniaturize:" target="-1" id="VwT-WD-YPe"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Zoom" id="R4o-n2-Eq4">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="performZoom:" target="-1" id="DIl-cC-cCs"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
|
||||||
|
<menuItem title="Bring All to Front" id="LE2-aR-0XJ">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="arrangeInFront:" target="-1" id="DRN-fu-gQh"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Help" id="EPT-qC-fAb">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<menu key="submenu" title="Help" systemMenu="help" id="rJ0-wn-3NY"/>
|
||||||
|
</menuItem>
|
||||||
|
</items>
|
||||||
|
<point key="canvasLocation" x="142" y="-258"/>
|
||||||
|
</menu>
|
||||||
|
<window title="APP_NAME" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="QvC-M9-y7g" customClass="MainFlutterWindow" customModule="Runner" customModuleProvider="target">
|
||||||
|
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
|
||||||
|
<rect key="contentRect" x="335" y="390" width="800" height="600"/>
|
||||||
|
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1577"/>
|
||||||
|
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="800" height="600"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</view>
|
||||||
|
</window>
|
||||||
|
</objects>
|
||||||
|
</document>
|
||||||
14
macos/Runner/Configs/AppInfo.xcconfig
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// Application-level settings for the Runner target.
|
||||||
|
//
|
||||||
|
// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
|
||||||
|
// future. If not, the values below would default to using the project name when this becomes a
|
||||||
|
// 'flutter create' template.
|
||||||
|
|
||||||
|
// The application's name. By default this is also the title of the Flutter window.
|
||||||
|
PRODUCT_NAME = SCToolBox
|
||||||
|
|
||||||
|
// The application's bundle identifier
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.xkeyc.tools.sctoolbox
|
||||||
|
|
||||||
|
// The copyright displayed in application information
|
||||||
|
PRODUCT_COPYRIGHT = Copyright © 2024 xkeyC Studio All rights reserved.
|
||||||
2
macos/Runner/Configs/Debug.xcconfig
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#include "../../Flutter/Flutter-Debug.xcconfig"
|
||||||
|
#include "Warnings.xcconfig"
|
||||||
2
macos/Runner/Configs/Release.xcconfig
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#include "../../Flutter/Flutter-Release.xcconfig"
|
||||||
|
#include "Warnings.xcconfig"
|
||||||
13
macos/Runner/Configs/Warnings.xcconfig
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES
|
||||||
|
CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES
|
||||||
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
|
||||||
|
CLANG_WARN_PRAGMA_PACK = YES
|
||||||
|
CLANG_WARN_STRICT_PROTOTYPES = YES
|
||||||
|
CLANG_WARN_COMMA = YES
|
||||||
|
GCC_WARN_STRICT_SELECTOR_MATCH = YES
|
||||||
|
CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
|
||||||
|
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
|
||||||
|
GCC_WARN_SHADOW = YES
|
||||||
|
CLANG_WARN_UNREACHABLE_CODE = YES
|
||||||
18
macos/Runner/DebugProfile.entitlements
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>com.apple.security.app-sandbox</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.cs.allow-jit</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.files.downloads.read-write</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.files.user-selected.read-write</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.network.client</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.network.server</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||