package com.applicasa.ApplicasaManager; import java.util.List; import android.app.Activity; import android.content.Intent; import applicasa.LiCore.LiErrorHandler; import applicasa.LiCore.communication.LiRequestConst.RequestCallback.LiCallbackGetStoreCallback; import applicasa.LiCore.communication.LiRequestConst.RequestCallback.LiCallbackGetVirtualGoodInventory; import applicasa.kit.IAP.IAP; import applicasa.kit.IAP.IAP.GetVirtualGoodKind; import applicasa.kit.IAP.IAP.LiCurrency; import applicasa.kit.IAP.Callbacks.LiCallbackIAPBalanceChanged; import applicasa.kit.IAP.Callbacks.LiCallbackIAPPurchase; import applicasa.kit.IAP.Callbacks.LiCallbackVirtualCurrencyRequest; import applicasa.kit.IAP.Callbacks.LiCallbackVirtualGoodRequest; import applicasa.kit.IAP.billing.Utils.LiPurchase; import applicasa.kit.IAP.billing.Utils.LiIabHelper.OnConsumeFinishedListener; import applicasa.kit.IAP.billing.Utils.LiIabHelper.QueryInventoryFinishedListener; import com.applicasa.VirtualCurrency.VirtualCurrency; import com.applicasa.VirtualGood.VirtualGood; import com.applicasa.VirtualGoodCategory.VirtualGoodCategory; public class LiStore { private static String TAG = LiStore.class.getName(); public final static int IAB_REQUEST = 287; /** * Buy the Given virtual store - using Credits * @param virtualGood * @param quantity * @return */ public static boolean buyVirtualGoods(VirtualGood virtualGood, int quantity,LiCurrency liCurrency,LiCallbackVirtualGoodRequest liCallbackVirtualGoodRequest ) { return IAP.buyVirtualGoods(virtualGood, quantity, liCurrency, liCallbackVirtualGoodRequest); } /** * Buy the Given virtual store - using Real Money * @param virtualGood * @param quantity * @return */ public static boolean buyVirtualGoods(Activity activity, VirtualGood virtualGood, LiCallbackIAPPurchase liCallbackIAPPurchase) { return IAP.buyVirtualGoods( activity, virtualGood, liCallbackIAPPurchase); } /** * Buy the given app Store item - using real money * @param appStoreItem * @return */ public static boolean buyVirtualCurrency(Activity activity, VirtualCurrency virtualCurrency, LiCallbackIAPPurchase liCallbackIAPPurchase) { return IAP.buyVirtualCurrency(activity, virtualCurrency, liCallbackIAPPurchase); } /** * Give virtualGood by given quantity * @param virtualGood * @param quantity * @return */ public static boolean giveVirtualGoods(VirtualGood virtualGood, int quantity,LiCallbackVirtualGoodRequest liCallbackVirtualGoodRequest ) { return IAP.giveVirtualGoods(virtualGood, quantity, liCallbackVirtualGoodRequest); } /** * Give Coins * @param coins * @return */ public static boolean giveVirtualCurrency(int amount, LiCurrency liCurrency, LiCallbackVirtualCurrencyRequest LiCallbackVirtualCurrencyRequest) { return IAP.giveVirtualCurrency(amount, liCurrency,LiCallbackVirtualCurrencyRequest); } /** * consumes quantity of virualGood * @param virtualGood * @param quantity * @return */ public static boolean useVirtualGoods(VirtualGood virtualGood, int quantity, LiCallbackVirtualGoodRequest liCallbackVirtualGoodRequest ) { return IAP.useVirtualGoods( virtualGood, quantity, liCallbackVirtualGoodRequest); } /** * consumes coins * @param coins * @return */ public static boolean useVirtualCurrency(int amount, LiCurrency liCurrency, LiCallbackVirtualCurrencyRequest LiCallbackVirtualCurrencyRequest) { return IAP.useVirtualCurrency(amount, liCurrency, LiCallbackVirtualCurrencyRequest); } /** * Get all Virtual Currency * @return list of virtual Currency */ public static List<VirtualCurrency> getAllVirtualCurrency() { return IAP.getAllVirtualCurrency(); } /** * Get all Virtual Currency By currency kind * @return list of virtual Currency */ public static List<VirtualCurrency> getAllVirtualCurrencyByKind(LiCurrency liCurrency) { return IAP.getAllVirtualCurrencyByKind(liCurrency); } /** * Get all virtual good by get kind * ALL - return all virtual Good * HasInventory - returns all Virtual product with a positive inventory * NoInventory - returns all Virtual product with a 0 inventory * @param getVirtualGoodKind * @return */ public static List<VirtualGood> getAllVirtualGoods(GetVirtualGoodKind getVirtualGoodKind) { return IAP.getAllVirtualGoods(getVirtualGoodKind); } /** * Get all virtual good Category * @return */ public static List<VirtualGoodCategory> getAllVirtualGoodsCategory() { return IAP.getAllVirtualGoodsCategory(); } /** * Get all virtual good by get kind * ALL - return all virtual Good * HasInventory - returns all Virtual product with a positive inventory * NoInventory - returns all Virtual product with a 0 inventory * @param getVirtualGoodKind * @return */ public static List<VirtualGood> getVirtualGoodByCategory(VirtualGoodCategory virtualGoodCategory, GetVirtualGoodKind getVirtualGoodKind) throws LiErrorHandler { // TODO Auto-generated method stub return IAP.getVirtualGoodByCategory(virtualGoodCategory, getVirtualGoodKind ); } /** * Get VirtualGood category by Position * @return */ public static List<VirtualGood> getVirtualGoodByCategoryPosition(int pos, GetVirtualGoodKind getVirtualGoodKind) throws LiErrorHandler { // TODO Auto-generated method stub return IAP.getVirtualGoodByCategoryPosition( pos, getVirtualGoodKind); } /** * return User's Balance * @return */ public static int getUserCurrencyBalance(LiCurrency liCurrency){return IAP.getUserCurrencyBalance(liCurrency);} /** * Retrieves User's Inventory from the server * @throws applicasa.LiCore.LiErrorHandler */ public static void refreshInventory(LiCallbackGetVirtualGoodInventory liCallbackGetVirtualGoodInventory) throws LiErrorHandler { IAP.refreshInventory(liCallbackGetVirtualGoodInventory); } /** * Retrieves the whole store from server * @throws applicasa.LiCore.LiErrorHandler */ public static void refreshStore() throws LiErrorHandler { IAP.refreshStore(); } public static void refreshStore(LiCallbackGetStoreCallback liCallbackGetStoreCallback) throws LiErrorHandler { IAP.refreshStore(liCallbackGetStoreCallback); } /** * Reload IAP Localy * @throws applicasa.LiCore.LiErrorHandler */ public static void reloadIAPLocaly() throws LiErrorHandler { IAP.reloadIAPLocaly(); } /** * Reload User's Inventory from local db * @throws applicasa.LiCore.LiErrorHandler */ public static void reloadVirtualGoodInventory() { IAP.reloadVirtualGoodInventory(); } /** * return the virtual good by Id * @param id * @return */ public static VirtualGood getVirtualGoodById(String id) { // TODO Auto-generated method stub return IAP.getVirtualGoodById(id); } /** * return the virtual currency deal by Id * @param id * @return */ public static VirtualCurrency getVirtualCurrencyDealById(String id) { // TODO Auto-generated method stub return IAP.getVirtualCurrencyDealById(id); } /** * return the virtual good deal by Id * @param id * @return */ public static VirtualGood getVirtualGoodDealById(String id) { // TODO Auto-generated method stub return IAP.getVirtualGoodDealById(id); } /** * After purchase is completed the calling activity will go to foreground and onActivityResult method is called, * In order to complete it process this method must be called to update the usere's balance * @param requestCode == LiStore.IAB_REQUEST * @param resultCode * @param data */ public static void onActivityResult(int requestCode, int resultCode, Intent data) { IAP.onActivityResult(requestCode, resultCode, data); } /** * Callback that notifies when usere's balance has changed * @param liCallbackIAPBalanceChanged */ public static void setLiCallbackIAPBalanceChanged(LiCallbackIAPBalanceChanged liCallbackIAPBalanceChanged) { IAP.setLiCallbackIAPBalanceChanged(liCallbackIAPBalanceChanged); } /** * dispose the IAB service, must be called when application is destroyed */ public static void dispose() { IAP.dispose(); } /** * In cases when application restarts after in app billing purchase to complete the process this method is called during applicasa's initialization * However, it can be called at any other time. * */ public static void handleFailedOnActivityResultRequests() { IAP.handleFailedOnActivityResultRequests(); } /** * Return the currency inventory that the user has currently * @param mGotInventoryListener */ public static void queryInventoryAsync( QueryInventoryFinishedListener mGotInventoryListener) { // TODO Auto-generated method stub IAP.queryInventoryAsync(mGotInventoryListener); } /** * In-App-Billing V3 requires that user's inventory is consumed before making another purchase for the same product * Applicasa does that automatically for the product it manages, To enable support for other product you may use it combined with queryInventoryAsync * @param purchase - the purchase to consume * @param mConsumeFinishedListener */ public static void consumeAsync(LiPurchase purchase, OnConsumeFinishedListener mConsumeFinishedListener) { // TODO Auto-generated method stub IAP.consumeAsync(purchase, mConsumeFinishedListener); } }