Add debug options to purchase and consume iaps

pull/848/head
Alex Baker 6 years ago
parent 93998a9210
commit 5f0ea6f2f6

@ -3,12 +3,21 @@ package org.tasks.preferences;
import static com.google.common.primitives.Ints.asList;
import android.os.Bundle;
import android.preference.Preference;
import androidx.annotation.StringRes;
import com.android.billingclient.api.BillingClient.SkuType;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.billing.BillingClient;
import org.tasks.billing.Inventory;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingPreferenceActivity;
public class DebugPreferences extends InjectingPreferenceActivity {
@Inject Inventory inventory;
@Inject BillingClient billingClient;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -28,6 +37,29 @@ public class DebugPreferences extends InjectingPreferenceActivity {
return true;
});
}
setupIap(R.string.debug_themes, Inventory.SKU_THEMES);
setupIap(R.string.debug_tasker, Inventory.SKU_TASKER);
setupIap(R.string.debug_dashclock, Inventory.SKU_DASHCLOCK);
}
private void setupIap(@StringRes int prefId, String sku) {
Preference preference = findPreference(prefId);
if (inventory.getPurchase(sku) == null) {
preference.setTitle(getString(R.string.debug_purchase, sku));
preference.setOnPreferenceClickListener(
p -> {
billingClient.initiatePurchaseFlow(DebugPreferences.this, sku, SkuType.INAPP, null);
return false;
});
} else {
preference.setTitle(getString(R.string.debug_consume, sku));
preference.setOnPreferenceClickListener(
p -> {
billingClient.consume(sku);
return false;
});
}
}
@Override

@ -1,4 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="app_name" tools:ignore="PrivateResource">Tasks Debug</string>
<string name="debug_purchase">Purchase %s</string>
<string name="debug_consume">Consume %s</string>
<string name="debug_themes">debug_themes</string>
<string name="debug_tasker">debug_tasker</string>
<string name="debug_dashclock">debug_dashclock</string>
</resources>

@ -21,4 +21,14 @@
android:key="@string/p_debug_pro"
android:title="@string/debug_pro"/>
<Preference
android:key="@string/debug_themes"/>
<Preference
android:key="@string/debug_tasker"/>
<Preference
android:key="@string/debug_dashclock"/>
</PreferenceScreen>

@ -18,9 +18,9 @@ import timber.log.Timber;
public class Inventory {
static final String SKU_VIP = "vip";
static final String SKU_TASKER = "tasker";
static final String SKU_THEMES = "themes";
static final String SKU_DASHCLOCK = "dashclock";
public static final String SKU_TASKER = "tasker";
public static final String SKU_THEMES = "themes";
public static final String SKU_DASHCLOCK = "dashclock";
private final Preferences preferences;
private final SignatureVerifier signatureVerifier;

Loading…
Cancel
Save