// import 'package:flutter/cupertino.dart'; // import 'package:flutter_contacts/flutter_contacts.dart'; // import 'package:get/get.dart'; // import 'package:permission_handler/permission_handler.dart'; // import 'package:uco_mobile_poc_project/app/core/constants/app_contants.dart'; // import 'package:uco_mobile_poc_project/app/core/constants/translation_keys.dart'; // import 'package:uco_mobile_poc_project/app/core/dialogs/custom_loading.dart'; // import 'package:uco_mobile_poc_project/app/custom_widgets/Fields/input_field.dart'; // import 'package:uco_mobile_poc_project/app/custom_widgets/custom_toasty.dart'; // // class ContactsScreenController extends GetxController { // static TextEditingController phoneController = TextEditingController(); // Contact? selectedContact; // // List contactsList = []; // RxList filteredContacts = [].obs; // // late InputField searchContacts; // // @override // void onInit() { // super.onInit(); // _loadContacts(); // } // // @override // onReady() { // super.onReady(); // // searchContacts.controller?.addListener(() { // // if (searchContacts.getCustomText().isEmpty) { // // filteredContacts.assignAll(contactsList); // // } else { // // filteredContacts.value = contactsList.where((element) => element.name.first == searchContacts.getCustomText() || element.name.last == searchContacts.getCustomText()).toList(); // // } // // }); // } // // Future _loadContacts() async { // /// Check if the app has permission to access contacts // var status = await Permission.contacts.status; // // showLoader(); // if (status.isGranted) { // /// Permission is granted, load contacts // try { // contactsList = await FlutterContacts.getContacts(withProperties: true, withAccounts: true, withPhoto: true, sorted: true, withThumbnail: true); // filteredContacts.assignAll(contactsList); // hideLoader(); // } catch (e) { // print('Error loading contacts: $e'); // hideLoader(); // } // } else { // /// Permission is not granted, request permission // await _requestPermissions(); // hideLoader(); // } // hideLoader(); // } // // Future _requestPermissions() async { // /// Request contacts permission // var status = await Permission.contacts.request(); // if (!status.isGranted) { // Toasty.error(TranslationKeys.makeTranslation(TranslationKeys.textPermissionDenied)); // } else { // /// Permission granted, load contacts // await _loadContacts(); // } // } // // /// Function to filter contacts based on search query // void filterContacts(String searchText) { // if (searchText.isEmpty) { // filteredContacts.assignAll(contactsList); // } else { // searchText = searchText.toLowerCase(); // filteredContacts.assignAll(contactsList.where((contact) { // // Check if either name or phone number matches the search text // bool matchesName = contact.name.first.toLowerCase().contains(searchText) || // (contact.name.last != null && contact.name.last!.toLowerCase().contains(searchText)); // // bool matchesPhoneNumber = false; // for (var number in contact.phones) { // if (number.number.toLowerCase().contains(searchText)) { // matchesPhoneNumber = true; // break; // } // } // // return matchesName || matchesPhoneNumber; // }).toList()); // } // } // /// Phone number pattern // String flattenPhoneNumber(String phoneStr) { // return phoneStr.replaceAllMapped(RegExp(r'^(\+)|\D'), (Match m) { // return m[0] == "+" ? "+" : ""; // }); // } // // void handleContactSelection(Contact selectedContact) { // Get.back(result: {AppConstants.SELECTED_CONTACT: selectedContact}); // } // // }