public void UpdateFile(Telegram.Td.Api.File file) { foreach (MessageSender sender in ScrollingHost.Items) { if (ViewModel.CacheService.TryGetUser(sender, out User user) && user.UpdateFile(file)) { var container = ScrollingHost.ContainerFromItem(sender) as SelectorItem; if (container == null) { return; } var content = container.ContentTemplateRoot as Grid; var photo = content.Children[0] as ProfilePicture; photo.Source = PlaceholderHelper.GetUser(null, user, 36); } else if (ViewModel.CacheService.TryGetChat(sender, out Chat chat) && chat.UpdateFile(file)) { var container = ScrollingHost.ContainerFromItem(sender) as SelectorItem; if (container == null) { return; } var content = container.ContentTemplateRoot as Grid; var photo = content.Children[0] as ProfilePicture; photo.Source = PlaceholderHelper.GetChat(null, chat, 36); } } }
public void UpdateFile(Telegram.Td.Api.File file) { foreach (User user in ScrollingHost.Items) { if (user.UpdateFile(file)) { var container = ScrollingHost.ContainerFromItem(user) as SelectorItem; if (container == null) { return; } var content = container.ContentTemplateRoot as Grid; var photo = content.Children[0] as ProfilePicture; photo.Source = PlaceholderHelper.GetUser(null, user, 36); } } }
public void DownloadFile(MessageViewModel message, Telegram.Td.Api.File file) { }
public void UpdateFile(Telegram.Td.Api.File file) { var viewModel = ViewModel; if (viewModel == null) { return; } if (viewModel.Media != null && viewModel.Media.TryGetMessagesForFileId(file.Id, out IList <Message> messages)) { foreach (var message in messages) { message.UpdateFile(file); var container = ScrollingMedia.ContainerFromItem(message) as GridViewItem; if (container == null) { continue; } var content = container.ContentTemplateRoot as SimpleHyperlinkButton; if (content == null) { continue; } if (message.Content is MessagePhoto photo) { var small = photo.Photo.GetSmall(); if (small != null && small.Photo.Id == file.Id && file.Local.IsDownloadingCompleted) { var thumbnail = content.Content as Image; thumbnail.Source = PlaceholderHelper.GetBitmap(ViewModel.ProtoService, small.Photo, 0, 0); } } else if (message.Content is MessageVideo video) { var thumb = video.Video.Thumbnail; if (thumb != null && thumb.Photo.Id == file.Id && file.Local.IsDownloadingCompleted) { var grid = content.Content as Grid; var thumbnail = grid.Children[0] as Image; thumbnail.Source = PlaceholderHelper.GetBitmap(ViewModel.ProtoService, thumb.Photo, 0, 0); } } } if (file.Local.IsDownloadingCompleted && file.Remote.IsUploadingCompleted) { messages.Clear(); } } if (viewModel.Files != null && viewModel.Files.TryGetMessagesForFileId(file.Id, out messages)) { foreach (var message in messages) { message.UpdateFile(file); var container = ScrollingFiles.ContainerFromItem(message) as ListViewItem; if (container == null) { continue; } var document = message.GetFile(); var content = container.ContentTemplateRoot as SharedFileCell; if (document == null || content == null) { continue; } if (file.Id == document.Id) { content.UpdateFile(message, file); } } } if (viewModel.Music != null && viewModel.Music.TryGetMessagesForFileId(file.Id, out messages)) { foreach (var message in messages) { message.UpdateFile(file); var container = ScrollingMusic.ContainerFromItem(message) as ListViewItem; if (container == null) { continue; } var document = message.GetFile(); var content = container.ContentTemplateRoot as SharedFileCell; if (document == null || content == null) { continue; } if (file.Id == document.Id) { content.UpdateFile(message, file); } } } if (viewModel.Voice != null && viewModel.Voice.TryGetMessagesForFileId(file.Id, out messages)) { foreach (var message in messages) { message.UpdateFile(file); var container = ScrollingVoice.ContainerFromItem(message) as ListViewItem; if (container == null) { continue; } var document = message.GetFile(); var content = container.ContentTemplateRoot as SharedFileCell; if (document == null || content == null) { continue; } if (file.Id == document.Id) { content.UpdateFile(message, file); } } } }