feat: make deeplinks work for public course preview page (#5540)
This commit is contained in:
parent
671317d642
commit
cf2148d9b6
5 changed files with 10 additions and 25 deletions
|
|
@ -134,7 +134,7 @@
|
|||
|
||||
<meta-data
|
||||
android:name="flutter_deeplinking_enabled"
|
||||
android:value="true" />
|
||||
android:value="false" />
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
|
|
|
|||
|
|
@ -122,6 +122,6 @@
|
|||
<key>io.flutter.embedded_views_preview</key>
|
||||
<true/>
|
||||
<key>FlutterDeepLinkingEnabled</key>
|
||||
<true/>
|
||||
<false/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
|||
|
|
@ -696,7 +696,6 @@ class ChatListController extends State<ChatList>
|
|||
_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<ChatList>
|
|||
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) {
|
||||
|
|
|
|||
|
|
@ -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<String?> codeNotifier = ValueNotifier<String?>(null);
|
||||
|
||||
static Future<void> 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<String?> joinCachedSpaceCode(BuildContext context) async {
|
||||
final String? spaceCode = SpaceCodeRepo.spaceCode;
|
||||
if (spaceCode == null) return null;
|
||||
|
|
|
|||
|
|
@ -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<Matrix> with WidgetsBindingObserver {
|
|||
|
||||
// #Pangea
|
||||
Future<void> _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#
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue