💄 Beautifier window on macOS and desktop platform

This commit is contained in:
LittleSheep 2024-06-22 23:20:31 +08:00
parent 09e9a30eef
commit ee1922b1b5
8 changed files with 106 additions and 68 deletions

View File

@ -28,13 +28,6 @@
</intent-filter>
</receiver>
<meta-data
android:name="firebase_messaging_auto_init_enabled"
android:value="false" />
<meta-data
android:name="firebase_analytics_collection_enabled"
android:value="false" />
<activity
android:name=".MainActivity"
android:exported="true"

View File

@ -1,10 +1,13 @@
import 'dart:developer';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_acrylic/flutter_acrylic.dart';
import 'package:get/get.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
import 'package:solian/exts.dart';
import 'package:solian/firebase_options.dart';
import 'package:solian/platform.dart';
import 'package:solian/providers/account.dart';
import 'package:solian/providers/auth.dart';
import 'package:solian/providers/chat.dart';
@ -18,6 +21,8 @@ import 'package:solian/router.dart';
import 'package:solian/theme.dart';
import 'package:solian/translations.dart';
late final double titlebarHeight;
void main() async {
await SentryFlutter.init(
(options) {
@ -32,6 +37,20 @@ void main() async {
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
if (PlatformInfo.isDesktop) {
await Window.initialize();
await Window.setEffect(
effect: WindowEffect.transparent,
dark: true,
);
if (PlatformInfo.isMacOS) {
await Window.makeTitlebarTransparent();
await Window.enableFullSizeContentView();
titlebarHeight = await Window.getTitlebarHeight();
}
}
runApp(const SolianApp());
},
@ -81,10 +100,22 @@ class SolianApp extends StatelessWidget {
});
},
builder: (context, child) {
return ScaffoldMessenger(
final content = ScaffoldMessenger(
child: child ?? Container(),
);
},
if (PlatformInfo.isMacOS) {
return Material(
color: Theme.of(context).colorScheme.surface,
child: Padding(
padding: EdgeInsets.only(top: titlebarHeight),
child: content,
),
);
} else {
return content;
}
}
);
}
}

View File

@ -51,7 +51,7 @@ class AttachmentProvider extends GetConnect {
if (!await auth.isAuthorized) throw Exception('unauthorized');
final client = auth.configureClient(
service: 'paperclip',
'paperclip',
timeout: const Duration(minutes: 3),
);

View File

@ -1,5 +1,4 @@
import 'dart:async';
import 'dart:developer';
import 'dart:ui';
import 'package:flutter/material.dart';

View File

@ -1,4 +1,4 @@
platform :osx, '10.14'
platform :osx, '10.15'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

View File

@ -11,10 +11,10 @@ PODS:
- Firebase/Messaging (10.27.0):
- Firebase/CoreOnly
- FirebaseMessaging (~> 10.27.0)
- firebase_core (3.0.0):
- firebase_core (3.1.0):
- Firebase/CoreOnly (~> 10.27.0)
- FlutterMacOS
- firebase_messaging (15.0.0):
- firebase_messaging (15.0.1):
- Firebase/CoreOnly (~> 10.27.0)
- Firebase/Messaging (~> 10.27.0)
- firebase_core
@ -23,9 +23,9 @@ PODS:
- FirebaseCoreInternal (~> 10.0)
- GoogleUtilities/Environment (~> 7.12)
- GoogleUtilities/Logger (~> 7.12)
- FirebaseCoreInternal (10.27.0):
- FirebaseCoreInternal (10.28.0):
- "GoogleUtilities/NSData+zlib (~> 7.8)"
- FirebaseInstallations (10.27.0):
- FirebaseInstallations (10.28.0):
- FirebaseCore (~> 10.0)
- GoogleUtilities/Environment (~> 7.8)
- GoogleUtilities/UserDefaults (~> 7.8)
@ -76,9 +76,11 @@ PODS:
- GoogleUtilities/UserDefaults (7.13.3):
- GoogleUtilities/Logger
- GoogleUtilities/Privacy
- livekit_client (2.1.6):
- livekit_client (2.2.0):
- FlutterMacOS
- WebRTC-SDK (= 114.5735.10)
- macos_window_utils (1.0.0):
- FlutterMacOS
- nanopb (2.30910.0):
- nanopb/decode (= 2.30910.0)
- nanopb/encode (= 2.30910.0)
@ -90,11 +92,11 @@ PODS:
- Flutter
- FlutterMacOS
- PromisesObjC (2.4.0)
- Sentry/HybridSDK (8.25.2)
- sentry_flutter (8.2.0):
- Sentry/HybridSDK (8.29.0)
- sentry_flutter (8.3.0):
- Flutter
- FlutterMacOS
- Sentry/HybridSDK (= 8.25.2)
- Sentry/HybridSDK (= 8.29.0)
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
@ -121,6 +123,7 @@ DEPENDENCIES:
- flutter_webrtc (from `Flutter/ephemeral/.symlinks/plugins/flutter_webrtc/macos`)
- FlutterMacOS (from `Flutter/ephemeral`)
- livekit_client (from `Flutter/ephemeral/.symlinks/plugins/livekit_client/macos`)
- macos_window_utils (from `Flutter/ephemeral/.symlinks/plugins/macos_window_utils/macos`)
- package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`)
- path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`)
- sentry_flutter (from `Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos`)
@ -165,6 +168,8 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral
livekit_client:
:path: Flutter/ephemeral/.symlinks/plugins/livekit_client/macos
macos_window_utils:
:path: Flutter/ephemeral/.symlinks/plugins/macos_window_utils/macos
package_info_plus:
:path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos
path_provider_foundation:
@ -187,11 +192,11 @@ SPEC CHECKSUMS:
device_info_plus: ce1b7762849d3ec103d0e0517299f2db7ad60720
file_selector_macos: 54fdab7caa3ac3fc43c9fac4d7d8d231277f8cf2
Firebase: 26b040b20866a55f55eb3611b9fcf3ae64816b86
firebase_core: 0b3b9c6c93f774c7392f1f9a6712f0d9ce9b1771
firebase_messaging: cea8e96b86f4fa6344d7b858d8fc8816e55f1b64
firebase_core: 3cf30a8be4c850f7192bf9597f5939d0c3af706b
firebase_messaging: 122ef6eefe1c2bb8abe454da56377d19c916c357
FirebaseCore: a2b95ae4ce7c83ceecfbbbe3b6f1cddc7415a808
FirebaseCoreInternal: 4b297a2d56063dbea2c1d0d04222d44a8d058862
FirebaseInstallations: 766dabca09fd94aef922538aaf144cc4a6fb6869
FirebaseCoreInternal: 58d07f1362fddeb0feb6a857d1d1d1c5e558e698
FirebaseInstallations: 60c1d3bc1beef809fd1ad1189a8057a040c59f2e
FirebaseMessaging: 585984d0a1df120617eb10b44cad8968b859815e
flutter_local_notifications: 3805ca215b2fb7f397d78b66db91f6a747af52e4
flutter_secure_storage_macos: 59459653abe1adb92abbc8ea747d79f8d19866c9
@ -199,13 +204,14 @@ SPEC CHECKSUMS:
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a
GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15
livekit_client: a87c5b7bac4ecd63da1183682ec10f5cafadbaf7
livekit_client: 9b39e0f1b8e1a8ec794bb72a4f9bbfc28c959ece
macos_window_utils: 933f91f64805e2eb91a5bd057cf97cd097276663
nanopb: 438bc412db1928dac798aa6fd75726007be04262
package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
Sentry: 51b056d96914a741f63eca774d118678b1eb05a1
sentry_flutter: e8397d13e297a5d4b6be8a752e33140b21c5cc97
Sentry: 016de45ee5ce5fca2a829996f1bfafeb5e62e8b4
sentry_flutter: 5fb57c5b7e6427a9dc1fedde4269eb65823982d4
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
url_launcher_macos: 5f437abeda8c85500ceb03f5c1938a8c5a705399
@ -213,6 +219,6 @@ SPEC CHECKSUMS:
wakelock_plus: 4783562c9a43d209c458cb9b30692134af456269
WebRTC-SDK: 8c0edd05b880a39648118192c252667ea06dea51
PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367
PODFILE CHECKSUM: 9ebaf0ce3d369aaa26a9ea0e159195ed94724cf3
COCOAPODS: 1.15.2

View File

@ -499,6 +499,7 @@
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.solian.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -514,6 +515,7 @@
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.solian.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -529,6 +531,7 @@
BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.solian.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -579,7 +582,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14;
MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
@ -604,6 +607,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.15;
PRODUCT_BUNDLE_IDENTIFIER = dev.solsynth.solian;
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
@ -614,6 +618,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Profile;
@ -666,7 +671,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14;
MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
@ -717,7 +722,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14;
MACOSX_DEPLOYMENT_TARGET = 10.15;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
@ -742,6 +747,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.15;
PRODUCT_BUNDLE_IDENTIFIER = dev.solsynth.solian;
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@ -767,6 +773,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.15;
PRODUCT_BUNDLE_IDENTIFIER = dev.solsynth.solian;
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
@ -777,6 +784,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
@ -785,6 +793,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;

View File

@ -5,10 +5,10 @@ packages:
dependency: transitive
description:
name: _flutterfire_internals
sha256: "13e611501ef36044655852215b4f30aed81123654a4f55193d0051a0e8705658"
sha256: "0816f12bbbd9e21f72ea8592b11bce4a628d4e5cb7a81ff9f1eee4f3dc23206e"
url: "https://pub.dev"
source: hosted
version: "1.3.36"
version: "1.3.37"
archive:
dependency: transitive
description:
@ -237,10 +237,10 @@ packages:
dependency: "direct main"
description:
name: file_picker
sha256: "29c90806ac5f5fb896547720b73b17ee9aed9bba540dc5d91fe29f8c5745b10a"
sha256: "2ca051989f69d1b2ca012b2cf3ccf78c70d40144f0861ff2c063493f7c8c3d45"
url: "https://pub.dev"
source: hosted
version: "8.0.3"
version: "8.0.5"
file_selector_linux:
dependency: transitive
description:
@ -277,50 +277,50 @@ packages:
dependency: "direct main"
description:
name: firebase_core
sha256: "0d436d29b16fd9844a098ece2a3ce75efc290e5fe0844d282c5e8987173b0d02"
sha256: fae4ab4317c2a7afb13d44ef1e3f9f28a630e10016bc5cfe761e8e6a0ed7816a
url: "https://pub.dev"
source: hosted
version: "3.0.0"
version: "3.1.0"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
sha256: c437ae5d17e6b5cc7981cf6fd458a5db4d12979905f9aafd1fea930428a9fe63
sha256: "1003a5a03a61fc9a22ef49f37cbcb9e46c86313a7b2e7029b9390cf8c6fc32cb"
url: "https://pub.dev"
source: hosted
version: "5.0.0"
version: "5.1.0"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
sha256: "22fcb352744908224fc7be3caae254836099786acfe5df6e9fe901e9c2575a41"
sha256: "6643fe3dbd021e6ccfb751f7882b39df355708afbdeb4130fc50f9305a9d1a3d"
url: "https://pub.dev"
source: hosted
version: "2.17.1"
version: "2.17.2"
firebase_messaging:
dependency: "direct main"
description:
name: firebase_messaging
sha256: "62fb18daf69ee5f65c0ea5ef4c611481ec50584f54a9d7bcb2de511ad821b45d"
sha256: "2d0ea2234ce46030eda2e6922611115ce603adc614ebd8c00e7db06a8929efbb"
url: "https://pub.dev"
source: hosted
version: "15.0.0"
version: "15.0.1"
firebase_messaging_platform_interface:
dependency: transitive
description:
name: firebase_messaging_platform_interface
sha256: aec6972698a5f70557b44946923d6be2c0cda127b60b462a1b1f7f08a8a325a5
sha256: c38c27f58cb6a88b8c145018d0567802376549c32a60098a13f3bdf3ddea326f
url: "https://pub.dev"
source: hosted
version: "4.5.38"
version: "4.5.39"
firebase_messaging_web:
dependency: transitive
description:
name: firebase_messaging_web
sha256: "17979bda5f4474b76c069d547294955e775e3c4484ae80f621a06aa27f5ac5d8"
sha256: "8502849c2f232f7db338c052e045442207a0db82bd03ff14be3c80897dd8c26c"
url: "https://pub.dev"
source: hosted
version: "3.8.8"
version: "3.8.9"
fixnum:
dependency: transitive
description:
@ -402,10 +402,10 @@ packages:
dependency: "direct main"
description:
name: flutter_markdown
sha256: "9921f9deda326f8a885e202b1e35237eadfc1345239a0f6f0f1ff287e047547f"
sha256: "85cc6f7daeae537844c92e2d56e2aff61b00095f8f77913b529ea4be12fc45ea"
url: "https://pub.dev"
source: hosted
version: "0.7.1"
version: "0.7.2+1"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
@ -516,10 +516,10 @@ packages:
dependency: "direct main"
description:
name: go_router
sha256: abec47eb8c8c36ebf41d0a4c64dbbe7f956e39a012b3aafc530e951bdc12fe3f
sha256: cdae1b9c8bd7efadcef6112e81c903662ef2ce105cbd220a04bbb7c3425b5554
url: "https://pub.dev"
source: hosted
version: "14.1.4"
version: "14.2.0"
html:
dependency: transitive
description:
@ -684,10 +684,10 @@ packages:
dependency: "direct main"
description:
name: livekit_client
sha256: e743aadc7dfbdcc9a1bc447cfe81e6f85346b624d972a71db3ce0f11b8a00a3b
sha256: e4e301c26bbba522897254986ad339d6acb59752d7679ff243d4dbee66ca4b95
url: "https://pub.dev"
source: hosted
version: "2.1.6"
version: "2.2.0"
logging:
dependency: transitive
description:
@ -812,10 +812,10 @@ packages:
dependency: transitive
description:
name: path_provider_android
sha256: "9c96da072b421e98183f9ea7464898428e764bc0ce5567f27ec8693442e72514"
sha256: bca87b0165ffd7cdb9cad8edd22d18d2201e886d9a9f19b4fb3452ea7df3a72a
url: "https://pub.dev"
source: hosted
version: "2.2.5"
version: "2.2.6"
path_provider_foundation:
dependency: transitive
description:
@ -860,10 +860,10 @@ packages:
dependency: transitive
description:
name: permission_handler_android
sha256: "8bb852cd759488893805c3161d0b2b5db55db52f773dbb014420b304055ba2c5"
sha256: b29a799ca03be9f999aa6c39f7de5209482d638e6f857f6b93b0875c618b7e54
url: "https://pub.dev"
source: hosted
version: "12.0.6"
version: "12.0.7"
permission_handler_apple:
dependency: transitive
description:
@ -908,10 +908,10 @@ packages:
dependency: transitive
description:
name: platform
sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec"
sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65"
url: "https://pub.dev"
source: hosted
version: "3.1.4"
version: "3.1.5"
platform_detect:
dependency: transitive
description:
@ -972,18 +972,18 @@ packages:
dependency: transitive
description:
name: sentry
sha256: fd1fbfe860c05f5c52820ec4dbf2b6473789e83ead26cfc18bca4fe80bf3f008
sha256: "7342ef4c18932881730ac941a07a6e4cf76fe99cd1ea3bef06e53a6a1402dec0"
url: "https://pub.dev"
source: hosted
version: "8.2.0"
version: "8.3.0"
sentry_flutter:
dependency: "direct main"
description:
name: sentry_flutter
sha256: c64f0aec5332bec87083b61514d1b6b29e435b9045d03ce1575861192b9a5680
sha256: "475cf49682e4d1eb48caa2577502721bcfdcbb63f215de57b3b246d52f4f7914"
url: "https://pub.dev"
source: hosted
version: "8.2.0"
version: "8.3.0"
shared_preferences:
dependency: "direct main"
description:
@ -1241,10 +1241,10 @@ packages:
dependency: "direct main"
description:
name: video_player
sha256: db6a72d8f4fd155d0189845678f55ad2fd54b02c10dcafd11c068dbb631286c0
sha256: aced48e701e24c02b0b7f881a8819e4937794e46b5a5821005e2bf3b40a324cc
url: "https://pub.dev"
source: hosted
version: "2.8.6"
version: "2.8.7"
video_player_android:
dependency: transitive
description:
@ -1281,10 +1281,10 @@ packages:
dependency: "direct main"
description:
name: video_player_win
sha256: df61a6c271e9b3dbe9bd53c528e35ca6228de2041113a476d1b3f2fa90497ee9
sha256: "13904b42e7eeb4efeec4ae0d45e21344a2d376b83f304ebfe0b3fdf64b7731df"
url: "https://pub.dev"
source: hosted
version: "2.3.7"
version: "2.3.8"
vm_service:
dependency: transitive
description: