/**
* *******************************************************************************
* Copyright 2016 Tom Praschan
* <p/>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ******************************************************************************
*/
package de.tap.easy_xkcd.Activities;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Toast;
import com.anjlab.android.iab.v3.BillingProcessor;
import com.anjlab.android.iab.v3.TransactionDetails;
import com.tap.xkcd_reader.R;
import de.tap.easy_xkcd.utils.PrefHelper;
public class DonateActivity extends AppCompatActivity {
private BillingProcessor mBillingProcessor;
private PrefHelper prefHelper;
private static final String publicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApIdLEFtE9/AaPdPDMdFN3DJKKc0MZFyGJdTssBgFKlIi0VgpeocVgi9LJ4ev1P1OJExRp+P+X/3zMt2Z28s7gyBW+vtBKRJqdw8ix+mAtxGW81QFcwKCUW2nfn3pq2G7IXj0l/acfLruAfLyKwdpwzX/jqCJCFeolTRQxTDkisrxV25ShMFSlWCE9uvRwezs9v6GJ+5ebu+y632N9I2UVa+QIGQo2Kdgg1Iv2jEGihokGxbBOENxAggD8y4Ut66KNPE8gOo7r5/cFnAruLInSXqp9odHvF0JGTgrEereE9cCLGZG9/e+F3NE3T0DVd25ICVDq2IvVVcCyJT6WDFLZwIDAQAB";
private static final String iap1 = "de.tap.easy_xkcd.iap1";
private static final String iap2 = "de.tap.easy_xkcd.iap2";
private static final String iap3 = "de.tap.easy_xkcd.iap3";
private static final String iap4 = "de.tap.easy_xkcd.iap4";
private static final String iap5 = "de.tap.easy_xkcd.iap5";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_donate);
prefHelper = new PrefHelper(this);
mBillingProcessor = new BillingProcessor(this, publicKey, new BillingProcessor.IBillingHandler() {
@Override
public void onBillingInitialized() {
String[] mPrices = new String[5];
mPrices[0] = mBillingProcessor.getPurchaseListingDetails(iap1).priceText;
mPrices[1] = mBillingProcessor.getPurchaseListingDetails(iap2).priceText;
mPrices[2] = mBillingProcessor.getPurchaseListingDetails(iap3).priceText;
mPrices[3] = mBillingProcessor.getPurchaseListingDetails(iap4).priceText;
mPrices[4] = mBillingProcessor.getPurchaseListingDetails(iap5).priceText;
final String[] mIds = new String[5];
mIds[0] = iap1;
mIds[1] = iap2;
mIds[2] = iap3;
mIds[3] = iap4;
mIds[4] = iap5;
AlertDialog.Builder builder = new AlertDialog.Builder(DonateActivity.this);
builder.setItems(mPrices, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
mBillingProcessor.purchase(DonateActivity.this, mIds[i]);
}
})
.setTitle(R.string.dialog_donate)
.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
DonateActivity.this.finish();
}
})
.show();
}
@Override
public void onBillingError(int i, Throwable throwable) {
DonateActivity.this.finish();
}
@Override
public void onProductPurchased(String productId, TransactionDetails transactionDetails) {
mBillingProcessor.consumePurchase(productId);
prefHelper.setHideDonate(true);
DonateActivity.this.finish();
Toast.makeText(DonateActivity.this, "Thanks :)", Toast.LENGTH_SHORT).show();
}
@Override
public void onPurchaseHistoryRestored() {
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (!mBillingProcessor.handleActivityResult(requestCode, resultCode, data))
super.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onDestroy() {
if (mBillingProcessor != null)
mBillingProcessor.release();
super.onDestroy();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_donate, menu);
return true;
}
}