mirror of https://github.com/M66B/FairEmail.git
Cache purchases
This commit is contained in:
parent
0ae44923e9
commit
2eb51d2189
|
@ -76,6 +76,8 @@ abstract class ActivityBilling extends ActivityBase implements PurchasesUpdatedL
|
||||||
static final String ACTION_PURCHASE_CHECK = BuildConfig.APPLICATION_ID + ".ACTION_PURCHASE_CHECK";
|
static final String ACTION_PURCHASE_CHECK = BuildConfig.APPLICATION_ID + ".ACTION_PURCHASE_CHECK";
|
||||||
static final String ACTION_ACTIVATE_PRO = BuildConfig.APPLICATION_ID + ".ACTIVATE_PRO";
|
static final String ACTION_ACTIVATE_PRO = BuildConfig.APPLICATION_ID + ".ACTIVATE_PRO";
|
||||||
|
|
||||||
|
final static long MAX_SKU_CACHE_DURATION = 24 * 3600 * 1000L; // milliseconds
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -330,8 +332,14 @@ abstract class ActivityBilling extends ActivityBase implements PurchasesUpdatedL
|
||||||
if (purchases != null) {
|
if (purchases != null) {
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
SharedPreferences.Editor editor = prefs.edit();
|
SharedPreferences.Editor editor = prefs.edit();
|
||||||
if (prefs.getBoolean("play_store", true))
|
if (prefs.getBoolean("play_store", true)) {
|
||||||
|
long cached = prefs.getLong(getSkuPro() + ".cached", 0);
|
||||||
|
if (cached + MAX_SKU_CACHE_DURATION < new Date().getTime()) {
|
||||||
|
Log.i("IAB cache expired");
|
||||||
editor.remove("pro");
|
editor.remove("pro");
|
||||||
|
} else
|
||||||
|
Log.i("IAB caching");
|
||||||
|
}
|
||||||
|
|
||||||
for (Purchase purchase : purchases)
|
for (Purchase purchase : purchases)
|
||||||
try {
|
try {
|
||||||
|
@ -367,6 +375,7 @@ abstract class ActivityBilling extends ActivityBase implements PurchasesUpdatedL
|
||||||
if (purchase.isAcknowledged()) {
|
if (purchase.isAcknowledged()) {
|
||||||
Log.i("IAB valid signature");
|
Log.i("IAB valid signature");
|
||||||
editor.putBoolean("pro", true);
|
editor.putBoolean("pro", true);
|
||||||
|
editor.putLong(getSkuPro() + ".cached", new Date().getTime());
|
||||||
} else
|
} else
|
||||||
acknowledgePurchase(purchase);
|
acknowledgePurchase(purchase);
|
||||||
}
|
}
|
||||||
|
@ -439,7 +448,10 @@ abstract class ActivityBilling extends ActivityBase implements PurchasesUpdatedL
|
||||||
Log.i("IAB acknowledged SKU=" + purchase.getSku() + " response=" + text);
|
Log.i("IAB acknowledged SKU=" + purchase.getSku() + " response=" + text);
|
||||||
if (result.getResponseCode() == BillingClient.BillingResponseCode.OK) {
|
if (result.getResponseCode() == BillingClient.BillingResponseCode.OK) {
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ActivityBilling.this);
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ActivityBilling.this);
|
||||||
prefs.edit().putBoolean("pro", true).apply();
|
SharedPreferences.Editor editor = prefs.edit();
|
||||||
|
editor.putBoolean("pro", true);
|
||||||
|
editor.putLong(getSkuPro() + ".cached", new Date().getTime());
|
||||||
|
editor.apply();
|
||||||
|
|
||||||
for (IBillingListener listener : listeners)
|
for (IBillingListener listener : listeners)
|
||||||
listener.onPurchased(purchase.getSku());
|
listener.onPurchased(purchase.getSku());
|
||||||
|
|
Loading…
Reference in New Issue