Compare commits
	
		
			3 Commits
		
	
	
		
			8d855867c1
			...
			91c5a2e1b6
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 91c5a2e1b6 | |||
| cb991d1574 | |||
| 75097ab6fc | 
| @@ -16,27 +16,42 @@ import 'config.dart'; | ||||
| final imagePickerProvider = Provider((ref) => ImagePicker()); | ||||
|  | ||||
| final userAgentProvider = FutureProvider<String>((ref) async { | ||||
|   // Helper function to sanitize strings for HTTP headers | ||||
|   String sanitizeForHeader(String input) { | ||||
|     // Remove or replace characters that are not allowed in HTTP headers | ||||
|     // Keep only ASCII printable characters (32-126) and replace others with underscore | ||||
|     return input.runes.map((rune) { | ||||
|       if (rune >= 32 && rune <= 126) { | ||||
|         return String.fromCharCode(rune); | ||||
|       } else { | ||||
|         return '_'; | ||||
|       } | ||||
|     }).join(); | ||||
|   } | ||||
|  | ||||
|   final String platformInfo; | ||||
|   if (kIsWeb) { | ||||
|     final deviceInfo = await DeviceInfoPlugin().webBrowserInfo; | ||||
|     platformInfo = 'Web; ${deviceInfo.vendor}'; | ||||
|     platformInfo = 'Web; ${sanitizeForHeader(deviceInfo.vendor ?? 'Unknown')}'; | ||||
|   } else if (Platform.isAndroid) { | ||||
|     final deviceInfo = await DeviceInfoPlugin().androidInfo; | ||||
|     platformInfo = | ||||
|         'Android; ${deviceInfo.brand} ${deviceInfo.model}; ${deviceInfo.id}'; | ||||
|         'Android; ${sanitizeForHeader(deviceInfo.brand)} ${sanitizeForHeader(deviceInfo.model)}; ${sanitizeForHeader(deviceInfo.id)}'; | ||||
|   } else if (Platform.isIOS) { | ||||
|     final deviceInfo = await DeviceInfoPlugin().iosInfo; | ||||
|     platformInfo = 'iOS; ${deviceInfo.model}; ${deviceInfo.name}'; | ||||
|     platformInfo = | ||||
|         'iOS; ${sanitizeForHeader(deviceInfo.model)}; ${sanitizeForHeader(deviceInfo.name)}'; | ||||
|   } else if (Platform.isMacOS) { | ||||
|     final deviceInfo = await DeviceInfoPlugin().macOsInfo; | ||||
|     platformInfo = 'MacOS; ${deviceInfo.model}; ${deviceInfo.hostName}'; | ||||
|     platformInfo = | ||||
|         'MacOS; ${sanitizeForHeader(deviceInfo.model)}; ${sanitizeForHeader(deviceInfo.hostName)}'; | ||||
|   } else if (Platform.isWindows) { | ||||
|     final deviceInfo = await DeviceInfoPlugin().windowsInfo; | ||||
|     platformInfo = | ||||
|         'Windows NT; ${deviceInfo.productName}; ${deviceInfo.computerName}'; | ||||
|         'Windows NT; ${sanitizeForHeader(deviceInfo.productName)}; ${sanitizeForHeader(deviceInfo.computerName)}'; | ||||
|   } else if (Platform.isLinux) { | ||||
|     final deviceInfo = await DeviceInfoPlugin().linuxInfo; | ||||
|     platformInfo = 'Linux; ${deviceInfo.prettyName}'; | ||||
|     platformInfo = 'Linux; ${sanitizeForHeader(deviceInfo.prettyName)}'; | ||||
|   } else { | ||||
|     platformInfo = 'Unknown'; | ||||
|   } | ||||
|   | ||||
| @@ -47,8 +47,9 @@ class NotificationUnreadCountNotifier | ||||
|   void _subscribeToWebSocket() { | ||||
|     final webSocketService = ref.read(websocketProvider); | ||||
|     _subscription = webSocketService.dataStream.listen((packet) { | ||||
|       if (packet.type == 'notifications.new') { | ||||
|         _incrementCounter(); | ||||
|       if (packet.type == 'notifications.new' && packet.data != null) { | ||||
|         final notification = SnNotification.fromJson(packet.data!); | ||||
|         if (notification.topic != 'messages.new') _incrementCounter(); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|   | ||||
| @@ -1,14 +1,4 @@ | ||||
| PODS: | ||||
|   - AppAuth (1.7.6): | ||||
|     - AppAuth/Core (= 1.7.6) | ||||
|     - AppAuth/ExternalUserAgent (= 1.7.6) | ||||
|   - AppAuth/Core (1.7.6) | ||||
|   - AppAuth/ExternalUserAgent (1.7.6): | ||||
|     - AppAuth/Core | ||||
|   - AppCheckCore (11.2.0): | ||||
|     - GoogleUtilities/Environment (~> 8.0) | ||||
|     - GoogleUtilities/UserDefaults (~> 8.0) | ||||
|     - PromisesObjC (~> 2.4) | ||||
|   - bitsdojo_window_macos (0.0.1): | ||||
|     - FlutterMacOS | ||||
|   - connectivity_plus (0.0.1): | ||||
| @@ -71,20 +61,9 @@ PODS: | ||||
|   - gal (1.0.0): | ||||
|     - Flutter | ||||
|     - FlutterMacOS | ||||
|   - google_sign_in_ios (0.0.1): | ||||
|     - AppAuth (>= 1.7.4) | ||||
|     - Flutter | ||||
|     - FlutterMacOS | ||||
|     - GoogleSignIn (~> 8.0) | ||||
|     - GTMSessionFetcher (>= 3.4.0) | ||||
|   - GoogleDataTransport (10.1.0): | ||||
|     - nanopb (~> 3.30910.0) | ||||
|     - PromisesObjC (~> 2.4) | ||||
|   - GoogleSignIn (8.0.0): | ||||
|     - AppAuth (< 2.0, >= 1.7.3) | ||||
|     - AppCheckCore (~> 11.0) | ||||
|     - GTMAppAuth (< 5.0, >= 4.1.1) | ||||
|     - GTMSessionFetcher/Core (~> 3.3) | ||||
|   - GoogleUtilities/AppDelegateSwizzler (8.1.0): | ||||
|     - GoogleUtilities/Environment | ||||
|     - GoogleUtilities/Logger | ||||
| @@ -109,14 +88,6 @@ PODS: | ||||
|   - GoogleUtilities/UserDefaults (8.1.0): | ||||
|     - GoogleUtilities/Logger | ||||
|     - GoogleUtilities/Privacy | ||||
|   - GTMAppAuth (4.1.1): | ||||
|     - AppAuth/Core (~> 1.7) | ||||
|     - GTMSessionFetcher/Core (< 4.0, >= 3.3) | ||||
|   - GTMSessionFetcher (3.5.0): | ||||
|     - GTMSessionFetcher/Full (= 3.5.0) | ||||
|   - GTMSessionFetcher/Core (3.5.0) | ||||
|   - GTMSessionFetcher/Full (3.5.0): | ||||
|     - GTMSessionFetcher/Core | ||||
|   - irondash_engine_context (0.0.1): | ||||
|     - FlutterMacOS | ||||
|   - livekit_client (2.4.8): | ||||
| @@ -200,7 +171,6 @@ DEPENDENCIES: | ||||
|   - flutter_webrtc (from `Flutter/ephemeral/.symlinks/plugins/flutter_webrtc/macos`) | ||||
|   - FlutterMacOS (from `Flutter/ephemeral`) | ||||
|   - gal (from `Flutter/ephemeral/.symlinks/plugins/gal/darwin`) | ||||
|   - google_sign_in_ios (from `Flutter/ephemeral/.symlinks/plugins/google_sign_in_ios/darwin`) | ||||
|   - irondash_engine_context (from `Flutter/ephemeral/.symlinks/plugins/irondash_engine_context/macos`) | ||||
|   - livekit_client (from `Flutter/ephemeral/.symlinks/plugins/livekit_client/macos`) | ||||
|   - media_kit_libs_macos_video (from `Flutter/ephemeral/.symlinks/plugins/media_kit_libs_macos_video/macos`) | ||||
| @@ -220,18 +190,13 @@ DEPENDENCIES: | ||||
|  | ||||
| SPEC REPOS: | ||||
|   trunk: | ||||
|     - AppAuth | ||||
|     - AppCheckCore | ||||
|     - Firebase | ||||
|     - FirebaseCore | ||||
|     - FirebaseCoreInternal | ||||
|     - FirebaseInstallations | ||||
|     - FirebaseMessaging | ||||
|     - GoogleDataTransport | ||||
|     - GoogleSignIn | ||||
|     - GoogleUtilities | ||||
|     - GTMAppAuth | ||||
|     - GTMSessionFetcher | ||||
|     - nanopb | ||||
|     - OrderedSet | ||||
|     - PromisesObjC | ||||
| @@ -270,8 +235,6 @@ EXTERNAL SOURCES: | ||||
|     :path: Flutter/ephemeral | ||||
|   gal: | ||||
|     :path: Flutter/ephemeral/.symlinks/plugins/gal/darwin | ||||
|   google_sign_in_ios: | ||||
|     :path: Flutter/ephemeral/.symlinks/plugins/google_sign_in_ios/darwin | ||||
|   irondash_engine_context: | ||||
|     :path: Flutter/ephemeral/.symlinks/plugins/irondash_engine_context/macos | ||||
|   livekit_client: | ||||
| @@ -306,8 +269,6 @@ EXTERNAL SOURCES: | ||||
|     :path: Flutter/ephemeral/.symlinks/plugins/wakelock_plus/macos | ||||
|  | ||||
| SPEC CHECKSUMS: | ||||
|   AppAuth: d4f13a8fe0baf391b2108511793e4b479691fb73 | ||||
|   AppCheckCore: cc8fd0a3a230ddd401f326489c99990b013f0c4f | ||||
|   bitsdojo_window_macos: 7959fb0ca65a3ccda30095c181ecb856fae48ea9 | ||||
|   connectivity_plus: 4adf20a405e25b42b9c9f87feff8f4b6fde18a4e | ||||
|   croppy: d9bfc8c02f3cd1851f669a421df298a474b78f43 | ||||
| @@ -328,12 +289,8 @@ SPEC CHECKSUMS: | ||||
|   flutter_webrtc: a7eeb54859e672228c28f4b48b1fb61561976ea3 | ||||
|   FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 | ||||
|   gal: baecd024ebfd13c441269ca7404792a7152fde89 | ||||
|   google_sign_in_ios: b48bb9af78576358a168361173155596c845f0b9 | ||||
|   GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 | ||||
|   GoogleSignIn: ce8c89bb9b37fb624b92e7514cc67335d1e277e4 | ||||
|   GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 | ||||
|   GTMAppAuth: f69bd07d68cd3b766125f7e072c45d7340dea0de | ||||
|   GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6 | ||||
|   irondash_engine_context: 893c7d96d20ce361d7e996f39d360c4c2f9869ba | ||||
|   livekit_client: 6a35243df3da61750c98e266e02dedcf5d25c888 | ||||
|   media_kit_libs_macos_video: 85a23e549b5f480e72cae3e5634b5514bc692f65 | ||||
|   | ||||
| @@ -15,7 +15,7 @@ | ||||
|             <BuildableReference | ||||
|                BuildableIdentifier = "primary" | ||||
|                BlueprintIdentifier = "33CC10EC2044A3C60003C045" | ||||
|                BuildableName = "island.app" | ||||
|                BuildableName = "Solian.app" | ||||
|                BlueprintName = "Runner" | ||||
|                ReferencedContainer = "container:Runner.xcodeproj"> | ||||
|             </BuildableReference> | ||||
| @@ -31,7 +31,7 @@ | ||||
|          <BuildableReference | ||||
|             BuildableIdentifier = "primary" | ||||
|             BlueprintIdentifier = "33CC10EC2044A3C60003C045" | ||||
|             BuildableName = "island.app" | ||||
|             BuildableName = "Solian.app" | ||||
|             BlueprintName = "Runner" | ||||
|             ReferencedContainer = "container:Runner.xcodeproj"> | ||||
|          </BuildableReference> | ||||
| @@ -66,7 +66,7 @@ | ||||
|          <BuildableReference | ||||
|             BuildableIdentifier = "primary" | ||||
|             BlueprintIdentifier = "33CC10EC2044A3C60003C045" | ||||
|             BuildableName = "island.app" | ||||
|             BuildableName = "Solian.app" | ||||
|             BlueprintName = "Runner" | ||||
|             ReferencedContainer = "container:Runner.xcodeproj"> | ||||
|          </BuildableReference> | ||||
| @@ -83,7 +83,7 @@ | ||||
|          <BuildableReference | ||||
|             BuildableIdentifier = "primary" | ||||
|             BlueprintIdentifier = "33CC10EC2044A3C60003C045" | ||||
|             BuildableName = "island.app" | ||||
|             BuildableName = "Solian.app" | ||||
|             BlueprintName = "Runner" | ||||
|             ReferencedContainer = "container:Runner.xcodeproj"> | ||||
|          </BuildableReference> | ||||
|   | ||||
| @@ -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.0.0+104 | ||||
| version: 3.0.0+106 | ||||
|  | ||||
| environment: | ||||
|   sdk: ^3.7.2 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user