xCMD_AddFromRubrica method
Comando per Aggiungere un contatto dalla Rubrica
Implementation
Future<Contact?> xCMD_AddFromRubrica(List<Contact> listContact) async {
PermissionStatus permission = await Permission.contacts.status;
if (permission != PermissionStatus.granted && permission != PermissionStatus.permanentlyDenied) {
PermissionStatus permissionStatus = await Permission.contacts.request();
print(permissionStatus);
} else
print(permission);
if (listContact.isEmpty) {
var res = await ContactsService.getContacts();
listContact.addAll(res);
}
Contact? xclContatto;
var x = await showDialog<Contact>(
context: context,
builder: (context) {
return StatefulBuilder(
builder: (context, setState) {
return XAlertDialog(
title_Text: "Scegli il contatto dalla tua RUBRICA:",
height: null,
content_VerticalPadding: 30,
child: XDropSearch<Contact>(
dropDownMode: "Dialog",
al_Title: "",
al_BackGroundColor: Colors.grey[900],
itemSelected: xclContatto,
liItems: listContact.where((element) => element.phones!.isNotEmpty).toList(),
label: "",
itemAsString: (p0) => (p0.givenName ?? "") + " " + (p0.familyName ?? ""),
onChanged_ItemOfDD: (contact) => setState(() => xclContatto = contact),
),
actionsBTNarea_Child: Row(children: [
Expanded(
child: XBtnbase(
label: "Annulla",
onPressed: () => Navigator.pop(context, null),
label_Style: XStyles.xStyTextForSubLabel(textColor: XColors.undo),
)),
xclContatto != null
? Expanded(
child: XBtnbase(
label: "Avanti",
onPressed: () => Navigator.pop(context, xclContatto),
label_Style: XStyles.xStyTextForSubLabel(textColor: XColors.done),
))
: Container()
]));
},
);
});
if (x != null && xclContatto != null)
return xclContatto;
else
return null;
}