Android Open Source - Munin-for-Android Billing Service From Project Back to project page Munin-for-Android .
License The source code is released under:
GNU General Public License
If you think the Android project Munin-for-Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.chteuchteu.munin.hlpr;
/ * f r o m w w w . j a v a 2 s . c o m * /
import android.app.Activity;
import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import com.android.vending.billing.IInAppBillingService;
public class BillingService {
private static BillingService instance;
private IInAppBillingService mService;
private ServiceConnection mServiceConn;
private Context activityContext;
private boolean isBound = false;
private static final int REQUEST_CODE = 1664;
public static final String DONATE_1 = "donate_1" ;
public static final String DONATE_2 = "donate_2" ;
public static final String DONATE_5 = "donate_5" ;
public static final String DONATE_20 = "donate_20" ;
private ProgressDialog progressDialog;
private String productToBuy;
private BillingService(Context activityContext) {
loadInstance(activityContext);
}
private BillingService(Context activityContext, String product, ProgressDialog progressDialog) {
this.productToBuy = product;
this.progressDialog = progressDialog;
loadInstance(activityContext);
}
private void loadInstance(final Context activityContext) {
if (activityContext != null && this.activityContext == null)
this.activityContext = activityContext;
mServiceConn = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
mService = null;
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mService = IInAppBillingService.Stub.asInterface(service);
// Service connected : we can now check if the user has purchased smth for example
launchPurchase(productToBuy);
unbind();
}
};
Intent intent = new Intent("com.android.vending.billing.InAppBillingService.BIND" );
intent.setPackage("com.android.vending" );
isBound = activityContext.bindService(intent, mServiceConn, Context.BIND_AUTO_CREATE);
}
private void launchPurchase(String product) {
progressDialog.dismiss();
try {
Bundle buyIntentBundle = mService.getBuyIntent(3, activityContext.getPackageName(), product, "inapp" , "" );
PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT" );
((Activity) activityContext).startIntentSenderForResult(pendingIntent.getIntentSender(),
REQUEST_CODE, new Intent(), 0, 0, 0);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void unbind() {
if (mService != null && isBound) {
try {
isBound = false;
activityContext.unbindService(mServiceConn);
} catch (Exception ex) { ex.printStackTrace(); }
}
}
public static BillingService getInstance() { return instance; }
private void setProductToBuy(String val) { this.productToBuy = val; }
private void setProgressDialog(ProgressDialog val) { this.progressDialog = val; }
public static synchronized BillingService getInstance(Context activityContext) {
if (instance == null)
instance = new BillingService(activityContext);
return instance;
}
public static synchronized BillingService getInstanceAndPurchase(Context activityContext, String product,
ProgressDialog progressDialog) {
if (instance == null)
instance = new BillingService(activityContext, product, progressDialog);
else {
// Instance already defined : just have to loadInstance again
instance.setProductToBuy(product);
instance.setProgressDialog(progressDialog);
instance.loadInstance(activityContext);
}
return instance;
}
}
Java Source Code List com.chteuchteu.munin.BootReceiver.java com.chteuchteu.munin.CustomSSLFactory.java com.chteuchteu.munin.MuninFoo.java com.chteuchteu.munin.Service_Notifications.java com.chteuchteu.munin.adptr.Adapter_ExpandableListView.java com.chteuchteu.munin.adptr.Adapter_GraphView.java com.chteuchteu.munin.adptr.Adapter_IconList.java com.chteuchteu.munin.adptr.Adapter_SeparatedList.java com.chteuchteu.munin.exc.ImportExportWebserviceException.java com.chteuchteu.munin.exc.NullMuninFooException.java com.chteuchteu.munin.exc.TrialExpirationDateReached.java com.chteuchteu.munin.hlpr.BillingService.java com.chteuchteu.munin.hlpr.DatabaseHelper.java com.chteuchteu.munin.hlpr.DigestUtils.java com.chteuchteu.munin.hlpr.DocumentationHelper.java com.chteuchteu.munin.hlpr.DrawerHelper.java com.chteuchteu.munin.hlpr.DynazoomHelper.java com.chteuchteu.munin.hlpr.EncryptionHelper.java com.chteuchteu.munin.hlpr.GridDownloadHelper.java com.chteuchteu.munin.hlpr.I18nHelper.java com.chteuchteu.munin.hlpr.ImportExportHelper.java com.chteuchteu.munin.hlpr.JSONHelper.java com.chteuchteu.munin.hlpr.MediaScannerUtil.java com.chteuchteu.munin.hlpr.NetHelper.java com.chteuchteu.munin.hlpr.SQLite.java com.chteuchteu.munin.hlpr.Util.java com.chteuchteu.munin.obj.AlertsWidget.java com.chteuchteu.munin.obj.GraphWidget.java com.chteuchteu.munin.obj.GridItem.java com.chteuchteu.munin.obj.Grid.java com.chteuchteu.munin.obj.HTTPResponse_Bitmap.java com.chteuchteu.munin.obj.HTTPResponse.java com.chteuchteu.munin.obj.Label.java com.chteuchteu.munin.obj.MuninMaster.java com.chteuchteu.munin.obj.MuninPlugin.java com.chteuchteu.munin.obj.MuninServer.java com.chteuchteu.munin.obj.SearchResult.java com.chteuchteu.munin.ui.Activity_About.java com.chteuchteu.munin.ui.Activity_AlertsPluginSelection.java com.chteuchteu.munin.ui.Activity_Alerts.java com.chteuchteu.munin.ui.Activity_GoPremium.java com.chteuchteu.munin.ui.Activity_GraphView.java com.chteuchteu.munin.ui.Activity_Grid.java com.chteuchteu.munin.ui.Activity_Grids.java com.chteuchteu.munin.ui.Activity_Label.java com.chteuchteu.munin.ui.Activity_Labels.java com.chteuchteu.munin.ui.Activity_Main.java com.chteuchteu.munin.ui.Activity_Notifications.java com.chteuchteu.munin.ui.Activity_Plugins.java com.chteuchteu.munin.ui.Activity_Server.java com.chteuchteu.munin.ui.Activity_ServersEdit.java com.chteuchteu.munin.ui.Activity_Servers.java com.chteuchteu.munin.ui.Activity_Settings.java com.chteuchteu.munin.ui.HackyDrawerLayout.java com.chteuchteu.munin.ui.MuninActivity.java com.chteuchteu.munin.wdget.Widget_AlertsWidget_Configure.java com.chteuchteu.munin.wdget.Widget_AlertsWidget_ViewsFactory.java com.chteuchteu.munin.wdget.Widget_AlertsWidget_WidgetProvider.java com.chteuchteu.munin.wdget.Widget_AlertsWidget_WidgetService.java com.chteuchteu.munin.wdget.Widget_GraphWidget_Configure.java com.chteuchteu.munin.wdget.Widget_GraphWidget_WidgetProvider.java com.mobeta.android.dslv.DragSortController.java com.mobeta.android.dslv.DragSortCursorAdapter.java com.mobeta.android.dslv.DragSortItemViewCheckable.java com.mobeta.android.dslv.DragSortItemView.java com.mobeta.android.dslv.DragSortListView.java com.mobeta.android.dslv.ResourceDragSortCursorAdapter.java com.mobeta.android.dslv.SimpleDragSortCursorAdapter.java com.mobeta.android.dslv.SimpleFloatViewManager.java org.taptwo.android.widget.CircleFlowIndicator.java org.taptwo.android.widget.FlowIndicator.java org.taptwo.android.widget.TitleFlowIndicator.java org.taptwo.android.widget.TitleProvider.java org.taptwo.android.widget.ViewFlow.java uk.co.senab.photoview.Compat.java uk.co.senab.photoview.IPhotoView.java uk.co.senab.photoview.PhotoViewAttacher.java uk.co.senab.photoview.PhotoView.java uk.co.senab.photoview.SDK16.java uk.co.senab.photoview.ScrollerProxy.java uk.co.senab.photoview.VersionedGestureDetector.java