//CONTACTS METHODS----------------------------------------------------------------------- private async void GetContacts() { HomeListView.BeginRefresh(); IList <Contact> contacts = await Plugin.ContactService.CrossContactService.Current.GetContactListAsync(); List <CustomContact> customContacts = new List <CustomContact>(); Dictionary <string, string> phoneToNameDict = new Dictionary <string, string>(); foreach (Contact contact in contacts) { customContacts.Add(new CustomContact( contact, "Offline", new Command(() => { MainThread.BeginInvokeOnMainThread(() => { Navigation.PushAsync(new ChatPage(contact.Name, contact.Number)); }); }) //Navigation.PushAsync(new ChatPage(contacts[i].Name, contacts[i].Number))) )); int customContactNo = contacts.IndexOf(contact); //if (customContacts[contacts.IndexOf(contact)].Number != null) if (!phoneToNameDict.ContainsKey(customContacts[customContactNo].Number.Replace(" ", "").Trim())) { phoneToNameDict.Add(customContacts[customContactNo].Number.Replace(" ", "").Trim(), contact.Name); } } PhoneContacts.PhoneToNameDict = phoneToNameDict; PhoneContacts.AllCustomContacts = customContacts; HomeListView.ItemsSource = customContacts; HomeListView.EndRefresh(); }
private async void RefreshContacts() { HomeListView.BeginRefresh(); List <string> contactsArray = new List <string>(); var contacts = PhoneContacts.AllCustomContacts; foreach (Contact contact in contacts) { contactsArray.Add(contact.Number.Replace(" ", "").Trim()); } int[] contactCodes = await Services.ChatClient.ConsultAllContactsState(contactsArray.ToArray()); List <CustomContact> newCustomContacts = contacts; for (int i = 0; i < contacts.Count; i++) { newCustomContacts[i].PlayingState = Constants.AppConstants.userStateDict[contactCodes[i]]; } PhoneContacts.AllCustomContacts = newCustomContacts; HomeListView.ItemsSource = null; HomeListView.ItemsSource = newCustomContacts.OrderByDescending(item => item.PlayingState); HomeListView.EndRefresh(); }
protected override void OnAppearing() { base.OnAppearing(); if (HomeListView != null) { HomeListView.ClearValue(ListView.SelectedItemProperty); } }