Created
December 10, 2016 01:27
-
-
Save shannah/9a7bd06951207101918ad93fa809ee56 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.codename1.demos.helloiapconsume; | |
import com.codename1.components.ToastBar; | |
import com.codename1.ui.Display; | |
import com.codename1.ui.Form; | |
import com.codename1.ui.Dialog; | |
import com.codename1.ui.Label; | |
import com.codename1.ui.plaf.UIManager; | |
import com.codename1.ui.util.Resources; | |
import com.codename1.io.Log; | |
import com.codename1.io.Storage; | |
import com.codename1.payment.Purchase; | |
import com.codename1.payment.PurchaseCallback; | |
import com.codename1.ui.Button; | |
import com.codename1.ui.FontImage; | |
import com.codename1.ui.Toolbar; | |
import java.io.IOException; | |
/** | |
* This file was generated by <a href="https://www.codenameone.com/">Codename One</a> for the purpose | |
* of building native mobile applications using Java. | |
*/ | |
public class HelloWorldIAPConsumable implements PurchaseCallback { | |
private static final String NUM_WORLDS_KEY = "NUM_WORLDS.dat"; | |
public static final String SKU_WORLD = "com.codename1.world"; | |
private Form current; | |
private Resources theme; | |
public void init(Object context) { | |
theme = UIManager.initFirstTheme("/theme"); | |
// Enable Toolbar on all Forms by default | |
Toolbar.setGlobalToolbar(true); | |
// Pro only feature, uncomment if you have a pro subscription | |
// Log.bindCrashProtection(true); | |
} | |
public int getNumWorlds() { | |
synchronized (NUM_WORLDS_KEY) { | |
Storage s = Storage.getInstance(); | |
if (s.exists(NUM_WORLDS_KEY)) { | |
return (Integer)s.readObject(NUM_WORLDS_KEY); | |
} else { | |
return 0; | |
} | |
} | |
} | |
public void addWorld() { | |
synchronized (NUM_WORLDS_KEY) { | |
Storage s = Storage.getInstance(); | |
int count = 0; | |
if (s.exists(NUM_WORLDS_KEY)) { | |
count = (Integer)s.readObject(NUM_WORLDS_KEY); | |
} | |
count++; | |
s.writeObject(NUM_WORLDS_KEY, new Integer(count)); | |
} | |
} | |
public void start() { | |
if(current != null){ | |
current.show(); | |
return; | |
} | |
Form hi = new Form("Hi World"); | |
Button buyWorld = new Button("Buy World"); | |
buyWorld.addActionListener(e->{ | |
if (Dialog.show("Confirm", "You own "+getNumWorlds()+" worlds. Do you want to buy another one?", "Yes", "No")) { | |
Purchase.getInAppPurchase().purchase(SKU_WORLD); | |
} | |
}); | |
hi.addComponent(buyWorld); | |
hi.show(); | |
} | |
public void stop() { | |
current = Display.getInstance().getCurrent(); | |
if(current instanceof Dialog) { | |
((Dialog)current).dispose(); | |
current = Display.getInstance().getCurrent(); | |
} | |
} | |
public void destroy() { | |
} | |
@Override | |
public void itemPurchased(String sku) { | |
addWorld(); | |
ToastBar.showMessage("Thanks. You now own "+getNumWorlds()+" worlds", FontImage.MATERIAL_THUMB_UP); | |
} | |
@Override | |
public void itemPurchaseError(String sku, String errorMessage) { | |
ToastBar.showErrorMessage("Failure occurred: "+errorMessage); | |
} | |
@Override | |
public void itemRefunded(String sku) { | |
} | |
@Override | |
public void subscriptionStarted(String sku) { | |
} | |
@Override | |
public void subscriptionCanceled(String sku) { | |
} | |
@Override | |
public void paymentFailed(String paymentCode, String failureReason) { | |
} | |
@Override | |
public void paymentSucceeded(String paymentCode, double amount, String currency) { | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment