some code cleanup

This commit is contained in:
2020-09-08 21:38:45 +03:00
parent 5b74a46b2b
commit 3b95910d1e
2 changed files with 49 additions and 78 deletions

View File

@@ -82,7 +82,7 @@ namespace PomoTime
rootFrame.Navigate(typeof(MainPage), args["action"]); rootFrame.Navigate(typeof(MainPage), args["action"]);
} else } else
{ {
rootFrame.Navigate(typeof(MainPage), null); rootFrame.Navigate(typeof(MainPage), "nothing");
} }
Window.Current.Activate(); Window.Current.Activate();

View File

@@ -36,7 +36,6 @@ namespace PomoTime
private const int DefaultLongBreakMinutes = 15; private const int DefaultLongBreakMinutes = 15;
ThreadPoolTimer Timer; ThreadPoolTimer Timer;
private DateTime SuspendTime;
private int _work_minutes; private int _work_minutes;
private int BreakMinutes { get; set; } private int BreakMinutes { get; set; }
private int WorkMinutes private int WorkMinutes
@@ -73,40 +72,16 @@ namespace PomoTime
ApplicationDataContainer roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings; ApplicationDataContainer roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
Windows.Storage.ApplicationDataCompositeValue minutes = (ApplicationDataCompositeValue)roamingSettings.Values["Minutes"]; Windows.Storage.ApplicationDataCompositeValue minutes = (ApplicationDataCompositeValue)roamingSettings.Values["Minutes"];
if (minutes != null) if (minutes == null)
{ {
if (minutes["WorkMinutes"] != null) minutes = new Windows.Storage.ApplicationDataCompositeValue();
{ minutes["WorkMinutes"] = DefaultWorkMinutes;
WorkMinutes = (int)minutes["WorkMinutes"]; minutes["BreakMinutes"] = DefaultBreakMinutes;
} minutes["LongBreakMinutes"] = DefaultLongBreakMinutes;
else
{
WorkMinutes = DefaultWorkMinutes;
}
if (minutes["BreakMinutes"] != null)
{
BreakMinutes = (int)minutes["BreakMinutes"];
}
else
{
BreakMinutes = DefaultBreakMinutes;
}
if (minutes["LongBreakMinutes"] != null)
{
LongBreakMinutes = (int)minutes["LongBreakMinutes"];
}
else
{
LongBreakMinutes = DefaultLongBreakMinutes;
}
}
else
{
// Some maigc defualt numbers
WorkMinutes = DefaultWorkMinutes;
BreakMinutes = DefaultBreakMinutes;
LongBreakMinutes = DefaultLongBreakMinutes;
} }
WorkMinutes = (int)minutes["WorkMinutes"];
BreakMinutes = (int)minutes["BreakMinutes"];
LongBreakMinutes = (int)minutes["LongBreakMinutes"];
} }
void PlusSecond() void PlusSecond()
@@ -279,6 +254,7 @@ namespace PomoTime
MainViewRunningState.CurrentPeriod = Period.Work; MainViewRunningState.CurrentPeriod = Period.Work;
MainViewRunningState.MinutesLeft = WorkMinutes; MainViewRunningState.MinutesLeft = WorkMinutes;
MainViewRunningState.SecondsLeft = 0; MainViewRunningState.SecondsLeft = 0;
MainViewRunningState.PreviousShortBreaks = 0;
RescheduleNotification(); RescheduleNotification();
} }
@@ -324,7 +300,7 @@ namespace PomoTime
private void SaveLocalState() private void SaveLocalState()
{ {
ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
SuspendTime = DateTime.Now; DateTime SuspendTime = DateTime.Now;
localSettings.Values["SuspendTime"] = SuspendTime.Ticks; localSettings.Values["SuspendTime"] = SuspendTime.Ticks;
localSettings.Values["StartTime"] = MainViewRunningState.StartTime.Ticks; localSettings.Values["StartTime"] = MainViewRunningState.StartTime.Ticks;
localSettings.Values["MinutesLeft"] = MainViewRunningState.MinutesLeft; localSettings.Values["MinutesLeft"] = MainViewRunningState.MinutesLeft;
@@ -341,17 +317,27 @@ namespace PomoTime
roamingSettings.Values["Minutes"] = minutes; roamingSettings.Values["Minutes"] = minutes;
} }
private void FastForwardTime(DateTime since) private void FastForwardTime()
{ {
TimeSpan TimeFromSuspend = DateTime.Now - since; ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
if (localSettings.Values["SuspendTime"] == null)
{
return;
}
DateTime SuspendTime = new DateTime((long)localSettings.Values["SuspendTime"]);
TimeSpan TimeFromSuspend = DateTime.Now - SuspendTime;
if (TimeFromSuspend.TotalMilliseconds <= 0) if (TimeFromSuspend.TotalMilliseconds <= 0)
{ {
return; return;
} }
if (!MainViewRunningState.IsRunning) if (!MainViewRunningState.IsRunning)
{ {
return; return;
} }
if (TimeFromSuspend.TotalSeconds >= MainViewRunningState.MinutesLeft * 60 + MainViewRunningState.SecondsLeft) if (TimeFromSuspend.TotalSeconds >= MainViewRunningState.MinutesLeft * 60 + MainViewRunningState.SecondsLeft)
{ {
MainViewRunningState.IsRunning = false; MainViewRunningState.IsRunning = false;
@@ -374,14 +360,7 @@ namespace PomoTime
private void OnResuming(object sender, Object e) private void OnResuming(object sender, Object e)
{ {
ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; FastForwardTime();
if (localSettings.Values["SuspendTime"] != null)
{
StopTimer();
SuspendTime = new DateTime((long)localSettings.Values["SuspendTime"]);
FastForwardTime(SuspendTime);
StartTimer();
}
SaveLocalState(); SaveLocalState();
} }
@@ -429,6 +408,9 @@ namespace PomoTime
MainViewRunningState.IsRunning = (bool)localSettings.Values["IsRunning"]; MainViewRunningState.IsRunning = (bool)localSettings.Values["IsRunning"];
MainViewRunningState.PreviousShortBreaks = (int)localSettings.Values["PreviousShortBreaks"]; MainViewRunningState.PreviousShortBreaks = (int)localSettings.Values["PreviousShortBreaks"];
MainViewRunningState.CurrentPeriod = (Period)localSettings.Values["CurrentPeriod"]; MainViewRunningState.CurrentPeriod = (Period)localSettings.Values["CurrentPeriod"];
} else
{
Reset();
} }
} }
@@ -436,45 +418,34 @@ namespace PomoTime
{ {
base.OnNavigatedTo(e); base.OnNavigatedTo(e);
string action = (string)e.Parameter; string action = (string)e.Parameter;
StopTimer();
ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; LoadRunningState();
if (localSettings.Values["SuspendTime"] != null) FastForwardTime();
if (action != null)
{ {
SuspendTime = new DateTime((long)localSettings.Values["SuspendTime"]); switch (action)
LoadRunningState();
if(action != null)
{ {
switch (action) case "5minutes":
{ MainViewRunningState.MinutesLeft = 5;
case "5minutes": MainViewRunningState.SecondsLeft = 0;
MainViewRunningState.MinutesLeft = 5; MainViewRunningState.IsRunning = true;
MainViewRunningState.SecondsLeft = 0; break;
MainViewRunningState.IsRunning = true; case "continue":
break; MainViewRunningState.MinutesLeft = 0;
case "continue": MainViewRunningState.SecondsLeft = 0;
MainViewRunningState.MinutesLeft = 0; // Onto the next period
MainViewRunningState.SecondsLeft = 0; PlusSecond();
// Onto the next period MainViewRunningState.IsRunning = true;
PlusSecond(); break;
MainViewRunningState.IsRunning = true; case "nothing":
break; MainViewRunningState.MinutesLeft = 0;
MainViewRunningState.SecondsLeft = 0;
} MainViewRunningState.IsRunning = false;
} else break;
{
FastForwardTime(SuspendTime);
} }
} }
else
{
Reset();
SaveLocalState();
}
StartTimer();
RescheduleNotification(); RescheduleNotification();
} }