Example #1
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 #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();
        }