make sure you are not testing for the queryInvetory method, because it will work only when you are trying to purchase real product instead of dummy product(android.test.purchased), because google will not keep record for the dummy product according to my knowledge.
onCreate() method
Define all variables in the oncreate method and just change textbox enable-disable in the queryInventory and IabPurchaseFinishListener.
mLevel6 = (Button) findViewById(R.id.level6); mLevel7 = (Button) findViewById(R.id.level7); mLevel8 = (Button) findViewById(R.id.level8); mLevel9 = (Button) findViewById(R.id.level9); mLevel10 = (Button) findViewById(R.id.level10);
QueryInventoryFinishedListener
IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
Log.d(TAG, "Query inventory finished.");
if (result.isFailure()) {
Log.d(TAG, "Failed to query inventory: " + result);
return;
}
//else { // you don't need to check for the failure then go if and other wise else.
Log.d(TAG, "Query inventory was successful.");
// does the user have the premium upgrade?
mIsPremium = inventory.hasPurchase(SKU_PREMIUM);
// update UI accordingly
if(mIsPremium){
mLevel6.setEnabled(true);
mLevel7.setEnabled(true);
mLevel8.setEnabled(true);
mLevel9.setEnabled(true);
mLevel10.setEnabled(true);
}
Log.d(TAG, "User is " + (mIsPremium ? "PREMIUM" : "NOT PREMIUM"));
// }
Log.d(TAG, "Initial inventory query finished; enabling main UI.");
}
};
OnIabPurchaseFinishedListener
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
if (result.isFailure()) {
Log.d(TAG, "Error purchasing: " + result);
return;
}
if (purchase.getSku().equals(SKU_PREMIUM)) { // same as above you don't need to check else if condition again
// give user access to premium content and update the UI
mLevel6.setEnabled(true);
mLevel7.setEnabled(true);
mLevel8.setEnabled(true);
mLevel9.setEnabled(true);
mLevel10.setEnabled(true);
}
}
};
Let me know it is working for you or not.