Merge pull request #2379 from natural-law/master

issue #1723 : Remove the protocol IAP Online.
This commit is contained in:
James Chen 2013-04-15 23:52:55 -07:00
commit b3e499c6db
3 changed files with 0 additions and 211 deletions

View File

@ -1,76 +0,0 @@
#ifndef __CCX_PROTOCOL_IAP_ONLINE_H__
#define __CCX_PROTOCOL_IAP_ONLINE_H__
#include "ProtocolIAP.h"
namespace cocos2d { namespace plugin {
class LocalResultListener
{
public:
virtual void payFailedLocally(EPayResult ret, const char* msg) = 0;
};
class ProtocolIAPOnLine : public PluginProtocol
{
public:
/**
@brief plugin initialization
*/
virtual bool init();
/**
@brief initialize the developer info
@param devInfo This parameter is the info of developer,
different plugin have different format
@warning Must invoke this interface before other interfaces.
And invoked only once.
*/
virtual void initDeveloperInfo(TDeveloperInfo devInfo);
/**
@brief pay for product
@param info The info of product, must contains key:
productName The name of product
productPrice The price of product
productDesc The description of product
@warning For different plugin, the parameter should have other keys to pay.
Look at the manual of plugins.
*/
virtual void payForProduct(TProductInfo info);
/**
@brief Set whether needs to output logs to console.
@param debug if true debug mode enabled, or debug mode disabled.
*/
virtual void setDebugMode(bool debug);
/**
@breif set the local result listener
@param pListener The callback object for local result
@wraning Must invoke this interface before payForProduct.
*/
static void setLocalResultListener(LocalResultListener* pListener);
/**
@brief pay failed locally callback
*/
static void payFailedLocally(EPayResult ret, const char* msg);
virtual const char* getPluginVersion() { return "ProtocolIAPOnLine, v0.1.01 , subclass should override this interface!"; };
virtual const char* getSDKVersion();
virtual const char* getPluginName() = 0;
protected:
ProtocolIAPOnLine();
public:
virtual ~ProtocolIAPOnLine();
protected:
static LocalResultListener* m_spListener;
};
}} // namespace cocos2d { namespace plugin {
#endif /* __CCX_PROTOCOL_IAP_ONLINE_H__ */

View File

@ -1,134 +0,0 @@
#include "ProtocolIAPOnLine.h"
#include "PluginJniHelper.h"
#include <android/log.h>
#include "PluginUtils.h"
#include "PluginJavaData.h"
#if 1
#define LOG_TAG "ProtocolIAPOnLine"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
#else
#define LOGD(...)
#endif
namespace cocos2d { namespace plugin {
extern "C" {
JNIEXPORT void JNICALL Java_org_cocos2dx_plugin_InterfaceIAPOL_nativePayFailedLocally(JNIEnv* env, jobject thiz, jint ret, jstring msg)
{
std::string strMsg = PluginJniHelper::jstring2string(msg);
ProtocolIAPOnLine::payFailedLocally((EPayResult) ret, strMsg.c_str());
}
}
LocalResultListener* ProtocolIAPOnLine::m_spListener = NULL;
ProtocolIAPOnLine::ProtocolIAPOnLine()
{
}
ProtocolIAPOnLine::~ProtocolIAPOnLine()
{
PluginUtils::erasePluginJavaData(this);
}
bool ProtocolIAPOnLine::init()
{
return true;
}
void ProtocolIAPOnLine::initDeveloperInfo(TDeveloperInfo devInfo)
{
if (devInfo.empty())
{
LOGD("The developer info is empty!");
return;
}
else
{
PluginJavaData* pData = PluginUtils::getPluginJavaData(this);
PluginJniMethodInfo t;
if (PluginJniHelper::getMethodInfo(t
, pData->jclassName.c_str()
, "initDeveloperInfo"
, "(Ljava/util/Hashtable;)V"))
{
// generate the hashtable from map
jobject obj_Map = PluginUtils::createJavaMapObject(t, &devInfo);
// invoke java method
t.env->CallVoidMethod(pData->jobj, t.methodID, obj_Map);
t.env->DeleteLocalRef(obj_Map);
t.env->DeleteLocalRef(t.classID);
}
}
}
void ProtocolIAPOnLine::payForProduct(TProductInfo info)
{
if (info.empty())
{
LOGD("The product info is empty!");
return;
}
else
{
PluginJavaData* pData = PluginUtils::getPluginJavaData(this);
PluginJniMethodInfo t;
if (PluginJniHelper::getMethodInfo(t
, pData->jclassName.c_str()
, "payForProduct"
, "(Ljava/util/Hashtable;)V"))
{
// generate the hashtable from map
jobject obj_Map = PluginUtils::createJavaMapObject(t, &info);
// invoke java method
t.env->CallVoidMethod(pData->jobj, t.methodID, obj_Map);
t.env->DeleteLocalRef(obj_Map);
t.env->DeleteLocalRef(t.classID);
}
}
}
void ProtocolIAPOnLine::setLocalResultListener(LocalResultListener* pListener)
{
m_spListener = pListener;
}
void ProtocolIAPOnLine::payFailedLocally(EPayResult ret, const char* msg)
{
if (m_spListener)
{
m_spListener->payFailedLocally(ret, msg);
}
else
{
LOGD("Local Result listener is null!");
}
LOGD("Pay failed locally : %d(%s)", (int) ret, msg);
}
const char* ProtocolIAPOnLine::getSDKVersion()
{
std::string verName;
PluginJavaData* pData = PluginUtils::getPluginJavaData(this);
PluginJniMethodInfo t;
if (PluginJniHelper::getMethodInfo(t
, pData->jclassName.c_str()
, "getSDKVersion"
, "()Ljava/lang/String;"))
{
jstring ret = (jstring)(t.env->CallObjectMethod(pData->jobj, t.methodID));
verName = PluginJniHelper::jstring2string(ret);
}
return verName.c_str();
}
void ProtocolIAPOnLine::setDebugMode(bool debug)
{
PluginUtils::callJavaFunctionWithName_oneBaseType(this, "setDebugMode", "(Z)V", debug);
}
}} // namespace cocos2d { namespace plugin {

View File

@ -12,7 +12,6 @@ $(addprefix ../../platform/android/, \
PluginUtils.cpp \
ProtocolAnalytics.cpp \
ProtocolIAP.cpp \
ProtocolIAPOnLine.cpp \
) \
../../PluginManager.cpp \
../../RegisterPlugin.cpp \