-
-
Notifications
You must be signed in to change notification settings - Fork 757
General: Add anniversary celebration feature #1948
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Displays a celebratory dashboard card when users reach their SD Maid anniversary (1+ years since installation). The card shows: - Installation date and years of usage - Total space freed statistics - Share functionality with download link for veteran users (5+ years) - Year-specific dismissal (reappears next anniversary) The anniversary card appears for 14 days after the anniversary date to ensure users don't miss it. Only shown for Pro users. Features: - Custom MascotView with party mode for celebration - Localized strings with proper pluralization - Share text includes space freed and app download link - Clean architecture with dedicated AnniversaryProvider
|
mmhh, I'm pretty sure, that this feature will not working well, if you often need to reinstall SDMaid for testing purposes, right? |
Yeah the timer would reset on re-install. If you just want to see it, you could temporarily advance the system time by 1-2 years. |
is it possible in any way to restore the truth first installation date? |
❤️
Not a fan, as SD Maid is specifically trying to clean after apps that do exactly that (create such files that stay behind). Then SD Maid would be one of those apps that leave behind files to track the user... One idea could be to try and check the date on the pro purchase, though that is not the day the user first installed it, it might be close? But I also wouldn't know when to just keep the install date, and when to use the purchase date 🤔 And for FOSS builds, there is no option like that. It's just a fun little easter egg Could probably also change the system time, then install the app, then restore system time 🤔 |
now, you talk about a special benefit, a download link if you reach 5+ years (veteran) and this should be able to get for all paid users, it is open what you mean with this veteran status or with the special download link. I know, github has some features not includes like Playstore, but the buy date would be a solution, in my case I paid over Play and also the FOSS over github and have long time paid here monthly sponsorship. |
It's not "special". Just a link to Google Play (or GitHub) that people might share on social media, a little advertisement for SD Maid. |
Oh it's really simple isn't it? If the google play date is OLDER than the install date 💡. |
ahso okay. Thought we get a special SD-Maid Version with maybe more options or something, like a little thanks to the users which hold the App since so long time. |
…data When a user reinstalls the app, use their Google Play purchase date (or GitHub Sponsors date for FOSS) as the actual install date if it's earlier than the system-reported install date. This ensures long-time Pro users who reinstall maintain their true "first use" date for anniversary features. The logic now: - Fetches upgrade/purchase date from UpgradeRepo with a 5-second timeout - Compares purchase date with saved install date - Uses the earlier date to preserve the user's actual first installation Example: User purchased in 2023, reinstalled in 2025 - will use 2023 as install date. ```kotlin 18:52:31.280 SDMSE:Debug:CurriculumVitae V updateInstalledAt(): savedInstalledAt: 2025-09-08T14:49:48.161Z 18:52:31.280 SDMSE:Debug:CurriculumVitae V updateInstalledAt(): systemInstalledAt: 2025-09-08T14:49:48.161Z 18:52:31.688 SDMSE:Debug:CurriculumVitae V updateInstalledAt(): upgradedAt: 2023-03-28T17:14:16.958Z 18:52:31.688 SDMSE:Debug:CurriculumVitae I updateInstalledAt(): This is a re-install, setting install date to upgrade date. ``` See convo in #1948
in which cases this should happen? Nobody pay today for an App and install it weeks after 😉 |
…data When a user reinstalls the app, use their Google Play purchase date (or GitHub Sponsors date for FOSS) as the actual install date if it's earlier than the system-reported install date. This ensures long-time Pro users who reinstall maintain their true "first use" date for anniversary features. The logic now: - Fetches upgrade/purchase date from UpgradeRepo with a 5-second timeout - Compares purchase date with saved install date - Uses the earlier date to preserve the user's actual first installation Example: User purchased in 2023, reinstalled in 2025 - will use 2023 as install date. ```kotlin 18:52:31.280 SDMSE:Debug:CurriculumVitae V updateInstalledAt(): savedInstalledAt: 2025-09-08T14:49:48.161Z 18:52:31.280 SDMSE:Debug:CurriculumVitae V updateInstalledAt(): systemInstalledAt: 2025-09-08T14:49:48.161Z 18:52:31.688 SDMSE:Debug:CurriculumVitae V updateInstalledAt(): upgradedAt: 2023-03-28T17:14:16.958Z 18:52:31.688 SDMSE:Debug:CurriculumVitae I updateInstalledAt(): This is a re-install, setting install date to upgrade date. ``` See convo in #1948
But after a re-install, the pay date is older than the install date. See example log in #1957 It's not perfect, but easy to add and better than nothing 🙂. |
it's okay for me. |
yes, you are right. Didn't think about this case. |

Displays a celebratory dashboard card when users reach their SD Maid anniversary (1+ years since installation). The card shows:
The anniversary card appears for 14 days after the anniversary date to ensure users don't miss it. Only shown for Pro users.
Features: