What is the best way to add a seven day strike to my mobile game?

You know how in mobile games you have those bonuses is you play the game a weak in a row. I came up with this monstrosity (widgets and saving will be done later):

And it goes on for 7 days.

Is it fine? Maybe (well, most likely) there is less autistic way to do it?

I keep seeing flaws in this blueprint (what if this this is last day of the month? if you didn’t play for a day?) so help would be appreciated.

I never used this “Today” API, but a simple algorithm like this one should work:

At first launch: StartDate = Today (variable must be saved)
                       Counter = 0 (variable must be saved)
Then, at each launch:
if ceil(Today - StartDate) != counter + 1 => reset as if first launch, because it means at least a day has passed without the game being launched.
else counter++ 
if counter == 6: the game has been launched each days for seven days. You can reset

Of course, if the game is not restarted, you need a way to detect that 24h passed since launch to do the “at each launch” part.