PhotoVM.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System;
  2. using System.Diagnostics;
  3. using Windows.UI.Xaml;
  4. using Windows.UI.Xaml.Media;
  5. using Windows.UI.Xaml.Media.Imaging;
  6. namespace YJMPD_UWP.ViewModels
  7. {
  8. public class PhotoVM : TemplateVM
  9. {
  10. DispatcherTimer timer;
  11. int secondsleft = 60;
  12. public PhotoVM() : base("Photo")
  13. {
  14. timer = new DispatcherTimer();
  15. timer.Interval = TimeSpan.FromSeconds(1);
  16. timer.Tick += Timer_Tick;
  17. timer.Start();
  18. App.Photo.OnStatusUpdate += Photo_OnStatusUpdate;
  19. }
  20. private void Photo_OnStatusUpdate(object sender, Helpers.EventArgs.PhotoStatusUpdatedEventArgs e)
  21. {
  22. dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
  23. {
  24. if (e.Status == Model.PhotoHandler.PhotoStatus.NOPHOTO && App.Game.Status == Model.GameHandler.GameStatus.WAITING)
  25. timer.Start();
  26. else
  27. {
  28. timer.Stop();
  29. }
  30. });
  31. }
  32. private void Timer_Tick(object sender, object e)
  33. {
  34. NotifyPropertyChanged(nameof(TimeOut));
  35. Debug.WriteLine("Testing");
  36. secondsleft--;
  37. if(secondsleft <= 0)
  38. {
  39. timer.Stop();
  40. secondsleft = 60;
  41. App.Game.StopGame();
  42. }
  43. }
  44. public string TimeOut
  45. {
  46. get
  47. {
  48. return "Take a photo within " + secondsleft + " seconds";
  49. }
  50. }
  51. }
  52. }