private void UpdatePlayback(MessageViewModel message, Audio audio, File file) { if (message.IsEqualTo(message.PlaybackService.CurrentItem)) { if (message.PlaybackService.PlaybackState == MediaPlaybackState.Paused) { Button.SetGlyph(file.Id, MessageContentState.Play); } else { Button.SetGlyph(file.Id, MessageContentState.Pause); } UpdatePosition(); message.PlaybackService.PlaybackStateChanged += OnPlaybackStateChanged; message.PlaybackService.PositionChanged += OnPositionChanged; } else { Button.SetGlyph(file.Id, MessageContentState.Play); Button.Progress = 1; if (file.Local.CanBeDownloaded && !file.Local.IsFileExisting() && !file.Local.IsDownloadingActive && !file.Remote.IsUploadingActive) { Subtitle.Text = audio.GetDuration() + " - " + FileSizeConverter.Convert(Math.Max(file.Size, file.ExpectedSize)); } else { Subtitle.Text = audio.GetDuration(); } } Button.Progress = 1; }
private void Button_Click(object sender, RoutedEventArgs e) { if (SettingsService.Current.IsStreamingEnabled) { } else { Download_Click(null, null); return; } var audio = GetContent(_message?.Content); if (audio == null) { return; } var file = audio.AudioValue; if (file.Remote.IsUploadingActive || _message.SendingState is MessageSendingStateFailed) { _message.ProtoService.Send(new DeleteMessages(_message.ChatId, new[] { _message.Id }, true)); } else if (_message.IsEqualTo(_message.PlaybackService.CurrentItem)) { if (_message.PlaybackService.PlaybackState == MediaPlaybackState.Paused) { _message.PlaybackService.Play(); } else { _message.PlaybackService.Pause(); } } else { _message.Delegate.PlayMessage(_message); } }
private void Button_Click(object sender, RoutedEventArgs e) { var voiceNote = GetContent(_message?.Content); if (voiceNote == null) { return; } var file = voiceNote.Voice; if (file.Local.IsDownloadingActive) { _message.ProtoService.CancelDownloadFile(file.Id); } else if (file.Remote.IsUploadingActive || _message.SendingState is MessageSendingStateFailed) { _message.ProtoService.Send(new DeleteMessages(_message.ChatId, new[] { _message.Id }, true)); } else if (file.Local.CanBeDownloaded && !file.Local.IsDownloadingActive && !file.Local.IsFileExisting()) { _message.Delegate.PlayMessage(_message); } else { if (_message.IsEqualTo(_message.PlaybackService.CurrentItem)) { if (_message.PlaybackService.PlaybackState == MediaPlaybackState.Paused) { _message.PlaybackService.Play(); } else { _message.PlaybackService.Pause(); } } else { _message.Delegate.PlayMessage(_message); } } }
private void UpdateFile(MessageViewModel message, File file) { message.PlaybackService.PlaybackStateChanged -= OnPlaybackStateChanged; message.PlaybackService.PositionChanged -= OnPositionChanged; var voiceNote = GetContent(message.Content); if (voiceNote == null || !_templateApplied) { return; } else if (voiceNote.Voice.Id != file.Id) { return; } var size = Math.Max(file.Size, file.ExpectedSize); if (file.Local.IsDownloadingActive) { //Button.Glyph = Icons.Cancel; Button.SetGlyph(file.Id, MessageContentState.Downloading); Button.Progress = (double)file.Local.DownloadedSize / size; } else if (file.Remote.IsUploadingActive || message.SendingState is MessageSendingStateFailed) { //Button.Glyph = Icons.Cancel; Button.SetGlyph(file.Id, MessageContentState.Uploading); Button.Progress = (double)file.Remote.UploadedSize / size; } else if (file.Local.CanBeDownloaded && !file.Local.IsFileExisting()) { //Button.Glyph = Icons.Download; Button.SetGlyph(file.Id, MessageContentState.Download); Button.Progress = 0; if (message.Delegate.CanBeDownloaded(voiceNote, file)) { _message.ProtoService.DownloadFile(file.Id, 32); } else { UpdateDuration(); } } else { if (message.IsEqualTo(message.PlaybackService.CurrentItem)) { if (message.PlaybackService.PlaybackState == MediaPlaybackState.Paused) { //Button.Glyph = Icons.Play; Button.SetGlyph(file.Id, MessageContentState.Play); } else { //Button.Glyph = Icons.Pause; Button.SetGlyph(file.Id, MessageContentState.Pause); } UpdatePosition(); message.PlaybackService.PlaybackStateChanged += OnPlaybackStateChanged; message.PlaybackService.PositionChanged += OnPositionChanged; } else { //Button.Glyph = Icons.Play; Button.SetGlyph(file.Id, MessageContentState.Play); UpdateDuration(); } Button.Progress = 1; } }