public override void onResponseCode(ResponseCode response)
 {
     base.onResponseCode(response);
     if (response == ResponseCode.RESULT_OK)
     {
         BillingController.onTransactionsRestored();
     }
 }
Example #2
0
 /**
  * Restores previous transactions, if any. This happens if the application
  * has just been installed or the user wiped data. We do not want to do this
  * on every startup, rather, we want to do only when the database needs to
  * be initialized.
  */
 private void restoreTransactions()
 {
     //if (!mBillingObserver.isTransactionsRestored())
     //{
     BillingController.restoreTransactions(this);
     Toast.MakeText(this, Resource.String.restoring_transactions, ToastLength.Long).Show();
     //}
 }
Example #3
0
 protected override void OnCreate(Bundle savedInstanceState)
 {
     base.OnCreate(savedInstanceState);
     SetContentView(Resource.Layout.main);
     setupWidgets();
     BillingController.registerObserver(mBillingObserver);
     BillingController.checkBillingSupported(this);
     updateOwnedItems();
     onBillingChecked(true);
 }
 private void runRequest(BillingRequest request)
 {
     try
     {
         long requestId = request.run(mService);
         BillingController.onRequestSent(requestId, request);
     }
     catch (RemoteException e)
     {
         Log.Warn(typeof(BillingService).FullName, "Remote billing service crashed");
         // TODO: Retry?
     }
 }
Example #5
0
        private void updateOwnedItems()
        {
            List <Transaction> transactions = BillingController.getTransactions(this);
            List <string>      ownedItems   = new List <string>();

            foreach (Transaction t in transactions)
            {
                if (t.purchaseState == PurchaseState.PURCHASED)
                {
                    ownedItems.Add(t.productId);
                }
            }

            mCatalogAdapter.setOwnedItems(ownedItems);
            ArrayAdapter <string> adapter = new ArrayAdapter <string>(this, Resource.Layout.item_row, Resource.Id.item_name,
                                                                      ownedItems);

            mOwnedItemsTable.Adapter = adapter;
        }
Example #6
0
        private void setupWidgets()
        {
            mBuyButton         = (Button)FindViewById(Resource.Id.buy_button);
            mBuyButton.Enabled = false;
            mBuyButton.Click  += delegate
            {
                BillingController.requestPurchase(this, mSku, true /* confirm */);
            };

            mSelectItemSpinner               = (Spinner)FindViewById(Resource.Id.item_choices);
            mCatalogAdapter                  = new CatalogAdapter(this, CatalogEntry.CATALOG);
            mSelectItemSpinner.Adapter       = mCatalogAdapter;
            mSelectItemSpinner.ItemSelected += delegate(object sender, ItemEventArgs e)
            {
                mSku = CatalogEntry.CATALOG[e.Position].sku;
            };


            mOwnedItemsTable = (ListView)FindViewById(Resource.Id.owned_items);
        }
Example #7
0
 protected override void OnDestroy()
 {
     BillingController.unregisterObserver(mBillingObserver);
     base.OnDestroy();
 }
            protected override void processOkResponse(Bundle response)
            {
                PendingIntent purchaseIntent = (PendingIntent)response.GetParcelable(KEY_PURCHASE_INTENT);

                BillingController.onPurchaseIntent(itemId, purchaseIntent);
            }
 public override void onResponseCode(ResponseCode response)
 {
     base.onResponseCode(response);
     BillingController.onRequestPurchaseResponse(itemId, response);
 }
            protected override void processOkResponse(Bundle response)
            {
                bool supported = this.isSuccess();

                BillingController.onBillingChecked(supported);
            }