public static UpgradeVG GetLastUpgradeForVirtualGood(string goodItemId) { #if UNITY_ANDROID UpgradeVG vgu = null; AndroidJNI.PushLocalFrame(100); using (AndroidJavaObject jniUpgradeVG = AndroidJNIHandler.CallStatic <AndroidJavaObject>( new AndroidJavaClass("com.soomla.unity.StoreInfo"), "getGoodLastUpgrade", goodItemId)) { vgu = new UpgradeVG(jniUpgradeVG); } AndroidJNI.PopLocalFrame(IntPtr.Zero); return(vgu); #elif UNITY_IOS IntPtr p = IntPtr.Zero; int err = storeInfo_GetLastUpgradeForVirtualGood(goodItemId, out p); IOS_ErrorCodes.CheckAndThrowException(err); string json = Marshal.PtrToStringAnsi(p); Marshal.FreeHGlobal(p); JSONObject obj = new JSONObject(json); return(new UpgradeVG(obj)); #else return(null); #endif }
public static VirtualItem GetItemByItemId(string itemId) { StoreUtils.LogDebug(TAG, "Trying to fetch an item with itemId: " + itemId); #if UNITY_ANDROID VirtualItem vi = null; AndroidJNI.PushLocalFrame(100); using (AndroidJavaObject jniVirtualItem = AndroidJNIHandler.CallStatic <AndroidJavaObject>( new AndroidJavaClass("com.soomla.unity.StoreInfo"), "getVirtualItem", itemId)) { vi = VirtualItem.factoryItemFromJNI(jniVirtualItem); } AndroidJNI.PopLocalFrame(IntPtr.Zero); return(vi); #elif UNITY_IOS IntPtr p = IntPtr.Zero; int err = storeInfo_GetItemByItemId(itemId, out p); IOS_ErrorCodes.CheckAndThrowException(err); string json = Marshal.PtrToStringAnsi(p); Marshal.FreeHGlobal(p); StoreUtils.LogDebug(TAG, "Got json: " + json); JSONObject obj = new JSONObject(json); return(VirtualItem.factoryItemFromJSONObject(obj)); #else return(null); #endif }
public static PurchasableVirtualItem GetPurchasableItemWithProductId(string productId) { #if UNITY_EDITOR foreach (var i in GetVirtualCurrencyPacks()) { if (i.ItemId == productId) { return(i); } } return(null); #elif UNITY_ANDROID VirtualItem vi = null; AndroidJNI.PushLocalFrame(100); using (AndroidJavaObject jniVirtualItem = AndroidJNIHandler.CallStatic <AndroidJavaObject>( new AndroidJavaClass("com.soomla.unity.StoreInfo"), "getPurchasableItem", productId)) { vi = VirtualItem.factoryItemFromJNI(jniVirtualItem); } AndroidJNI.PopLocalFrame(IntPtr.Zero); return((PurchasableVirtualItem)vi); #elif UNITY_IOS IntPtr p = IntPtr.Zero; int err = storeInfo_GetPurchasableItemWithProductId(productId, out p); IOS_ErrorCodes.CheckAndThrowException(err); string nonConsJson = Marshal.PtrToStringAnsi(p); Marshal.FreeHGlobal(p); JSONObject obj = new JSONObject(nonConsJson); return((PurchasableVirtualItem)VirtualItem.factoryItemFromJSONObject(obj)); #else return(null); #endif }
public static VirtualCategory GetCategoryForVirtualGood(string goodItemId) { #if UNITY_ANDROID && !UNITY_EDITOR VirtualCategory vc = null; AndroidJNI.PushLocalFrame(100); using (AndroidJavaObject jniVirtualVategory = AndroidJNIHandler.CallStatic <AndroidJavaObject>( new AndroidJavaClass("com.soomla.unity.StoreInfo"), "getCategoryForVirtualGood", goodItemId)) { vc = new VirtualCategory(jniVirtualVategory); } AndroidJNI.PopLocalFrame(IntPtr.Zero); return(vc); #elif UNITY_IOS && !UNITY_EDITOR IntPtr p = IntPtr.Zero; int err = storeInfo_GetCategoryForVirtualGood(goodItemId, out p); IOS_ErrorCodes.CheckAndThrowException(err); string json = Marshal.PtrToStringAnsi(p); Marshal.FreeHGlobal(p); JSONObject obj = new JSONObject(json); return(new VirtualCategory(obj)); #else return(null); #endif }
public static string GetGoodCurrentUpgrade(string goodItemId) { if (!Application.isEditor) { StoreUtils.LogDebug(TAG, "SOOMLA/UNITY Calling GetGoodCurrentUpgrade with: " + goodItemId); #if UNITY_ANDROID string currentItemId = ""; AndroidJNI.PushLocalFrame(100); using (AndroidJavaClass jniStoreInventory = new AndroidJavaClass("com.soomla.store.StoreInventory")) { currentItemId = AndroidJNIHandler.CallStatic <string>(jniStoreInventory, "getGoodCurrentUpgrade", goodItemId); } AndroidJNI.PopLocalFrame(IntPtr.Zero); return(currentItemId); #elif UNITY_IOS IntPtr p = IntPtr.Zero; int err = storeInventory_GetGoodCurrentUpgrade(goodItemId, out p); IOS_ErrorCodes.CheckAndThrowException(err); string result = Marshal.PtrToStringAnsi(p); Marshal.FreeHGlobal(p); return(result); #endif } return(null); }
public static void BuyMarketItem(string productId) { #if UNITY_ANDROID AndroidJNI.PushLocalFrame(100); using (AndroidJavaObject jniPurchasableItem = AndroidJNIHandler.CallStatic <AndroidJavaObject>( new AndroidJavaClass("com.soomla.unity.StoreInfo"), "getPurchasableItem", productId)) { AndroidJNIHandler.CallVoid(jniStoreController, "buyWithGooglePlay", jniPurchasableItem.Call <AndroidJavaObject>("getPurchaseType").Call <AndroidJavaObject>("getGoogleMarketItem"), ""); } AndroidJNI.PopLocalFrame(IntPtr.Zero); #elif UNITY_IOS storeController_BuyMarketItem(productId); #endif }
/** Virtual Items **/ public static int GetItemBalance(string itemId) { if (!Application.isEditor) { StoreUtils.LogDebug(TAG, "SOOMLA/UNITY Calling GetItemBalance with: " + itemId); #if UNITY_ANDROID AndroidJNI.PushLocalFrame(100); int balance = 0; using (AndroidJavaClass jniStoreInventory = new AndroidJavaClass("com.soomla.store.StoreInventory")) { balance = AndroidJNIHandler.CallStatic <int>(jniStoreInventory, "getVirtualItemBalance", itemId); } AndroidJNI.PopLocalFrame(IntPtr.Zero); return(balance); #elif UNITY_IOS int balance = 0; int err = storeInventory_GetItemBalance(itemId, out balance); IOS_ErrorCodes.CheckAndThrowException(err); return(balance); #endif } return(0); }
/** NonConsumables **/ public static bool NonConsumableItemExists(string nonConsItemId) { if (!Application.isEditor) { StoreUtils.LogDebug(TAG, "SOOMLA/UNITY Calling NonConsumableItemExists with: " + nonConsItemId); #if UNITY_ANDROID bool result = false; AndroidJNI.PushLocalFrame(100); using (AndroidJavaClass jniStoreInventory = new AndroidJavaClass("com.soomla.store.StoreInventory")) { result = AndroidJNIHandler.CallStatic <bool>(jniStoreInventory, "nonConsumableItemExists", nonConsItemId); } AndroidJNI.PopLocalFrame(IntPtr.Zero); return(result); #elif UNITY_IOS bool result = false; int err = storeInventory_NonConsumableItemExists(nonConsItemId, out result); IOS_ErrorCodes.CheckAndThrowException(err); return(result); #endif } return(false); }
public static int GetGoodUpgradeLevel(string goodItemId) { if (!Application.isEditor) { StoreUtils.LogDebug(TAG, "SOOMLA/UNITY Calling GetGoodUpgradeLevel with: " + goodItemId); #if UNITY_ANDROID int level = 0; AndroidJNI.PushLocalFrame(100); using (AndroidJavaClass jniStoreInventory = new AndroidJavaClass("com.soomla.store.StoreInventory")) { level = AndroidJNIHandler.CallStatic <int>(jniStoreInventory, "getGoodUpgradeLevel", goodItemId); } AndroidJNI.PopLocalFrame(IntPtr.Zero); return(level); #elif UNITY_IOS int level = 0; int err = storeInventory_GetGoodUpgradeLevel(goodItemId, out level); IOS_ErrorCodes.CheckAndThrowException(err); return(level); #endif } return(0); }
public static bool IsVirtualGoodEquipped(string goodItemId) { if (!Application.isEditor) { StoreUtils.LogDebug(TAG, "SOOMLA/UNITY Calling IsVirtualGoodEquipped with: " + goodItemId); #if UNITY_ANDROID bool result = false; AndroidJNI.PushLocalFrame(100); using (AndroidJavaClass jniStoreInventory = new AndroidJavaClass("com.soomla.store.StoreInventory")) { result = AndroidJNIHandler.CallStatic <bool>(jniStoreInventory, "isVirtualGoodEquipped", goodItemId); } AndroidJNI.PopLocalFrame(IntPtr.Zero); return(result); #elif UNITY_IOS bool result = false; int err = storeInventory_IsVirtualGoodEquipped(goodItemId, out result); IOS_ErrorCodes.CheckAndThrowException(err); return(result); #endif } return(false); }