You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: show paywall immediately when subscription is cancelled
clearPurchaseMark() previously reset KEY_INITIAL_SETUP_FLAG to true,
which was a no-op (startTrialIfNecessaryWithInternetTime skips if
endTime is already set) and left confirmedExpired=false. This meant a
cancelled subscriber with a still-valid original trial window could
continue using the app for free.
Fix:
- Set KEY_INITIAL_SETUP_FLAG to false (correct: no new trial is granted)
- Set KEY_CFG_ST (confirmedExpired) to true so the paywall appears
immediately after the subscription lapses, independent of the original
trial end time.
// KEY_CFG_TS (trial end time) is intentionally preserved so the expiry timestamp
310
+
// remains readable in logs for debugging, but it no longer affects gating because
311
+
// confirmedExpired=true takes priority in getTrialState().
302
312
editor.apply()
303
-
Log.i(TAG, "Purchase mark cleared. Feature access flag set to obfuscated false, initial setup flag reset to true. Trial end time and expired flag preserved.")
313
+
Log.i(TAG, "Purchase mark cleared. Feature access revoked, confirmedExpired set to true → paywall will be shown immediately.")
0 commit comments