| .. | .. |
|---|
| 58 | 58 | // rendering; restorePurchases() reconciles it with the platform stores. |
|---|
| 59 | 59 | final prefs = await SharedPreferences.getInstance(); |
|---|
| 60 | 60 | _isPro = prefs.getBool(_kProCacheKey) ?? false; |
|---|
| 61 | + |
|---|
| 62 | + // Screenshot / demo override: force free-tier rendering for store-listing |
|---|
| 63 | + // captures. Build with: flutter run --dart-define=PAILOT_FORCE_FREE=true |
|---|
| 64 | + const forceFree = bool.fromEnvironment('PAILOT_FORCE_FREE'); |
|---|
| 65 | + if (forceFree) { |
|---|
| 66 | + _isPro = false; |
|---|
| 67 | + await prefs.setBool(_kProCacheKey, false); |
|---|
| 68 | + notifyListeners(); |
|---|
| 69 | + return; |
|---|
| 70 | + } |
|---|
| 61 | 71 | notifyListeners(); |
|---|
| 62 | 72 | |
|---|
| 63 | 73 | // If the platform IAP layer isn't available (sideloaded dev build, no |
|---|