Use new version of Checkout
This commit is contained in:
parent
db67e86fc2
commit
cb9ece0108
@ -79,7 +79,7 @@ dependencies {
|
||||
compile(project(':jscl')) {
|
||||
exclude(module: 'xercesImpl')
|
||||
}
|
||||
compile 'org.solovyev.android:checkout:0.7.5@aar'
|
||||
compile 'org.solovyev.android:checkout:1.0.1'
|
||||
compile 'org.solovyev.android:material:0.1.4@aar'
|
||||
compile "com.google.android.gms:play-services-ads:${versions.gpsLib}"
|
||||
compile "com.google.android.gms:play-services-base:${versions.gpsLib}"
|
||||
@ -109,8 +109,10 @@ dependencies {
|
||||
androidTestCompile 'com.android.support.test:runner:0.5'
|
||||
androidTestCompile 'com.android.support.test:rules:0.5'
|
||||
androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
|
||||
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
|
||||
}
|
||||
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
|
||||
// use version of jsr305 provided by Checkout
|
||||
exclude group: 'com.google.code.findbugs', module: 'jsr305'
|
||||
})}
|
||||
|
||||
apt {
|
||||
arguments {
|
||||
|
@ -9,28 +9,35 @@ import android.os.Looper;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.util.Log;
|
||||
|
||||
import com.squareup.otto.Bus;
|
||||
import com.squareup.otto.GeneratedHandlerFinder;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import jscl.JsclMathEngine;
|
||||
|
||||
import org.solovyev.android.calculator.language.Languages;
|
||||
import org.solovyev.android.calculator.wizard.CalculatorWizards;
|
||||
import org.solovyev.android.checkout.*;
|
||||
import org.solovyev.android.checkout.Billing;
|
||||
import org.solovyev.android.checkout.Checkout;
|
||||
import org.solovyev.android.checkout.Inventory;
|
||||
import org.solovyev.android.checkout.RobotmediaDatabase;
|
||||
import org.solovyev.android.checkout.RobotmediaInventory;
|
||||
import org.solovyev.android.plotter.Plot;
|
||||
import org.solovyev.android.plotter.Plotter;
|
||||
import org.solovyev.android.wizard.Wizards;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
import java.io.File;
|
||||
import java.util.Collections;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import jscl.JsclMathEngine;
|
||||
|
||||
@Module
|
||||
public class AppModule {
|
||||
@ -189,12 +196,6 @@ public class AppModule {
|
||||
});
|
||||
}
|
||||
|
||||
@Singleton
|
||||
@Provides
|
||||
Products provideProducts() {
|
||||
return Products.create().add(ProductTypes.IN_APP, Collections.singletonList("ad_free"));
|
||||
}
|
||||
|
||||
@Singleton
|
||||
@Provides
|
||||
Typeface provideTypeface() {
|
||||
|
@ -1,11 +1,12 @@
|
||||
package org.solovyev.android.calculator.ads;
|
||||
|
||||
import static org.solovyev.android.checkout.ProductTypes.IN_APP;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.view.View;
|
||||
import butterknife.Bind;
|
||||
import butterknife.ButterKnife;
|
||||
|
||||
import org.solovyev.android.calculator.AdView;
|
||||
import org.solovyev.android.calculator.R;
|
||||
import org.solovyev.android.checkout.CppCheckout;
|
||||
@ -15,7 +16,8 @@ import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import static org.solovyev.android.checkout.ProductTypes.IN_APP;
|
||||
import butterknife.Bind;
|
||||
import butterknife.ButterKnife;
|
||||
|
||||
public class AdUi {
|
||||
|
||||
@ -47,13 +49,14 @@ public class AdUi {
|
||||
if (adFree != null) {
|
||||
updateAdView();
|
||||
} else {
|
||||
checkout.loadInventory().whenLoaded(onMainThread(new Inventory.Listener() {
|
||||
@Override
|
||||
public void onLoaded(@Nonnull Inventory.Products products) {
|
||||
adFree = products.get(IN_APP).isPurchased("ad_free");
|
||||
updateAdView();
|
||||
}
|
||||
}));
|
||||
checkout.loadInventory(Inventory.Request.create().loadAllPurchases(),
|
||||
onMainThread(new Inventory.Callback() {
|
||||
@Override
|
||||
public void onLoaded(@Nonnull Inventory.Products products) {
|
||||
adFree = products.get(IN_APP).isPurchased("ad_free");
|
||||
updateAdView();
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
@ -70,18 +73,18 @@ public class AdUi {
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
private Inventory.Listener onMainThread(@Nonnull final Inventory.Listener listener) {
|
||||
return new Inventory.Listener() {
|
||||
private Inventory.Callback onMainThread(@Nonnull final Inventory.Callback callback) {
|
||||
return new Inventory.Callback() {
|
||||
@Override
|
||||
public void onLoaded(@Nonnull final Inventory.Products products) {
|
||||
if (handler.getLooper() == Looper.myLooper()) {
|
||||
listener.onLoaded(products);
|
||||
callback.onLoaded(products);
|
||||
return;
|
||||
}
|
||||
handler.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onLoaded(products);
|
||||
callback.onLoaded(products);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import android.support.annotation.NonNull;
|
||||
import android.support.annotation.StringRes;
|
||||
import android.support.annotation.XmlRes;
|
||||
import android.util.SparseArray;
|
||||
|
||||
import org.solovyev.android.calculator.App;
|
||||
import org.solovyev.android.calculator.AppComponent;
|
||||
import org.solovyev.android.calculator.BaseActivity;
|
||||
@ -16,7 +17,6 @@ import org.solovyev.android.calculator.language.Languages;
|
||||
import org.solovyev.android.checkout.ActivityCheckout;
|
||||
import org.solovyev.android.checkout.Billing;
|
||||
import org.solovyev.android.checkout.Checkout;
|
||||
import org.solovyev.android.checkout.Products;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.inject.Inject;
|
||||
@ -47,8 +47,6 @@ public class PreferencesActivity extends BaseActivity implements SharedPreferenc
|
||||
@Inject
|
||||
Billing billing;
|
||||
@Inject
|
||||
Products products;
|
||||
@Inject
|
||||
Languages languages;
|
||||
|
||||
public PreferencesActivity() {
|
||||
@ -87,7 +85,7 @@ public class PreferencesActivity extends BaseActivity implements SharedPreferenc
|
||||
.commit();
|
||||
}
|
||||
|
||||
checkout = Checkout.forActivity(this, billing, products);
|
||||
checkout = Checkout.forActivity(this, billing);
|
||||
checkout.start();
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,11 @@
|
||||
package org.solovyev.android.calculator.preferences;
|
||||
|
||||
import static org.solovyev.android.calculator.App.cast;
|
||||
import static org.solovyev.android.calculator.Engine.Preferences.angleUnitName;
|
||||
import static org.solovyev.android.calculator.Engine.Preferences.numeralBaseName;
|
||||
import static org.solovyev.android.calculator.wizard.CalculatorWizards.DEFAULT_WIZARD_FLOW;
|
||||
import static org.solovyev.android.wizard.WizardUi.startWizard;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
@ -11,13 +17,16 @@ import android.support.v4.app.FragmentActivity;
|
||||
import android.util.SparseArray;
|
||||
import android.view.View;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.squareup.otto.Bus;
|
||||
import com.squareup.otto.Subscribe;
|
||||
import jscl.AngleUnit;
|
||||
import jscl.JsclMathEngine;
|
||||
import jscl.NumeralBase;
|
||||
import org.solovyev.android.calculator.*;
|
||||
|
||||
import org.solovyev.android.calculator.ActivityLauncher;
|
||||
import org.solovyev.android.calculator.AdView;
|
||||
import org.solovyev.android.calculator.Engine;
|
||||
import org.solovyev.android.calculator.Preferences;
|
||||
import org.solovyev.android.calculator.Preferences.Gui.Theme;
|
||||
import org.solovyev.android.calculator.R;
|
||||
import org.solovyev.android.calculator.feedback.FeedbackReporter;
|
||||
import org.solovyev.android.calculator.language.Language;
|
||||
import org.solovyev.android.calculator.language.Languages;
|
||||
@ -29,17 +38,16 @@ import org.solovyev.android.prefs.StringPreference;
|
||||
import org.solovyev.android.wizard.Wizards;
|
||||
import org.solovyev.common.text.CharacterMapper;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static org.solovyev.android.calculator.App.cast;
|
||||
import static org.solovyev.android.calculator.Engine.Preferences.angleUnitName;
|
||||
import static org.solovyev.android.calculator.Engine.Preferences.numeralBaseName;
|
||||
import static org.solovyev.android.calculator.wizard.CalculatorWizards.DEFAULT_WIZARD_FLOW;
|
||||
import static org.solovyev.android.wizard.WizardUi.startWizard;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import jscl.AngleUnit;
|
||||
import jscl.JsclMathEngine;
|
||||
import jscl.NumeralBase;
|
||||
|
||||
public class PreferencesFragment extends org.solovyev.android.material.preferences.PreferencesFragment implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
@ -114,7 +122,7 @@ public class PreferencesFragment extends org.solovyev.android.material.preferenc
|
||||
prepareLanguagePreference(preference);
|
||||
prepareThemePreference(preference);
|
||||
|
||||
getCheckout().whenReady(new Checkout.ListenerAdapter() {
|
||||
getCheckout().whenReady(new Checkout.EmptyListener() {
|
||||
@Override
|
||||
public void onReady(@Nonnull BillingRequests requests) {
|
||||
requests.isPurchased(ProductTypes.IN_APP, "ad_free", new RequestListener<Boolean>() {
|
||||
|
@ -22,6 +22,8 @@
|
||||
|
||||
package org.solovyev.android.calculator.preferences;
|
||||
|
||||
import static org.solovyev.android.calculator.App.cast;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
@ -30,25 +32,28 @@ import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import org.solovyev.android.calculator.App;
|
||||
import org.solovyev.android.calculator.BaseDialogFragment;
|
||||
import org.solovyev.android.calculator.R;
|
||||
import org.solovyev.android.calculator.ga.Ga;
|
||||
import org.solovyev.android.checkout.*;
|
||||
import org.solovyev.android.checkout.ActivityCheckout;
|
||||
import org.solovyev.android.checkout.Billing;
|
||||
import org.solovyev.android.checkout.BillingRequests;
|
||||
import org.solovyev.android.checkout.Checkout;
|
||||
import org.solovyev.android.checkout.ProductTypes;
|
||||
import org.solovyev.android.checkout.Purchase;
|
||||
import org.solovyev.android.checkout.RequestListener;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import static org.solovyev.android.calculator.App.cast;
|
||||
|
||||
public class PurchaseDialogActivity extends AppCompatActivity implements RequestListener<Purchase> {
|
||||
|
||||
@Inject
|
||||
Billing billing;
|
||||
@Inject
|
||||
Products products;
|
||||
@Inject
|
||||
Ga ga;
|
||||
ActivityCheckout checkout;
|
||||
|
||||
@ -62,7 +67,7 @@ public class PurchaseDialogActivity extends AppCompatActivity implements Request
|
||||
App.showDialog(new PurchaseDialogFragment(), PurchaseDialogFragment.FRAGMENT_TAG, getSupportFragmentManager());
|
||||
}
|
||||
|
||||
checkout = Checkout.forActivity(this, billing, products);
|
||||
checkout = Checkout.forActivity(this, billing);
|
||||
checkout.start();
|
||||
checkout.createPurchaseFlow(this);
|
||||
}
|
||||
@ -80,7 +85,7 @@ public class PurchaseDialogActivity extends AppCompatActivity implements Request
|
||||
}
|
||||
|
||||
private void purchase() {
|
||||
checkout.whenReady(new Checkout.ListenerAdapter() {
|
||||
checkout.whenReady(new Checkout.EmptyListener() {
|
||||
@Override
|
||||
public void onReady(@Nonnull BillingRequests requests) {
|
||||
requests.purchase(ProductTypes.IN_APP, "ad_free", null, checkout.getPurchaseFlow());
|
||||
|
@ -13,8 +13,8 @@ public class CppCheckout extends Checkout {
|
||||
private int started = 0;
|
||||
|
||||
@Inject
|
||||
public CppCheckout(@NonNull Billing billing, @NonNull Products products) {
|
||||
super(null, billing, products);
|
||||
public CppCheckout(@NonNull Billing billing) {
|
||||
super(null, billing);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user