Compare commits

..

10 Commits

Author SHA1 Message Date
2a7d12de48 🐛 Fix bugs 2025-10-20 23:48:24 +08:00
64c60ead48 ⬆️ Upgrade deps 2025-10-20 23:40:30 +08:00
001549b190 💄 Fix notification bottom sheet covered with sheet 2025-10-15 22:55:37 +08:00
4595865ad3 🐛 Bug fixes on windows 2025-10-15 22:49:43 +08:00
LittleSheep
1834643167 🔀 Merge pull request #184 from Texas0295/v3
[FIX] linux: restrict setAsFrameless to Wayland only
2025-10-15 20:05:40 +08:00
Texas0295
0e816eaa3e [FIX] wayland: restrict setAsFrameless to Wayland only
Prevent unconditional frameless calls on non-Wayland platforms.

Signed-off-by: Texas0295 <kimura@texas0295.top>
2025-10-15 02:24:40 +08:00
LittleSheep
7c1f24b824 🔀 Merge pull request #183 from Texas0295/v3
[FIX] linux: correct Wayland window buffer mismatch by setAsFreameless()
2025-10-15 00:47:58 +08:00
c6594ea2ce 🚀 Launch 3.3.0+136 2025-10-15 00:46:34 +08:00
3bec6e683e 🐛 Fix chat input not enter to send 2025-10-15 00:42:26 +08:00
Texas0295
b7d44d96ba [FIX] linux: correct Wayland window buffer mismatch by setAsFreameless()
Wayland (Hyprland, Sway, etc.) compositors misreport window buffer geometry
when using transparent + hidden titlebar settings.

This causes Flutter to render outside the actual visible region
and the debug banner to be cropped offscreen.

Calling windowManager.setAsFrameless() once after window creation
forces compositor to reconfigure the surface and align buffer size
with the visible client area.

No effect on X11, Windows, or macOS.

Signed-off-by: Texas0295 <kimura@texas0295.top>
2025-10-15 00:06:03 +08:00
11 changed files with 103 additions and 104 deletions

View File

@@ -120,13 +120,24 @@ void main() async {
windowButtonVisibility: true,
);
windowManager.waitUntilReadyToShow(windowOptions, () async {
final env = Platform.environment;
final isWayland = env.containsKey('WAYLAND_DISPLAY');
if (isWayland) {
try {
await windowManager.setAsFrameless();
} catch (e) {
debugPrint('[Wayland] setAsFrameless failed: $e');
}
}
await windowManager.setMinimumSize(defaultSize);
await windowManager.show();
await windowManager.focus();
final opacity = prefs.getDouble(kAppWindowOpacity) ?? 1.0;
await windowManager.setOpacity(opacity);
talker.info(
"[SplashScreen] Desktop window is ready with size: ${initialSize.width}x${initialSize.height}",
"[SplashScreen] Desktop window is ready with size: ${initialSize.width}x${initialSize.height}"
"${isWayland ? " (Wayland frameless fix applied)" : ""}",
);
});
}

View File

@@ -25,7 +25,6 @@ import 'package:island/screens/tabs.dart';
import 'package:island/screens/explore.dart';
import 'package:island/screens/discovery/article_detail.dart';
import 'package:island/screens/account.dart';
import 'package:island/screens/notification.dart';
import 'package:island/screens/wallet.dart';
import 'package:island/screens/account/relationship.dart';
import 'package:island/screens/account/profile.dart';
@@ -392,11 +391,6 @@ final routerProvider = Provider<GoRouter>((ref) {
),
],
),
GoRoute(
name: 'notifications',
path: '/account/notifications',
builder: (context, state) => const NotificationScreen(),
),
GoRoute(
name: 'wallet',
path: '/account/wallet',

View File

@@ -285,7 +285,8 @@ class AccountScreen extends HookConsumerWidget {
showModalBottomSheet(
context: context,
isScrollControlled: true,
builder: (context) => const NotificationScreen(),
useRootNavigator: true,
builder: (context) => const NotificationSheet(),
);
},
),

View File

@@ -57,7 +57,8 @@ Widget notificationIndicatorWidget(
showModalBottomSheet(
context: context,
isScrollControlled: true,
builder: (context) => const NotificationScreen(),
useRootNavigator: true,
builder: (context) => const NotificationSheet(),
);
},
),

View File

@@ -112,8 +112,8 @@ class NotificationListNotifier extends _$NotificationListNotifier
}
}
class NotificationScreen extends HookConsumerWidget {
const NotificationScreen({super.key});
class NotificationSheet extends HookConsumerWidget {
const NotificationSheet({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {

View File

@@ -374,10 +374,10 @@ class PageBackButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
final isDesktop =
!kIsWeb && (Platform.isMacOS || Platform.isLinux || Platform.isWindows);
final hasPageAction =
!kIsWeb && Platform.isMacOS;
if (isDesktop && isWideScreen(context)) return const SizedBox.shrink();
if (hasPageAction && isWideScreen(context)) return const SizedBox.shrink();
return IconButton(
onPressed: () {

View File

@@ -73,10 +73,8 @@ class ChatInput extends HookConsumerWidget {
final chatSubscribe = ref.watch(chatSubscribeNotifierProvider(chatRoom.id));
void send() {
onSend.call();
WidgetsBinding.instance.addPostFrameCallback((_) {
inputFocusNode.requestFocus();
});
onSend.call();
}
void insertNewLine() {
@@ -539,6 +537,10 @@ class ChatInput extends HookConsumerWidget {
onTapOutside:
(_) =>
FocusManager.instance.primaryFocus?.unfocus(),
textInputAction:
settings.enterToSend
? TextInputAction.send
: null,
onSubmitted:
settings.enterToSend ? (_) => send() : null,
);

View File

@@ -14,7 +14,6 @@ import 'package:island/pods/chat/messages_notifier.dart';
import 'package:island/pods/translate.dart';
import 'package:island/pods/config.dart';
import 'package:island/widgets/account/account_pfc.dart';
import 'package:island/widgets/app_scaffold.dart';
import 'package:island/widgets/chat/message_content.dart';
import 'package:island/widgets/chat/message_indicators.dart';
import 'package:island/widgets/chat/message_sender_info.dart';
@@ -666,17 +665,11 @@ class MessageItemDisplayBubble extends HookConsumerWidget {
? Theme.of(context).colorScheme.primaryContainer.withOpacity(0.5)
: Theme.of(context).colorScheme.surfaceContainer;
final hasBackground =
ref.watch(backgroundImageFileProvider).valueOrNull != null;
final remoteMessage = message.toRemoteMessage();
final sender = remoteMessage.sender;
return Material(
color:
hasBackground
? Colors.transparent
: Theme.of(context).colorScheme.surface,
color: Colors.transparent,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 4),
child: Column(

View File

@@ -193,10 +193,7 @@ class _PaymentContentState extends ConsumerState<_PaymentContent> {
// Perform biometric authentication
final bool didAuthenticate = await _localAuth.authenticate(
localizedReason: 'biometricPrompt'.tr(),
options: const AuthenticationOptions(
biometricOnly: true,
stickyAuth: true,
),
);
if (didAuthenticate) {

View File

@@ -141,10 +141,10 @@ packages:
dependency: transitive
description:
name: build_daemon
sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa"
sha256: "409002f1adeea601018715d613115cfaf0e31f512cb80ae4534c79867ae2363d"
url: "https://pub.dev"
source: hosted
version: "4.0.4"
version: "4.1.0"
build_resolvers:
dependency: transitive
description:
@@ -325,10 +325,10 @@ packages:
dependency: "direct main"
description:
name: croppy
sha256: ca70a77cd5a981172d69382a7b43629d15d6c868475b2bbb45efce32cfc58b86
sha256: ceea4ea0bc36354ea2b3d2cc515a29d6bccf75196c8080148f4174902d185a53
url: "https://pub.dev"
source: hosted
version: "1.4.0"
version: "1.4.1"
cross_file:
dependency: "direct main"
description:
@@ -605,10 +605,10 @@ packages:
dependency: transitive
description:
name: file_selector_macos
sha256: "19124ff4a3d8864fdc62072b6a2ef6c222d55a3404fe14893a3c02744907b60c"
sha256: "88707a3bec4b988aaed3b4df5d7441ee4e987f20b286cddca5d6a8270cab23f2"
url: "https://pub.dev"
source: hosted
version: "0.9.4+4"
version: "0.9.4+5"
file_selector_platform_interface:
dependency: transitive
description:
@@ -930,10 +930,10 @@ packages:
dependency: "direct main"
description:
name: flutter_local_notifications
sha256: "7ed76be64e8a7d01dfdf250b8434618e2a028c9dfa2a3c41dc9b531d4b3fc8a5"
sha256: "19ffb0a8bb7407875555e5e98d7343a633bb73707bae6c6a5f37c90014077875"
url: "https://pub.dev"
source: hosted
version: "19.4.2"
version: "19.5.0"
flutter_local_notifications_linux:
dependency: transitive
description:
@@ -991,10 +991,10 @@ packages:
dependency: "direct main"
description:
name: flutter_native_splash
sha256: "8321a6d11a8d13977fa780c89de8d257cce3d841eecfb7a4cadffcc4f12d82dc"
sha256: "4fb9f4113350d3a80841ce05ebf1976a36de622af7d19aca0ca9a9911c7ff002"
url: "https://pub.dev"
source: hosted
version: "2.4.6"
version: "2.4.7"
flutter_otp_text_field:
dependency: "direct main"
description:
@@ -1015,10 +1015,10 @@ packages:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
sha256: c2fe1001710127dfa7da89977a08d591398370d099aacdaa6d44da7eb14b8476
sha256: "306f0596590e077338312f38837f595c04f28d6cdeeac392d3d74df2f0003687"
url: "https://pub.dev"
source: hosted
version: "2.0.31"
version: "2.0.32"
flutter_popup_card:
dependency: "direct main"
description:
@@ -1137,10 +1137,10 @@ packages:
dependency: transitive
description:
name: font_awesome_flutter
sha256: "27af5982e6c510dec1ba038eff634fa284676ee84e3fd807225c80c4ad869177"
sha256: ef8e9591f6de2bf671c3b6f506f5ff85f03d34403084fccced62d3628fb086b9
url: "https://pub.dev"
source: hosted
version: "10.10.0"
version: "10.11.0"
freezed:
dependency: "direct dev"
description:
@@ -1201,10 +1201,10 @@ packages:
dependency: "direct main"
description:
name: go_router
sha256: c752e2d08d088bf83742cb05bf83003f3e9d276ff1519b5c92f9d5e60e5ddd23
sha256: e1d7ffb0db475e6e845eb58b44768f50b830e23960e3df6908924acd8f7f70ea
url: "https://pub.dev"
source: hosted
version: "16.2.4"
version: "16.2.5"
google_fonts:
dependency: "direct main"
description:
@@ -1321,10 +1321,10 @@ packages:
dependency: "direct main"
description:
name: image_picker_android
sha256: dd7a61daaa5896cc34b7bc95f66c60225ae6bee0d167dde0e21a9d9016cac0dc
sha256: "58a85e6f09fe9c4484d53d18a0bd6271b72c53fce1d05e6f745ae36d8c18efca"
url: "https://pub.dev"
source: hosted
version: "0.8.13+4"
version: "0.8.13+5"
image_picker_for_web:
dependency: transitive
description:
@@ -1337,10 +1337,10 @@ packages:
dependency: transitive
description:
name: image_picker_ios
sha256: eb06fe30bab4c4497bad449b66448f50edcc695f1c59408e78aa3a8059eb8f0e
sha256: e675c22790bcc24e9abd455deead2b7a88de4b79f7327a281812f14de1a56f58
url: "https://pub.dev"
source: hosted
version: "0.8.13"
version: "0.8.13+1"
image_picker_linux:
dependency: transitive
description:
@@ -1353,10 +1353,10 @@ packages:
dependency: transitive
description:
name: image_picker_macos
sha256: d58cd9d67793d52beefd6585b12050af0a7663c0c2a6ece0fb110a35d6955e04
sha256: "86f0f15a309de7e1a552c12df9ce5b59fe927e71385329355aec4776c6a8ec91"
url: "https://pub.dev"
source: hosted
version: "0.2.2"
version: "0.2.2+1"
image_picker_platform_interface:
dependency: "direct main"
description:
@@ -1473,34 +1473,34 @@ packages:
dependency: "direct main"
description:
name: livekit_client
sha256: "4c1663c1e6ac20a743d9a46c7bc71f17e1949db99d245750c68661d554e30cd2"
sha256: c70dc6a16cd7e8c1420b7c7ab65f2bd1142db06fb7a873aaa1dc224cc69d33a6
url: "https://pub.dev"
source: hosted
version: "2.5.1"
version: "2.5.2"
local_auth:
dependency: "direct main"
description:
name: local_auth
sha256: "434d854cf478f17f12ab29a76a02b3067f86a63a6d6c4eb8fbfdcfe4879c1b7b"
sha256: a4f1bf57f0236a4aeb5e8f0ec180e197f4b112a3456baa6c1e73b546630b0422
url: "https://pub.dev"
source: hosted
version: "2.3.0"
version: "3.0.0"
local_auth_android:
dependency: transitive
description:
name: local_auth_android
sha256: b2446c74fab1db37f828d4c54adaa3f003df80a29f5cbd710bbb8883d302e991
sha256: d836715ed95b16b2de3a8c47a88ba5e607976bb1e27c9446d193152ea1429fae
url: "https://pub.dev"
source: hosted
version: "1.0.55"
version: "2.0.0"
local_auth_darwin:
dependency: transitive
description:
name: local_auth_darwin
sha256: "699873970067a40ef2f2c09b4c72eb1cfef64224ef041b3df9fdc5c4c1f91f49"
sha256: "15d9db4ad4d58a11d7269e55d46ff8d49ed5e856226c8a5a91280f0d7c37b3a6"
url: "https://pub.dev"
source: hosted
version: "1.6.1"
version: "2.0.0"
local_auth_platform_interface:
dependency: transitive
description:
@@ -1513,10 +1513,10 @@ packages:
dependency: transitive
description:
name: local_auth_windows
sha256: bc4e66a29b0fdf751aafbec923b5bed7ad6ed3614875d8151afe2578520b2ab5
sha256: d95535a73eddf57ce5930d5e78a0fa4f294c31981fdeeee83325b797302be454
url: "https://pub.dev"
source: hosted
version: "1.0.11"
version: "2.0.0"
logger:
dependency: transitive
description:
@@ -1785,18 +1785,18 @@ packages:
dependency: transitive
description:
name: path_provider_android
sha256: "3b4c1fc3aa55ddc9cd4aa6759984330d5c8e66aa7702a6223c61540dc6380c37"
sha256: e122c5ea805bb6773bb12ce667611265980940145be920cd09a4b0ec0285cb16
url: "https://pub.dev"
source: hosted
version: "2.2.19"
version: "2.2.20"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd"
sha256: efaec349ddfc181528345c56f8eda9d6cccd71c177511b132c6a0ddaefaa2738
url: "https://pub.dev"
source: hosted
version: "2.4.2"
version: "2.4.3"
path_provider_linux:
dependency: transitive
description:
@@ -1881,10 +1881,10 @@ packages:
dependency: transitive
description:
name: pointer_interceptor_ios
sha256: a6906772b3205b42c44614fcea28f818b1e5fdad73a4ca742a7bd49818d9c917
sha256: "03c5fa5896080963ab4917eeffda8d28c90f22863a496fb5ba13bc10943e40e4"
url: "https://pub.dev"
source: hosted
version: "0.10.1"
version: "0.10.1+1"
pointer_interceptor_platform_interface:
dependency: transitive
description:
@@ -2010,10 +2010,10 @@ packages:
dependency: transitive
description:
name: record_android
sha256: f05677eeed074898327f890f232f9eb49cd99d1c20d0daaf22b5612f4b2301bb
sha256: fb54ee4e28f6829b8c580252a9ef49d9c549cfd263b0660ad7eeac0908658e9f
url: "https://pub.dev"
source: hosted
version: "1.4.3"
version: "1.4.4"
record_ios:
dependency: transitive
description:
@@ -2050,10 +2050,10 @@ packages:
dependency: transitive
description:
name: record_web
sha256: "4f0adf20c9ccafcc02d71111fd91fba1ca7b17a7453902593e5a9b25b74a5c56"
sha256: "20ac10d56514cb9f8cecc8f3579383084fdfb43b0d04e05a95244d0d76091d90"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
version: "1.2.1"
record_windows:
dependency: transitive
description:
@@ -2218,10 +2218,10 @@ packages:
dependency: "direct main"
description:
name: share_plus
sha256: "3424e9d5c22fd7f7590254ba09465febd6f8827c8b19a44350de4ac31d92d3a6"
sha256: "14c8860d4de93d3a7e53af51bff479598c4e999605290756bbbe45cf65b37840"
url: "https://pub.dev"
source: hosted
version: "12.0.0"
version: "12.0.1"
share_plus_platform_interface:
dependency: transitive
description:
@@ -2250,10 +2250,10 @@ packages:
dependency: transitive
description:
name: shared_preferences_foundation
sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03"
sha256: "1c33a907142607c40a7542768ec9badfd16293bac51da3a4482623d15845f88b"
url: "https://pub.dev"
source: hosted
version: "2.5.4"
version: "2.5.5"
shared_preferences_linux:
dependency: transitive
description:
@@ -2535,18 +2535,18 @@ packages:
dependency: transitive
description:
name: syncfusion_flutter_core
sha256: "3135dc6b427686cdda1546bdeab3a4a45372f5bb3d95369e007776b605f863ac"
sha256: adcd41bc5c4de1e7aa831fe3f2ca2d22465de29f166a9de685133b70d21e4541
url: "https://pub.dev"
source: hosted
version: "31.1.23"
version: "31.2.2"
syncfusion_flutter_pdf:
dependency: transitive
description:
name: syncfusion_flutter_pdf
sha256: "222874bf28765671a5a57dac56b6c9d6fc6cfed4ce49ef0cfb38e3558bf31070"
sha256: "4e87a865053879ebbe79076bd75e9763b483455936597f9f0a424c4f87f8abc1"
url: "https://pub.dev"
source: hosted
version: "31.1.23"
version: "31.2.2"
syncfusion_flutter_pdfviewer:
dependency: "direct main"
description:
@@ -2559,50 +2559,50 @@ packages:
dependency: transitive
description:
name: syncfusion_flutter_signaturepad
sha256: "0491efc4b0bba057fbb83cb3864b7718132608950d8b7ebb1f0ff61c066111ae"
sha256: "355a71cd37b9fe5e92658dd10d56fbacdcfea109a542663e0701ff71c3609e4c"
url: "https://pub.dev"
source: hosted
version: "31.1.23"
version: "31.2.2"
syncfusion_pdfviewer_linux:
dependency: transitive
description:
name: syncfusion_pdfviewer_linux
sha256: "9b448ce3d11ebd879418a2eefdb78d83daa9240729b5d9eed986ef30b97f666c"
sha256: d7b1cbbc06d28a698034311a781dbdd97390035553ea62d44c7d95505e836d85
url: "https://pub.dev"
source: hosted
version: "31.1.23"
version: "31.2.2"
syncfusion_pdfviewer_macos:
dependency: transitive
description:
name: syncfusion_pdfviewer_macos
sha256: c4fad8e6e8d31d98fc4e5766b6f282da42b06d527b0a734751080191a03e7c73
sha256: "22c6ce2a564b9580ad97f373774094267bb9bc6ea8512f125c325018b41eb09d"
url: "https://pub.dev"
source: hosted
version: "31.1.23"
version: "31.2.2"
syncfusion_pdfviewer_platform_interface:
dependency: transitive
description:
name: syncfusion_pdfviewer_platform_interface
sha256: "52278505016e61b871d740014379854adc07e5e29c97f9362f8d130ec5747bb3"
sha256: "7976dc9c29e8f0cb4e71c1fc42db8ae9ba60fc73206d750c8a9b39efd9c46e31"
url: "https://pub.dev"
source: hosted
version: "31.1.23"
version: "31.2.2"
syncfusion_pdfviewer_web:
dependency: transitive
description:
name: syncfusion_pdfviewer_web
sha256: c3ea7aac63ea3a1b73ada80fc60de07855e22d6817d44e8f1424ac6428228640
sha256: "6c630e710b18854f2ca370a23966c870b1a25e026fd9a42191dce7a23d28cac3"
url: "https://pub.dev"
source: hosted
version: "31.1.23"
version: "31.2.2"
syncfusion_pdfviewer_windows:
dependency: transitive
description:
name: syncfusion_pdfviewer_windows
sha256: b7c5988cd797e1e2432377131910d09e4bc4f54bb2b5a56953da2d553fdfd853
sha256: "8ef5e72cd43ed739b5689ab31c825a11e0ff85225c1e0e363ee13587fae2f7bb"
url: "https://pub.dev"
source: hosted
version: "31.1.23"
version: "31.2.2"
synchronized:
dependency: transitive
description:
@@ -2776,10 +2776,10 @@ packages:
dependency: transitive
description:
name: url_launcher_ios
sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7
sha256: "6b63f1441e4f653ae799166a72b50b1767321ecc263a57aadf825a7a2a5477d9"
url: "https://pub.dev"
source: hosted
version: "6.3.4"
version: "6.3.5"
url_launcher_linux:
dependency: transitive
description:
@@ -2792,10 +2792,10 @@ packages:
dependency: transitive
description:
name: url_launcher_macos
sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f
sha256: "8262208506252a3ed4ff5c0dc1e973d2c0e0ef337d0a074d35634da5d44397c9"
url: "https://pub.dev"
source: hosted
version: "3.2.3"
version: "3.2.4"
url_launcher_platform_interface:
dependency: transitive
description:

View File

@@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version: 3.3.0+135
version: 3.3.0+136
environment:
sdk: ^3.7.2
@@ -38,7 +38,7 @@ dependencies:
cupertino_icons: ^1.0.8
flutter_hooks: ^0.21.3+1
hooks_riverpod: ^2.6.1
go_router: ^16.2.4
go_router: ^16.2.5
styled_widget: ^0.4.1
shared_preferences: ^2.5.3
flutter_riverpod: ^2.6.1
@@ -75,7 +75,7 @@ dependencies:
file_picker: ^10.3.3
riverpod_annotation: ^2.6.1
image_picker_platform_interface: ^2.11.0
image_picker_android: ^0.8.13+4
image_picker_android: ^0.8.13+5
super_context_menu: ^0.9.1
modal_bottom_sheet: ^3.0.0
firebase_messaging: ^16.0.3
@@ -88,7 +88,7 @@ dependencies:
path: ^1.9.1
collection: ^1.19.1
markdown_editor_plus: ^0.2.15
croppy: ^1.4.0
croppy: ^1.4.1
table_calendar: ^3.2.0
relative_time: ^5.0.0
dropdown_button2: ^2.3.9
@@ -97,12 +97,12 @@ dependencies:
avatar_stack: ^3.0.0
markdown_widget: ^2.3.2+8
visibility_detector: ^0.4.0+2
flutter_native_splash: ^2.4.6
flutter_native_splash: ^2.4.7
photo_view: ^0.15.0
gal: ^2.3.2
dismissible_page: ^1.0.2
super_sliver_list: ^0.4.1
livekit_client: ^2.5.1
livekit_client: ^2.5.2
pasteboard: ^0.4.0
flutter_colorpicker: ^1.1.0
image: ^4.5.4
@@ -117,10 +117,10 @@ dependencies:
sign_in_with_apple: ^7.0.1
flutter_svg: ^2.2.1
native_exif: ^0.6.2
local_auth: ^2.3.0
local_auth: ^3.0.0
flutter_secure_storage: ^9.2.4
flutter_math_fork: ^0.7.4
share_plus: ^12.0.0
share_plus: ^12.0.1
# https://github.com/KasemJaffer/receive_sharing_intent/pull/333
receive_sharing_intent:
git:
@@ -142,7 +142,7 @@ dependencies:
file_saver: ^0.3.1
tray_manager: ^0.5.1
flutter_webrtc: ^1.2.0
flutter_local_notifications: ^19.4.2
flutter_local_notifications: ^19.5.0
wakelock_plus: ^1.4.0
slide_countdown: ^2.0.2
shelf: ^1.4.2