Add dummy purchase helpers to generic and amazon

pull/413/head
Alex Baker 8 years ago
parent 48b1ea8124
commit 347da93710

@ -0,0 +1,27 @@
package org.tasks.billing;
import android.app.Activity;
import android.content.Intent;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.widget.WidgetConfigActivity;
import javax.inject.Inject;
public class PurchaseHelper {
@Inject
public PurchaseHelper() {
}
public boolean purchase(DialogBuilder dialogBuilder, final Activity activity,
final String sku, final String pref,
final int requestCode, final PurchaseHelperCallback callback) {
callback.purchaseCompleted(false, sku);
return false;
}
public void handleActivityResult(WidgetConfigActivity widgetConfigActivity, int requestCode, int resultCode, Intent data) {
}
}

@ -1,15 +0,0 @@
package org.tasks.widget;
import org.tasks.injection.ActivityComponent;
public class WidgetConfigActivity extends BaseWidgetConfigActivity {
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
@Override
public void initiateThemePurchase() {
}
}

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="sku_themes">themes</string>
</resources>

@ -0,0 +1,31 @@
package org.tasks.billing;
import android.app.Activity;
import android.content.Intent;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.Preferences;
import org.tasks.widget.WidgetConfigActivity;
import javax.inject.Inject;
public class PurchaseHelper {
private Preferences preferences;
@Inject
public PurchaseHelper(Preferences preferences) {
this.preferences = preferences;
}
public boolean purchase(DialogBuilder dialogBuilder, final Activity activity,
final String sku, final String pref,
final int requestCode, final PurchaseHelperCallback callback) {
preferences.setBoolean(pref, true);
callback.purchaseCompleted(true, sku);
return true;
}
public void handleActivityResult(WidgetConfigActivity widgetConfigActivity, int requestCode, int resultCode, Intent data) {
}
}

@ -1,23 +0,0 @@
package org.tasks.widget;
import org.tasks.R;
import org.tasks.injection.ActivityComponent;
import org.tasks.preferences.Preferences;
import javax.inject.Inject;
public class WidgetConfigActivity extends BaseWidgetConfigActivity {
@Inject Preferences preferences;
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
@Override
public void initiateThemePurchase() {
preferences.setBoolean(R.string.p_purchased_themes, true);
showThemeSelection();
}
}

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="sku_themes">themes</string>
</resources>

@ -1,52 +0,0 @@
package org.tasks.widget;
import android.content.Intent;
import org.tasks.R;
import org.tasks.billing.PurchaseHelper;
import org.tasks.billing.PurchaseHelperCallback;
import org.tasks.injection.ActivityComponent;
import javax.inject.Inject;
import timber.log.Timber;
public class WidgetConfigActivity extends BaseWidgetConfigActivity implements PurchaseHelperCallback {
private static final int REQUEST_PURCHASE = 10109;
@Inject PurchaseHelper purchaseHelper;
@Override
public void initiateThemePurchase() {
purchaseHelper.purchase(dialogBuilder, this, getString(R.string.sku_themes), getString(R.string.p_purchased_themes), REQUEST_PURCHASE, this);
}
@Override
public void purchaseCompleted(boolean success, final String sku) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (getString(R.string.sku_themes).equals(sku)) {
showThemeSelection();
} else {
Timber.d("Unhandled sku: %s", sku);
}
}
});
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_PURCHASE) {
purchaseHelper.handleActivityResult(this, requestCode, resultCode, data);
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
}

@ -12,7 +12,6 @@ import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskAttachment;
import org.tasks.widget.WidgetConfigActivity;
import org.tasks.R;
import org.tasks.injection.ForApplication;

@ -8,17 +8,24 @@ import android.os.Bundle;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking;
import org.tasks.billing.PurchaseHelper;
import org.tasks.billing.PurchaseHelperCallback;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.dialogs.ThemePickerDialog;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.Theme;
import javax.inject.Inject;
public abstract class BaseWidgetConfigActivity extends InjectingAppCompatActivity implements WidgetConfigDialog.WidgetConfigCallback, ThemePickerDialog.ThemePickerCallback {
import timber.log.Timber;
public class WidgetConfigActivity extends InjectingAppCompatActivity implements WidgetConfigDialog.WidgetConfigCallback, ThemePickerDialog.ThemePickerCallback, PurchaseHelperCallback {
private static final String FRAG_TAG_WIDGET_CONFIG = "frag_tag_widget_config";
private static final int REQUEST_PURCHASE = 10109;
public static final int DEFAULT_OPACITY = 255;
public static final String PREF_WIDGET_ID = "widget-id-";
@ -31,6 +38,7 @@ public abstract class BaseWidgetConfigActivity extends InjectingAppCompatActivit
@Inject Tracker tracker;
@Inject DialogBuilder dialogBuilder;
@Inject PurchaseHelper purchaseHelper;
private int appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
private WidgetConfigDialog widgetConfigDialog;
@ -83,6 +91,39 @@ public abstract class BaseWidgetConfigActivity extends InjectingAppCompatActivit
}
}
@Override
public void initiateThemePurchase() {
purchaseHelper.purchase(dialogBuilder, this, getString(R.string.sku_themes), getString(R.string.p_purchased_themes), REQUEST_PURCHASE, this);
}
@Override
public void purchaseCompleted(boolean success, final String sku) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (getString(R.string.sku_themes).equals(sku)) {
showThemeSelection();
} else {
Timber.d("Unhandled sku: %s", sku);
}
}
});
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_PURCHASE) {
purchaseHelper.handleActivityResult(this, requestCode, resultCode, data);
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
protected void showThemeSelection() {
widgetConfigDialog.showThemeSelection();
}
Loading…
Cancel
Save