From 6811d8e9b19c03b9c01de536c1508423e99431a4 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Wed, 17 Jul 2024 11:38:25 +0800 Subject: [PATCH] :zap: Optimization and show stack trace in error dialog --- ios/Podfile.lock | 6 -- lib/exts.dart | 5 +- lib/providers/websocket.dart | 66 ------------------- macos/Flutter/GeneratedPluginRegistrant.swift | 2 - pubspec.lock | 32 --------- pubspec.yaml | 1 - 6 files changed, 4 insertions(+), 108 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 12168bf..ad91e38 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -71,8 +71,6 @@ PODS: - GoogleUtilities/UserDefaults (~> 7.8) - nanopb (< 2.30911.0, >= 2.30908.0) - Flutter (1.0.0) - - flutter_local_notifications (0.0.1): - - Flutter - flutter_secure_storage (6.0.0): - Flutter - flutter_webrtc (0.9.36): @@ -164,7 +162,6 @@ DEPENDENCIES: - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - Flutter (from `Flutter`) - - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - flutter_webrtc (from `.symlinks/plugins/flutter_webrtc/ios`) - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) @@ -215,8 +212,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/firebase_messaging/ios" Flutter: :path: Flutter - flutter_local_notifications: - :path: ".symlinks/plugins/flutter_local_notifications/ios" flutter_secure_storage: :path: ".symlinks/plugins/flutter_secure_storage/ios" flutter_webrtc: @@ -268,7 +263,6 @@ SPEC CHECKSUMS: FirebaseInstallations: 60c1d3bc1beef809fd1ad1189a8057a040c59f2e FirebaseMessaging: 585984d0a1df120617eb10b44cad8968b859815e Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086 flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 flutter_webrtc: b33475c3a57d59ff05bf87b4f5d3feceac63f291 GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a diff --git a/lib/exts.dart b/lib/exts.dart index 9a679c6..2c51b02 100644 --- a/lib/exts.dart +++ b/lib/exts.dart @@ -30,12 +30,15 @@ extension SolianExtenions on BuildContext { } Future showErrorDialog(dynamic exception) { + var stack = StackTrace.current; + var stackTrace = '$stack'; + return showDialog( useRootNavigator: true, context: this, builder: (ctx) => AlertDialog( title: Text('errorHappened'.tr), - content: Text(exception.toString().capitalize!), + content: Text('${exception.toString().capitalize!}\n\nStack Trace: $stackTrace'), actions: [ TextButton( onPressed: () => Navigator.pop(ctx), diff --git a/lib/providers/websocket.dart b/lib/providers/websocket.dart index 4b92432..bafc71f 100644 --- a/lib/providers/websocket.dart +++ b/lib/providers/websocket.dart @@ -2,7 +2,6 @@ import 'dart:async'; import 'dart:convert'; import 'dart:developer'; import 'dart:io'; -import 'dart:math' as math; import 'package:device_info_plus/device_info_plus.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; @@ -14,12 +13,8 @@ import 'package:solian/platform.dart'; import 'package:solian/providers/auth.dart'; import 'package:solian/services.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; -import 'package:flutter_local_notifications/flutter_local_notifications.dart'; class WebSocketProvider extends GetxController { - final FlutterLocalNotificationsPlugin localNotify = - FlutterLocalNotificationsPlugin(); - RxBool isConnected = false.obs; RxBool isConnecting = false.obs; @@ -41,7 +36,6 @@ class WebSocketProvider extends GetxController { badge: true, sound: true) .then((status) { - notifyInitialization(); notifyPrefetch(); }); @@ -94,17 +88,6 @@ class WebSocketProvider extends GetxController { (event) { final packet = NetworkPackage.fromJson(jsonDecode(event)); stream.sink.add(packet); - - switch (packet.method) { - case 'notifications.new': - final notification = Notification.fromJson(packet.payload!); - notificationUnread++; - notifications.add(notification); - if (!PlatformInfo.canPushNotification) { - notifyMessage(notification.subject, notification.content); - } - break; - } }, onDone: () { isConnected.value = false; @@ -117,55 +100,6 @@ class WebSocketProvider extends GetxController { ); } - void notifyInitialization() { - const androidSettings = AndroidInitializationSettings('app_icon'); - const darwinSettings = DarwinInitializationSettings( - notificationCategories: [ - DarwinNotificationCategory('general'), - ], - ); - const linuxSettings = - LinuxInitializationSettings(defaultActionName: 'Open notification'); - const InitializationSettings initializationSettings = - InitializationSettings( - android: androidSettings, - iOS: darwinSettings, - macOS: darwinSettings, - linux: linuxSettings, - ); - - localNotify.initialize(initializationSettings); - } - - void notifyMessage(String title, String body) { - const androidSettings = AndroidNotificationDetails( - 'general', - 'General', - importance: Importance.high, - priority: Priority.high, - silent: true, - ); - const darwinSettings = DarwinNotificationDetails( - presentAlert: true, - presentBanner: true, - presentBadge: true, - presentSound: false, - ); - const linuxSettings = LinuxNotificationDetails(); - - localNotify.show( - math.max(1, math.Random().nextInt(100000000)), - title, - body, - const NotificationDetails( - android: androidSettings, - iOS: darwinSettings, - macOS: darwinSettings, - linux: linuxSettings, - ), - ); - } - Future notifyPrefetch() async { final AuthProvider auth = Get.find(); if (!await auth.isAuthorized) return; diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index f152776..b792469 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -11,7 +11,6 @@ import device_info_plus import file_selector_macos import firebase_core import firebase_messaging -import flutter_local_notifications import flutter_secure_storage_macos import flutter_webrtc import livekit_client @@ -35,7 +34,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin")) - FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) FlutterWebRTCPlugin.register(with: registry.registrar(forPlugin: "FlutterWebRTCPlugin")) LiveKitPlugin.register(with: registry.registrar(forPlugin: "LiveKitPlugin")) diff --git a/pubspec.lock b/pubspec.lock index 1e5e8c5..b6ab8bd 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -526,30 +526,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.0" - flutter_local_notifications: - dependency: "direct main" - description: - name: flutter_local_notifications - sha256: "0a9068149f0225e81642b03562e99776106edbd967816ee68bc16310d457c60e" - url: "https://pub.dev" - source: hosted - version: "17.2.1+1" - flutter_local_notifications_linux: - dependency: transitive - description: - name: flutter_local_notifications_linux - sha256: "33f741ef47b5f63cc7f78fe75eeeac7e19f171ff3c3df054d84c1e38bedb6a03" - url: "https://pub.dev" - source: hosted - version: "4.0.0+1" - flutter_local_notifications_platform_interface: - dependency: transitive - description: - name: flutter_local_notifications_platform_interface - sha256: "85f8d07fe708c1bdcf45037f2c0109753b26ae077e9d9e899d55971711a4ea66" - url: "https://pub.dev" - source: hosted - version: "7.2.0" flutter_markdown: dependency: "direct main" description: @@ -1557,14 +1533,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.7.0" - timezone: - dependency: transitive - description: - name: timezone - sha256: "2236ec079a174ce07434e89fcd3fcda430025eb7692244139a9cf54fdcf1fc7d" - url: "https://pub.dev" - source: hosted - version: "0.9.4" timing: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 51cc803..e240120 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -29,7 +29,6 @@ dependencies: image: ^4.1.7 font_awesome_flutter: ^10.7.0 web_socket_channel: ^3.0.0 - flutter_local_notifications: ^17.1.2 permission_handler: ^11.3.1 uuid: ^4.4.0 dropdown_button2: ^2.3.9