Remember that New Years award for the Apple Watch? Remember how a bunch of people got it earlier than they should've?
Who did this pic.twitter.com/n5ZFW98hZP— Kyle Seth Gray (@kylesethgray) December 29, 2017
Turns out™, the badge didn't get a date associated with it.
Here's the condition the original 2017 New Year's badge had for you to earn it:
activityData.history.consecutiveMoveGoalsMet >= 7 AND activityData.history.consecutiveExerciseGoalsMet >= 7 AND activityData.history.consecutiveStandGoalsMet >= 7 AND dates.dayOfWeekToday == dates.lastDayOfFitnessWeek AND dates.startOfToday >= 505267200
In plain language, it was awarded when you had 7 consecutive Move, Exercise, and Stand Goals, AND it was after the end of the week, AND it was after 505267200. I assume that's the start of 2017,
but for some reason that in unicode time is 01/05/1986... [Is this some iOS thing? SQL? Help]
EDIT: I'm a doof. It's NSDate. So the date is 2017/01/05
The 2018 award on the other hand had its condition set to:
activityData.history.consecutiveMoveGoalsMet >= 7 AND activityData.history.consecutiveExerciseGoalsMet >= 7 AND activityData.history.consecutiveStandGoalsMet >= 7 AND dates.dayOfMonthToday >= 7
Which means it'll just throw it at you after you earn any perfect week after the badge was downloaded, which was on Dec 27, 2016 at 5:00:00 PM. So anyone getting their perfect week on the 28th, like me and many others , got the New Year's Badge way too early.
What it should've had is
AND dates.startOfToday >= 536716800, which would've prevented the super early award winning by many.
My only question is why did it not have the date condition?
On a similar note, it looks like the Heart Month award coming later this week should be fine, since it's marked as available after the 6th, and just has two queries:
activityData.history.consecutiveExerciseGoalsMet >= 7 AND dates.dayOfMonthToday == 14 - 7 days in a row of meeting your Exercise Goal, earned on the 14th day of the month.