diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 1b2e5b616..12d15f6a7 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -134,7 +134,7 @@
+ android:value="false" />
io.flutter.embedded_views_preview
FlutterDeepLinkingEnabled
-
+
diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart
index 42617c405..bd2d0c0a2 100644
--- a/lib/pages/chat_list/chat_list.dart
+++ b/lib/pages/chat_list/chat_list.dart
@@ -696,7 +696,6 @@ class ChatListController extends State
_roomCapacitySubscription?.cancel();
MatrixState.pangeaController.subscriptionController.subscriptionNotifier
.removeListener(_onSubscribe);
- SpaceCodeController.codeNotifier.removeListener(_onCacheSpaceCode);
//Pangea#
scrollController.removeListener(_onScroll);
super.dispose();
@@ -1108,14 +1107,8 @@ class ChatListController extends State
MatrixState.pangeaController.initControllers();
if (mounted) {
SpaceCodeController.joinCachedSpaceCode(context);
- SpaceCodeController.codeNotifier.addListener(_onCacheSpaceCode);
}
}
-
- void _onCacheSpaceCode() {
- if (!mounted) return;
- SpaceCodeController.joinCachedSpaceCode(context);
- }
// Pangea#
void setActiveFilter(ActiveFilter filter) {
diff --git a/lib/pangea/join_codes/space_code_controller.dart b/lib/pangea/join_codes/space_code_controller.dart
index 1606f2792..e1590a130 100644
--- a/lib/pangea/join_codes/space_code_controller.dart
+++ b/lib/pangea/join_codes/space_code_controller.dart
@@ -13,7 +13,6 @@ import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pangea/join_codes/knock_space_extension.dart';
import 'package:fluffychat/pangea/join_codes/space_code_repo.dart';
import 'package:fluffychat/pangea/join_codes/too_many_requests_dialog.dart';
-import 'package:fluffychat/pangea/spaces/space_constants.dart';
import 'package:fluffychat/widgets/future_loading_dialog.dart';
import 'package:fluffychat/widgets/matrix.dart';
import '../common/controllers/base_controller.dart';
@@ -21,18 +20,6 @@ import '../common/controllers/base_controller.dart';
class NotFoundException implements Exception {}
class SpaceCodeController extends BaseController {
- static ValueNotifier codeNotifier = ValueNotifier(null);
-
- static Future onOpenAppViaUrl(Uri url) async {
- if (url.fragment.isEmpty) return;
- final fragment = Uri.parse(url.fragment);
- final code = fragment.queryParameters[SpaceConstants.classCode];
- if (code != null && fragment.path.contains('join_with_link')) {
- await SpaceCodeRepo.setSpaceCode(code);
- codeNotifier.value = code;
- }
- }
-
static Future joinCachedSpaceCode(BuildContext context) async {
final String? spaceCode = SpaceCodeRepo.spaceCode;
if (spaceCode == null) return null;
diff --git a/lib/widgets/matrix.dart b/lib/widgets/matrix.dart
index 78544c300..2f28d54f5 100644
--- a/lib/widgets/matrix.dart
+++ b/lib/widgets/matrix.dart
@@ -24,7 +24,6 @@ import 'package:fluffychat/pangea/analytics_data/analytics_data_service.dart';
import 'package:fluffychat/pangea/common/controllers/pangea_controller.dart';
import 'package:fluffychat/pangea/common/utils/any_state_holder.dart';
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
-import 'package:fluffychat/pangea/join_codes/space_code_controller.dart';
import 'package:fluffychat/pangea/languages/locale_provider.dart';
import 'package:fluffychat/pangea/user/style_settings_repo.dart';
import 'package:fluffychat/utils/client_manager.dart';
@@ -680,8 +679,14 @@ class MatrixState extends State with WidgetsBindingObserver {
// #Pangea
Future _processIncomingUris(Uri? uri) async {
- if (uri == null) return;
- await SpaceCodeController.onOpenAppViaUrl(uri);
+ if (uri == null || uri.fragment.isEmpty) return;
+
+ final path =
+ uri.fragment.startsWith('/') ? uri.fragment : '/${uri.fragment}';
+
+ WidgetsBinding.instance.addPostFrameCallback((_) {
+ FluffyChatApp.router.go(path);
+ });
}
// Pangea#
}