Example #1
0
        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;
        }
Example #2
0
		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();
		}
Example #3
0
		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;
		}
Example #4
0
        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();
        }