Update: 2026-06-10 02:44:54

This commit is contained in:
Hamza-Ayed
2026-06-10 02:44:55 +03:00
parent 9bc7a31c94
commit a0473a8b0f
134 changed files with 1706 additions and 544 deletions

View File

@@ -2,6 +2,8 @@ import 'package:siro_rider/print.dart';
import 'dart:async';
import 'package:app_links/app_links.dart';
import 'package:get/get.dart';
import '../../main.dart';
import 'profile/invites_rewards_controller.dart';
class DeepLinkController extends GetxController {
final _appLinks = AppLinks();
@@ -21,6 +23,7 @@ class DeepLinkController extends GetxController {
_linkSubscription = _appLinks.uriLinkStream.listen((uri) {
Log.print('🔗 Received deep link (Stream): $uri');
rawDeepLink.value = uri.toString();
_processInviteCode(uri);
});
// الاستماع للروابط إذا كان التطبيق مغلقاً تماماً (Cold Start)
@@ -29,15 +32,37 @@ class DeepLinkController extends GetxController {
if (initialUri != null) {
Log.print('🔗 Received initial deep link (Cold Start): $initialUri');
rawDeepLink.value = initialUri.toString();
_processInviteCode(initialUri);
}
} catch (e) {
Log.print('Error getting initial link: $e');
}
}
void _processInviteCode(Uri uri) {
if (uri.queryParameters.containsKey('inviteCode')) {
String? inviteCode = uri.queryParameters['inviteCode'];
if (inviteCode != null && inviteCode.isNotEmpty) {
// دائماً نخزن الكود حتى لو لم يكن مسجلاً، ليتم استخدامه بعد التسجيل
box.write('inviteCode', inviteCode);
// إذا كان المستخدم مسجل دخول (يمتلك JWT)، نربط الدعوة فوراً
if (box.read('jwt') != null) {
try {
var rewardsController = Get.find<InvitesRewardsController>();
rewardsController.linkInviteCode(inviteCode);
} catch (e) {
var rewardsController = Get.put(InvitesRewardsController());
rewardsController.linkInviteCode(inviteCode);
}
}
}
}
}
@override
void onClose() {
_linkSubscription?.cancel();
super.onClose();
}
}
}