private void StartMedia(CachedMediaBlob blob, Snap snap) { SystemTray.IsVisible = ApplicationBar.IsVisible = false; ScrollViewer.VerticalScrollBarVisibility = ScrollBarVisibility.Disabled; MediaContainer.Visibility = Visibility.Visible; var blobData = blob.RetrieveBlobData(); MediaCountdownTimer.DataContext = snap; switch (blob.BlobMediaType) { case MediaType.FriendRequestImage: case MediaType.Image: MediaViewerImage.Source = blobData as BitmapImage; break; case MediaType.Video: case MediaType.VideoNoAudio: case MediaType.FriendRequestVideo: case MediaType.FriendRequestVideoNoAudio: MediaViewerVideo.SetSource(blobData as IsolatedStorageFileStream); var leSnap = App.IsolatedStorage.UserAccount.Snaps.FirstOrDefault(s => s.Id == snap.Id); if (leSnap != null) { leSnap.CaptureTime = 69; } break; } _mediaIsBeingDisplayed = true; }
private async void ButtonSnap_Click(object sender, RoutedEventArgs e) { if (_mediaIsBeingDisplayed) { EndMedia(); return; } var button = sender as Button; if (button == null || button.Tag == null) return; var snap = button.Tag as Snap; if (snap == null) return; if (snap.Status == SnapStatus.Downloading) return; if (snap.HasMedia && snap.RecipientName == null && snap.Status == SnapStatus.Opened) { // show media, in advanced page return; } var username = App.IsolatedStorage.UserAccount.UserName; var authToken = App.IsolatedStorage.UserAccount.AuthToken; if (snap.HasMedia || snap.RecipientName != null || snap.Status != SnapStatus.Delivered) return; snap.Status = SnapStatus.Downloading; UpdateBindings(); var blob = await Functions.GetBlob(snap.Id, username, authToken); var cachedBlob = new CachedMediaBlob { BlobMediaType = snap.MediaType, Id = snap.Id }; cachedBlob.SetLocalFileBytes(blob); App.IsolatedStorage.CachedMediaBlobs.Add(cachedBlob); App.IsolatedStorage.CachedMediaBlobs = App.IsolatedStorage.CachedMediaBlobs; var openedAt = DateTime.UtcNow; App.IsolatedStorage.UserAccount.Snaps.First(s => s.Id == snap.Id).OpenedAt = openedAt; snap.Status = SnapStatus.Delivered; UpdateBindings(); if (snap.CaptureTime == null) return; SetProgress("Syncing with Snapchat..."); //await Core.Snapchat.Functions.SendViewedEvent(snap.Id, // Core.Snapchat.Helpers.Timestamps.ConvertToUnixTimestamp(openedAt), (int)snap.CaptureTime, username, // authToken); //App.IsolatedStorage.UserAccountUpdate(await Core.Snapchat.Functions.Update(username, authToken)); //UpdateBindings(); HideProgress(); }
private void StartMedia(CachedMediaBlob blob, Snap snap) { SystemTray.IsVisible = ApplicationBar.IsVisible = false; ScrollViewer.VerticalScrollBarVisibility = ScrollBarVisibility.Disabled; MediaContainer.Visibility = Visibility.Visible; var blobData = blob.RetrieveBlobData(); MediaCountdownTimer.DataContext = snap; switch (blob.BlobMediaType) { case MediaType.FriendRequestImage: case MediaType.Image: MediaViewerImage.Source = blobData as BitmapImage; break; case MediaType.Video: case MediaType.VideoNoAudio: case MediaType.FriendRequestVideo: case MediaType.FriendRequestVideoNoAudio: MediaViewerVideo.SetSource(blobData as IsolatedStorageFileStream); var leSnap = App.IsolatedStorage.UserAccount.Snaps.FirstOrDefault(s => s.Id == snap.Id); if (leSnap != null) leSnap.CaptureTime = 69; break; } _mediaIsBeingDisplayed = true; }
private async void ButtonSnap_Click(object sender, RoutedEventArgs e) { if (_mediaIsBeingDisplayed) { EndMedia(); return; } var button = sender as Button; if (button == null || button.Tag == null) { return; } var snap = button.Tag as Snap; if (snap == null) { return; } if (snap.Status == SnapStatus.Downloading) { return; } if (snap.HasMedia && snap.RecipientName == null && snap.Status == SnapStatus.Opened) { // show media, in advanced page return; } var username = App.IsolatedStorage.UserAccount.UserName; var authToken = App.IsolatedStorage.UserAccount.AuthToken; if (snap.HasMedia || snap.RecipientName != null || snap.Status != SnapStatus.Delivered) { return; } snap.Status = SnapStatus.Downloading; UpdateBindings(); var blob = await Functions.GetBlob(snap.Id, username, authToken); var cachedBlob = new CachedMediaBlob { BlobMediaType = snap.MediaType, Id = snap.Id }; cachedBlob.SetLocalFileBytes(blob); App.IsolatedStorage.CachedMediaBlobs.Add(cachedBlob); App.IsolatedStorage.CachedMediaBlobs = App.IsolatedStorage.CachedMediaBlobs; var openedAt = DateTime.UtcNow; App.IsolatedStorage.UserAccount.Snaps.First(s => s.Id == snap.Id).OpenedAt = openedAt; snap.Status = SnapStatus.Delivered; UpdateBindings(); if (snap.CaptureTime == null) { return; } SetProgress("Syncing with Snapchat..."); //await Core.Snapchat.Functions.SendViewedEvent(snap.Id, // Core.Snapchat.Helpers.Timestamps.ConvertToUnixTimestamp(openedAt), (int)snap.CaptureTime, username, // authToken); //App.IsolatedStorage.UserAccountUpdate(await Core.Snapchat.Functions.Update(username, authToken)); //UpdateBindings(); HideProgress(); }