public class MainActivity extends Activity {
...
IabHelper iabHelper;
String SKU_PREMIUM="android.test.purchased";
IabHelper.OnIabPurchaseFinishedListener iabPurchaseFinishedListener;
IabHelper.QueryInventoryFinishedListener iabGotInventoryListener;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState==null)
{
String justAString=getString(R.string.just_a_string);
...
iabHelper = new IabHelper(this, justAString);
iabHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
iabHelper=null;
}
requestPurchase();
}
});
//Der Listener der niemal angesprochen wird obwohl das Item gekauft wurde!!!Aber anspringen tut er falls das Item schon gekauft ist!!!
//Warum tut er mir das an?
iabPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result, Purchase purchase)
{
Log.e("hi",""+purchase.getSku().equals(SKU_PREMIUM));
if (result.isFailure()) {
Toast.makeText(getApplicationContext(), "Something went wrong!Try again"+specialThing, Toast.LENGTH_SHORT).show();
Log.e("hi","not ad free"+purchase.getSku().equals(SKU_PREMIUM));
return;
}
else if (purchase.getSku().equals(SKU_PREMIUM)) {
Toast.makeText(getApplicationContext(), "You are now Ad-free", Toast.LENGTH_LONG).show();
requestPurchase();
Log.e("hi","ad free");
}
}
};
iabGotInventoryListener = new IabHelper.QueryInventoryFinishedListener()
{
public void onQueryInventoryFinished(IabResult result,
Inventory inventory)
{
if (result.isFailure())
{
specialThing=false;
Log.e("hi","fehler"+result);
}
else
{
if(mView!=null&&mView.mThread!=null&&inventory.hasPurchase(SKU_PREMIUM))
{
mView.mThread.changeNoAdButton();
specialThing=true;
Log.e("hi","ak");
}
}
}
};
}
}
/**
* start a purchase for premium
*/
public void makePurchase()
{
runOnUiThread(new Runnable()
{
@Override
public void run() {
if(iabHelper!=null)
try
{
iabHelper.launchPurchaseFlow(MainActivity.this, SKU_PREMIUM, 1,
iabPurchaseFinishedListener, "");
}
catch(Throwable t)
{
Toast.makeText(MainActivity.this, "ohoh!", Toast.LENGTH_SHORT).show();
}
}
});
}
public void requestPurchase()
{
runOnUiThread(new Runnable()
{
@Override
public void run() {
if(iabHelper!=null)
iabHelper.queryInventoryAsync(iabGotInventoryListener);
}
});
}