-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMainPage.xaml.cs
75 lines (65 loc) · 2.5 KB
/
MainPage.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// Copyright (c) Microsoft. All rights reserved.
using Dropbox.Api;
using Dropbox.Api.Files;
using System;
using System.IO;
using Windows.ApplicationModel;
using Windows.Devices.Gpio;
using Windows.Media.Capture;
using Windows.Media.MediaProperties;
using Windows.Storage;
using Windows.Storage.Streams;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
namespace BigBrotherIsHere
{
public sealed partial class MainPage : Page
{
public MainPage()
{
InitializeComponent();
DispatcherTimer t = new DispatcherTimer();
t.Interval = TimeSpan.FromSeconds(60 * 10); //10 minutes
t.Tick += Timer_Tick;
t.Start();
}
private void Timer_Tick(object sender, object e)
{
TakePhoto();
}
private async void TakePhoto()
{
try
{
//var filename = DateTime.Now.ToString();
var filename = DateTime.Now.ToString("o").Replace(":", "-") + ".jpg";
var photoFile = await KnownFolders.PicturesLibrary.CreateFileAsync(
filename, CreationCollisionOption.GenerateUniqueName);
ImageEncodingProperties imageProperties = ImageEncodingProperties.CreateJpeg();
var mediaCapture = new MediaCapture();
await mediaCapture.InitializeAsync();
await mediaCapture.CapturePhotoToStorageFileAsync(imageProperties, photoFile);
var secretsFile = await Package.Current.InstalledLocation.GetFileAsync("Assets\\dropbox.secret");
var secret = await Windows.Storage.FileIO.ReadTextAsync(secretsFile);
using (IRandomAccessStream photoStream = await photoFile.OpenReadAsync())
{
using (var dbx = new DropboxClient(secret))
{
var updated = await dbx.Files.UploadAsync(
"/" + filename,
WriteMode.Overwrite.Instance,
body: photoStream.AsStream());
}
}
await photoFile.DeleteAsync(StorageDeleteOption.PermanentDelete);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}
}
}