async void btnAuthenticate_Click(object sender, EventArgs e) { Button btnSender = sender as Button; if (btnSender.Text == "Sign In") { btnSender.Enabled = false; await Office365Service.EnsureClientCreated(this); myContacts = await Office365Service.GetMyContacts(); myContactsAdapter.AddAll(myContacts); myContactsAdapter.NotifyDataSetChanged(); btnSender.Text = "Sign Out"; btnSender.Enabled = true;; } else { myContacts.Clear(); myContactsAdapter.Clear(); myContactsAdapter.NotifyDataSetChanged(); Office365Service.SignOut(this); btnSender.Text = "Sign In"; } }
public override View GetView(int position, View convertView, ViewGroup parent) { MyContact myContactItem = this.GetItem(position); View row = convertView; if (row == null) { row = LayoutInflater.FromContext(this.Context).Inflate(Resource.Layout.ContactListItem, parent, false); } var contactNameElement = row.FindViewById <TextView>(Resource.Id.ContactName); contactNameElement.Text = myContactItem.Name; var contactEmailElement = row.FindViewById <TextView>(Resource.Id.ContactEmail); contactEmailElement.Text = myContactItem.Email; Task.Run(async() => { Bitmap bitmap = null; var contactPictureElement = row.FindViewById <ImageView>(Resource.Id.ContactPicture); byte[] bytesContactPicture = await Office365Service.GetContactPicture(myContactItem.Id); if (bytesContactPicture.Length > 0) { bitmap = await BitmapFactory.DecodeByteArrayAsync(bytesContactPicture, 0, bytesContactPicture.Length); SetBitmapSafe(bitmap, contactPictureElement); } else { var galUser = await Office365Service.GetUser(myContactItem.Email); try { if (galUser != null) { using (var stream = (await galUser.ThumbnailPhoto.DownloadAsync()).Stream) { bitmap = await BitmapFactory.DecodeStreamAsync(stream); SetBitmapSafe(bitmap, contactPictureElement); } } } catch (Exception) { } } }); return(row); }