69 lines
3.2 KiB
Java
69 lines
3.2 KiB
Java
package advent.core;
|
|
|
|
import clojure.lang.RT;
|
|
import clojure.lang.Symbol;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import com.badlogic.gdx.backends.android.AndroidApplication;
|
|
import com.badlogic.gdx.Game;
|
|
import com.android.billingclient.api.*;
|
|
import com.android.billingclient.api.BillingClient.BillingResponse;
|
|
import com.android.billingclient.api.BillingClient.SkuType;
|
|
import com.android.billingclient.api.SkuDetails.SkuDetailsResult;
|
|
import com.android.billingclient.api.BillingFlowParams;
|
|
import com.android.billingclient.api.BillingFlowParams.Builder;
|
|
|
|
public class MainActivity extends AndroidApplication {
|
|
public boolean triggerPurchase() {
|
|
BillingFlowParams.Builder builder = new BillingFlowParams.Builder()
|
|
.setSku("game").setType(SkuType.INAPP);
|
|
int returnValue = mBillingClient.launchBillingFlow(this, builder.build());
|
|
return returnValue == BillingClient.BillingResponse.OK || returnValue == BillingClient.BillingResponse.ITEM_ALREADY_OWNED;
|
|
}
|
|
|
|
private BillingClient mBillingClient;
|
|
|
|
public void onCreate (android.os.Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
try {
|
|
RT.var("clojure.core", "require").invoke(Symbol.intern("clojure.core.async"));
|
|
RT.var("clojure.core", "require").invoke(Symbol.intern("advent.core"));
|
|
RT.var("clojure.core", "require").invoke(Symbol.intern("advent.android"));
|
|
} catch (Exception e) {
|
|
System.out.println("Importing failed");
|
|
e.printStackTrace();
|
|
}
|
|
try {
|
|
|
|
Game game = (Game) RT.var("advent.core", "advent").deref();
|
|
System.out.println("pre-init");
|
|
initialize(game);
|
|
System.out.println("before bill??");
|
|
mBillingClient = new BillingClient.Builder(this).setListener((PurchasesUpdatedListener) RT.var("advent.android", "listener").deref()).build();
|
|
System.out.println("billing??");
|
|
mBillingClient.startConnection(new BillingClientStateListener() {
|
|
@Override
|
|
public void onBillingSetupFinished(@BillingResponse int billingResponseCode) {
|
|
System.out.println("billing go");
|
|
if (billingResponseCode == BillingResponse.OK) {
|
|
mBillingClient.queryPurchaseHistoryAsync("inapp", ((PurchaseHistoryResponseListener) RT.var("advent.android", "history-listener").deref()));
|
|
System.out.println("billing ok");
|
|
// The billing client is ready. You can query purchases here.
|
|
}
|
|
}
|
|
@Override
|
|
public void onBillingServiceDisconnected() {
|
|
|
|
System.out.println("billing disconnect");
|
|
// Try to restart the connection on the next request to the
|
|
// In-app Billing service by calling the startConnection() method.
|
|
}
|
|
});
|
|
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|