diff --git a/extension-iap/src/iap_android.cpp b/extension-iap/src/iap_android.cpp index f20602c..e8d37a5 100644 --- a/extension-iap/src/iap_android.cpp +++ b/extension-iap/src/iap_android.cpp @@ -1,5 +1,10 @@ #if defined(DM_PLATFORM_ANDROID) +#define EXTENSION_NAME IAPExt +#define LIB_NAME "IAPExt" +#define MODULE_NAME "IAPExt" +#define DLIB_LOG_DOMAIN LIB_NAME + #include #include @@ -8,8 +13,6 @@ #include "iap.h" #include "iap_private.h" -#define LIB_NAME "iap" - struct IAP { IAP() @@ -267,6 +270,7 @@ JNIEXPORT void JNICALL Java_com_defold_iap_IapJNI_onProductsResult(JNIEnv* env, cmd->m_Data = strdup(pl); env->ReleaseStringUTFChars(productList, pl); } + IAP_Queue_Push(&g_IAP.m_CommandQueue, cmd); } @@ -288,6 +292,7 @@ JNIEXPORT void JNICALL Java_com_defold_iap_IapJNI_onPurchaseResult__ILjava_lang_ cmd.m_Data = strdup(pd); env->ReleaseStringUTFChars(purchaseData, pd); } + IAP_Queue_Push(&g_IAP.m_CommandQueue, &cmd); } @@ -343,6 +348,7 @@ static void HandlePurchaseResult(const IAPCommand* cmd) if (!dmScript::SetupCallback(cmd->m_Callback)) { + dmLogError("Failed to setup callback"); assert(top == lua_gettop(L)); return; } @@ -358,6 +364,7 @@ static void HandlePurchaseResult(const IAPCommand* cmd) IAP_PushError(L, "purchase response was null", REASON_UNSPECIFIED); } } else if (cmd->m_ResponseCode == BILLING_RESPONSE_RESULT_USER_CANCELED) { + dmLogError("User canceled purchase"); lua_pushnil(L); IAP_PushError(L, "user canceled purchase", REASON_USER_CANCELED); } else { @@ -367,9 +374,7 @@ static void HandlePurchaseResult(const IAPCommand* cmd) } dmScript::PCall(L, 3, 0); - dmScript::TeardownCallback(cmd->m_Callback); - assert(top == lua_gettop(L)); } @@ -454,9 +459,10 @@ static dmExtension::Result FinalizeIAP(dmExtension::Params* params) env->DeleteGlobalRef(g_IAP.m_IAP); env->DeleteGlobalRef(g_IAP.m_IAPJNI); g_IAP.m_IAP = NULL; + return dmExtension::RESULT_OK; } -DM_DECLARE_EXTENSION(IAPExt, "IAP", 0, 0, InitializeIAP, UpdateIAP, 0, FinalizeIAP) +DM_DECLARE_EXTENSION(EXTENSION_NAME, LIB_NAME, 0, 0, InitializeIAP, UpdateIAP, 0, FinalizeIAP) #endif //DM_PLATFORM_ANDROID diff --git a/extension-iap/src/iap_ios.mm b/extension-iap/src/iap_ios.mm index f3b28fd..65c35c3 100644 --- a/extension-iap/src/iap_ios.mm +++ b/extension-iap/src/iap_ios.mm @@ -1,5 +1,10 @@ #if defined(DM_PLATFORM_IOS) +#define EXTENSION_NAME IAPExt +#define LIB_NAME "IAPExt" +#define MODULE_NAME "IAPExt" +#define DLIB_LOG_DOMAIN LIB_NAME + #include #include "iap.h" @@ -9,8 +14,6 @@ #import #import -#define LIB_NAME "iap" - struct IAP; @interface SKPaymentTransactionObserver : NSObject @@ -636,6 +639,5 @@ static dmExtension::Result FinalizeIAP(dmExtension::Params* params) } -DM_DECLARE_EXTENSION(IAPExt, "IAP", 0, 0, InitializeIAP, UpdateIAP, 0, FinalizeIAP) - +DM_DECLARE_EXTENSION(EXTENSION_NAME, LIB_NAME, 0, 0, InitializeIAP, UpdateIAP, 0, FinalizeIAP) #endif // DM_PLATFORM_IOS