diff --git a/Pom.xcodeproj/project.pbxproj b/Pom.xcodeproj/project.pbxproj index 2d359c3..d850c5b 100644 --- a/Pom.xcodeproj/project.pbxproj +++ b/Pom.xcodeproj/project.pbxproj @@ -214,7 +214,6 @@ GCC_PREPROCESSOR_DEFINITIONS = "XCODE=1"; HEADER_SEARCH_PATHS = ( "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, include/, ); PRODUCT_NAME = Pom; @@ -230,7 +229,6 @@ ); HEADER_SEARCH_PATHS = ( "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, include/, ); PRODUCT_NAME = Pom; diff --git a/appinfo.json b/appinfo.json index 8a6f0c6..7ae882c 100644 --- a/appinfo.json +++ b/appinfo.json @@ -3,8 +3,8 @@ "shortName": "PblPom", "longName": "PblPom", "companyName": "Partlyhuman", - "versionCode": 2.4, - "versionLabel": "2.4", + "versionCode": 2.5, + "versionLabel": "2.5", "watchapp": { "watchface": false }, diff --git a/build/pbl_pom.pbw b/build/pbl_pom.pbw index 5d09bce..0b9f475 100644 Binary files a/build/pbl_pom.pbw and b/build/pbl_pom.pbw differ diff --git a/src/pom.c b/src/pom.c index 50db0d7..93a3354 100644 --- a/src/pom.c +++ b/src/pom.c @@ -72,8 +72,9 @@ void pomSetState(PomState newState) { case PomStateResting: app.totalTicks = app.ticksRemaining = app.settings.restTicks; - if (app.settings.takeLongRests && (app.completedPoms % app.settings.pomsPerLongRest == 0)) { - app.ticksRemaining = app.settings.longRestTicks; + //Take recess / long rest + if (app.settings.takeLongRests && (app.completedPoms % app.settings.pomsPerLongRest) == 0) { + app.totalTicks = app.ticksRemaining = app.settings.longRestTicks; } text_layer_set_text(app.workingTextLayer, POM_TEXT_REST[app.settings.language]); @@ -127,7 +128,7 @@ void pomOnTick(struct tm *tick_time, TimeUnits units_changed) { bool isResting = (app.state == PomStateResting); // heartbeat - if (isWorking && app.settings.vibrateWhileWorking && (units_changed & MINUTE_UNIT) > 0) { + if (isWorking && app.settings.vibrateWhileWorking && (app.ticksRemaining % app.settings.vibrateTicks) == 0) { vibes_enqueue_custom_pattern(VIBRATE_MINIMAL); } @@ -179,17 +180,21 @@ void pomMainWindowClickProvider(void *context) { void pomStartup() { // setup default settings // after, load settings from persistent storage - app.settings = (PomSettings){ + PomSettings defaultSettings = (PomSettings){ .language = PomEnglish, .workTicks = 60 * 25, .restTicks = 60 * 5, .longRestTicks = 60 * 15, .pomsPerLongRest = 4, + .vibrateTicks = 10, .takeLongRests = true, .vibrateWhileWorking = true, .showClock = false, + .autoAdvance = false, + .annoyAfterRestExceeded = false, }; - + + app.settings = defaultSettings; app.completedPoms = 0; app.mainWindow = window_create(); @@ -219,9 +224,12 @@ void pomStartup() { pomInitMenuModule(); pomInitCookiesModule(); - + tick_timer_service_subscribe(SECOND_UNIT|MINUTE_UNIT, pomOnTick); - pomLoadCookies(); + if (!pomLoadCookies()) { + LOG("Settings not found, using defaults"); + app.settings = defaultSettings; + } pomSetState(PomStateReady); window_stack_push(app.mainWindow, true); diff --git a/src/pom.h b/src/pom.h index febb355..4b6269b 100644 --- a/src/pom.h +++ b/src/pom.h @@ -13,9 +13,12 @@ typedef struct { uint16_t restTicks; uint16_t longRestTicks; uint16_t pomsPerLongRest; + uint16_t vibrateTicks; bool takeLongRests; bool vibrateWhileWorking; bool showClock; + bool autoAdvance; + bool annoyAfterRestExceeded; } PomSettings; diff --git a/src/pom_cookies.c b/src/pom_cookies.c index f5d988a..ff82ab5 100644 --- a/src/pom_cookies.c +++ b/src/pom_cookies.c @@ -1,7 +1,7 @@ #include "pom_cookies.h" #include "pom.h" -#define SETTINGS_STRUCT_KEY 1 +#define SETTINGS_STRUCT_KEY 2 void pomSaveCookies() { persist_write_data(SETTINGS_STRUCT_KEY, &app.settings, sizeof(PomSettings)); @@ -11,6 +11,10 @@ bool pomLoadCookies() { return (E_DOES_NOT_EXIST != persist_read_data(SETTINGS_STRUCT_KEY, &app.settings, sizeof(PomSettings))); } +void pomClearCookies() { + persist_delete(SETTINGS_STRUCT_KEY); +} + void pomInitCookiesModule() { } diff --git a/src/pom_cookies.h b/src/pom_cookies.h index c6d63a8..ebd2121 100644 --- a/src/pom_cookies.h +++ b/src/pom_cookies.h @@ -4,3 +4,4 @@ bool pomLoadCookies(); void pomSaveCookies(); void pomInitCookiesModule(); +void pomClearCookies(); \ No newline at end of file