This commit is contained in:
Hamza-Ayed
2024-07-31 21:19:19 +03:00
parent dea83d970c
commit 2bc71355c3
106 changed files with 4600 additions and 727 deletions

View File

@@ -1,14 +1,18 @@
import 'dart:convert';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/links.dart';
import 'package:SEFER/controller/functions/crud.dart';
import 'package:SEFER/controller/home/payment/captain_wallet_controller.dart';
import 'package:SEFER/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart';
import 'package:flutter_contacts/contact.dart';
import 'package:flutter_contacts/flutter_contacts.dart';
import 'package:get/get.dart';
import '../../../main.dart';
import '../../../print.dart';
import '../../functions/launch.dart';
import '../../notification/notification_captain_controller.dart';
@@ -38,6 +42,40 @@ class InviteController extends GetxController {
}
}
Future<void> pickContact() async {
try {
print('Requesting contact permission...');
if (await FlutterContacts.requestPermission(readonly: true)) {
print('Permission granted. Opening external contact picker...');
final Contact? contact = await FlutterContacts.openExternalPick();
if (contact != null) {
print('Contact picked: ${contact.displayName}');
if (contact.phones.isNotEmpty) {
print('Phone number found: ${contact.phones.first.number}');
invitePhoneController.text = contact.phones.first.number;
update();
} else {
print('Selected contact has no phone number.');
Get.snackbar('No phone number'.tr,
'The selected contact does not have a phone number.'.tr);
}
} else {
print('No contact selected or picker was cancelled.');
Get.snackbar('No contact selected'.tr, 'Please select a contact'.tr);
}
} else {
print('Permission denied by user or system.');
Get.snackbar('Permission denied'.tr,
'Contact permission is required to pick a contact'.tr);
}
} catch (e) {
print('Error picking contact: $e');
print('Stack trace: ${StackTrace.current}');
Get.snackbar(
'Error'.tr, 'An error occurred while picking a contact: $e'.tr);
}
}
void onSelectDriverInvitation(int index) async {
MyDialog().getDialog(
driverInvitationData[index]['countOfInvitDriver'] < 100
@@ -89,7 +127,7 @@ class InviteController extends GetxController {
"driverId": box.read(BoxName.driverID),
"inviterDriverPhone": '+2${invitePhoneController.text}'
});
Log.print('response: ${response}');
if (response != 'failure') {
var d = jsonDecode(response);
Get.snackbar('Success', 'Invite sent successfully'.tr);
@@ -109,7 +147,9 @@ class InviteController extends GetxController {
invitePhoneController.clear();
} else {
Get.snackbar('Error', 'Failed to send invite'.tr);
Get.snackbar('Error'.tr, "Invite code already used".tr,
backgroundColor: AppColor.redColor,
duration: const Duration(seconds: 4));
}
// } catch (e) {
// print('Error sending invite: $e');