Exemplo n.º 1
0
FcmPushClient::FcmPushClient()
{
    LOG(TRACE) + "FcmPushInit()";
    canExecuteNotifications = false;
    JNIEnv *env = jnienv();

    static jclass cls = rho_find_class(env, s_FCM_FACADE_CLASS);
    if (!cls) {
        LOG(ERROR) + "Cannot find class: " + s_FCM_FACADE_CLASS;
        return;
    }

    static jmethodID mid = env->GetStaticMethodID(cls, "initFireBase", "()V");
    if (!mid) {
        LOG(ERROR) + "Cannot get " + s_FCM_FACADE_CLASS + ".initFireBase() method";
        return;
    }

    env->CallStaticVoidMethod(cls, mid);

    CMethodResult result;
    setProperty("id", s_Type, result);
    setProperty("type", IPush::PUSH_TYPE_NATIVE, result);
    setProperty("senderId", RHOCONF().getString("Push.fcm.senderId"), result);
    setPropertyFromMethod("google_app_id", result);
    //setPropertyFromMethod("google_api_key", result);
    setPropertyFromMethod("gcm_defaultSenderId", result);

}
Exemplo n.º 2
0
extern "C" const char* rho_barcode_barcode_recognize(const char* filename) {
    JNIEnv *env = jnienv();
    jclass cls = rho_find_class(env, "com/rhomobile/barcode/Barcode");
    if (!cls) return NULL;
    jmethodID mid = env->GetStaticMethodID( cls, "recognize", "(Ljava/lang/String;)Ljava/lang/String;");
    if (!mid) return NULL;

    jstring objFilename = env->NewStringUTF(filename);
    jstring res = (jstring)env->CallStaticObjectMethod(cls, mid, objFilename);
    env->DeleteLocalRef(objFilename);

    if (res == NULL) {
        RAWLOG_ERROR("Failed to recognize.");
        return NULL;
    }

    if(env->GetStringUTFLength(res) < (sizeof(barcode_result)/sizeof(barcode_result[0])))
    {
        const char* code = env->GetStringUTFChars(res,0);
        strcpy(barcode_result, code);
        env->ReleaseStringUTFChars(res, code);
    } else
    {
        RAWLOG_ERROR("Recognized data is too large.");
        return NULL;
    }

    return barcode_result;
}
Exemplo n.º 3
0
extern "C" void Init_Barcode1(void)
{
    JNIEnv *env = jnienv();
    if(env)
    {
        jclass barcode1SingletonClass = rho_find_class(env, BARCODE1_SINGLETON_CLASS);
        if(!barcode1SingletonClass)
        {
            RAWLOG_ERROR1("Failed to find java class: %s", BARCODE1_SINGLETON_CLASS);
            return;
        }
        jmethodID midInit = env->GetStaticMethodID(barcode1SingletonClass, "init", "()V");
        if(!midInit)
        {
            RAWLOG_ERROR1("Failed to get method 'init' for java class %s", BARCODE1_SINGLETON_CLASS);
            return;
        }
        env->CallStaticVoidMethod(barcode1SingletonClass, midInit);

        Init_RubyAPI_Barcode1();
        //Init_JSAPI_Barcode1();
    }
    else
    {
        RAWLOG_ERROR("Failed to initialize Barcode1 API: jnienv() is failed");
    }

}
Exemplo n.º 4
0
// that function return native object used for display Web content :
// UIWebView* for iPhone
// jobject for Android - jobect is android.webkit.WebView class type
// HWND for Windows Mobile 
void* RhoNativeViewManager::getWebViewObject(int tab_index) {
    JNIEnv *env = jnienv();
    jclass cls = rho_find_class(env, "com/rhomobile/rhodes/nativeview/RhoNativeViewManager");
    if (!cls) return null;
    jmethodID mid = env->GetStaticMethodID( cls, "getWebViewObject", "(I)Landroid/webkit/WebView;");
    if (!mid) return null;
    return env->CallStaticObjectMethod(cls, mid, tab_index);
}
Exemplo n.º 5
0
RHO_GLOBAL double google_mapview_state_center_lon()
{
    JNIEnv *env = jnienv();
    static jclass cls = rho_find_class(env, GMAP_FACADE_CLASS);
    if (!cls) return 0;
    jmethodID mid = getJNIClassStaticMethod(env, cls, "getCenterLongitude", "()D");
    if (!mid) return 0;

    return env->CallStaticDoubleMethod(cls, mid);
}
Exemplo n.º 6
0
RHO_GLOBAL void google_mapview_close()
{
    JNIEnv *env = jnienv();
    static jclass clsMapView = rho_find_class(env, GMAP_FACADE_CLASS);
    if (!clsMapView) return;
    jmethodID midClose = getJNIClassStaticMethod(env, clsMapView, "close", "()V");
    if (!midClose) return;

    env->CallStaticVoidMethod(clsMapView, midClose);
}
Exemplo n.º 7
0
RHO_GLOBAL VALUE google_mapview_state_started()
{
    VALUE nil = rho_ruby_get_NIL();
    JNIEnv *env = jnienv();
    static jclass cls = rho_find_class(env, GMAP_FACADE_CLASS);
    if (!cls) return nil;
    jmethodID mid = getJNIClassStaticMethod(env, cls, "isStarted", "()Z");
    if (!mid) return nil;

    return rho_ruby_create_boolean(env->CallStaticBooleanMethod(cls, mid));
}
Exemplo n.º 8
0
extern "C" void rho_barcode_take_barcode(const char* callback) {
    JNIEnv *env = jnienv();
    jclass cls = rho_find_class(env, "com/rhomobile/barcode/Barcode");
    if (!cls) return;
    jmethodID mid = env->GetStaticMethodID( cls, "take", "(Ljava/lang/String;)V");
    if (!mid) return;

    jstring objCallback = env->NewStringUTF(callback);
    env->CallStaticObjectMethod(cls, mid, objCallback);
    env->DeleteLocalRef(objCallback);
}
extern "C" VALUE locationmanager_native_process_string(const char* str) {

    JNIEnv *env = jnienv();
    jclass cls = rho_find_class(env, "com/locationmanager/Locationmanager");
    if (!cls) return rho_ruby_get_NIL();;
    jmethodID mid = env->GetStaticMethodID( cls, "processString", "(Ljava/lang/String;)Ljava/lang/String;");
    if (!mid) return rho_ruby_get_NIL();;
    jstring objStr = env->NewStringUTF(str);
    jstring jstr = (jstring)env->CallStaticObjectMethod(cls, mid, objStr);
    env->DeleteLocalRef(objStr);
    const char* buf = env->GetStringUTFChars(jstr,0);
    VALUE result = rho_ruby_create_string(buf);
    env->ReleaseStringUTFChars(jstr, buf);
    return result;
}
Exemplo n.º 10
0
RHO_GLOBAL void google_mapview_create(rho_param *p)
{
    JNIEnv *env = jnienv();
    static jclass clsMapView = rho_find_class(env, GMAP_FACADE_CLASS);
    if (!clsMapView) return;
    jmethodID midCreate = getJNIClassStaticMethod(env, clsMapView, "create", "(Ljava/util/Map;)V");
    if (!midCreate) return;

    if (p->type != RHO_PARAM_HASH) {
        RAWLOG_ERROR("create: wrong input parameter (expect Hash)");
        return;
    }

    jhobject paramsObj = RhoValueConverter(env).createObject(p);
    env->CallStaticVoidMethod(clsMapView, midCreate, paramsObj.get());
}
Exemplo n.º 11
0
extern "C" void Init_Development(void)
{
    RAWTRACE(__FUNCTION__);

    JNIEnv *env = jnienv();
    if(env)
    {
        jclass cls = rho_find_class(env, DEVELOPMENT_FACTORY_CLASS);
        if(!cls)
        {
            RAWLOG_ERROR1("Failed to find java class: %s", DEVELOPMENT_FACTORY_CLASS);
            return;
        }
        jmethodID midFactory = env->GetMethodID(cls, "<init>", "()V");
        if(!midFactory)
        {
            RAWLOG_ERROR1("Failed to get constructor for java class %s", DEVELOPMENT_FACTORY_CLASS);
            return;
        }
        jobject jFactory = env->NewObject(cls, midFactory);
        if(env->IsSameObject(jFactory, NULL))
        {
            RAWLOG_ERROR1("Failed to create %s instance", DEVELOPMENT_FACTORY_CLASS);
            return;
        }
        
        RAWTRACE("Initializing Java factory");

        rho::CDevelopmentBase::setJavaFactory(env, jFactory);

        RAWTRACE("Deleting JNI reference");

        env->DeleteLocalRef(jFactory);

        RAWTRACE("Initializing API");

        Init_Development_API();

        RAWTRACE("Init_Development succeeded");
    }
    else
    {
        RAWLOG_ERROR("Failed to initialize Development API: jnienv() is failed");
    }

}
Exemplo n.º 12
0
extern "C" void Init_NativeToolbar(void)
{
    RAWTRACE(__FUNCTION__);

    JNIEnv *env = jnienv();
    if(env)
    {
        jclass cls = rho_find_class(env, NATIVETOOLBAR_FACTORY_CLASS);
        if(!cls)
        {
            RAWLOG_ERROR1("Failed to find java class: %s", NATIVETOOLBAR_FACTORY_CLASS);
            return;
        }
        jmethodID midFactory = env->GetMethodID(cls, "<init>", "()V");
        if(!midFactory)
        {
            RAWLOG_ERROR1("Failed to get constructor for java class %s", NATIVETOOLBAR_FACTORY_CLASS);
            return;
        }
        jobject jFactory = env->NewObject(cls, midFactory);
        if(env->IsSameObject(jFactory, NULL))
        {
            RAWLOG_ERROR1("Failed to create %s instance", NATIVETOOLBAR_FACTORY_CLASS);
            return;
        }
        
        RAWTRACE("Initializing Java factory");

        rho::CNativeToolbarBase::setJavaFactory(env, jFactory);

        RAWTRACE("Deleting JNI reference");

        env->DeleteLocalRef(jFactory);

        RAWTRACE("Initializing API");

        Init_NativeToolbar_API();

        RAWTRACE("Init_NativeToolbar succeeded");
    }
    else
    {
        RAWLOG_ERROR("Failed to initialize NativeToolbar API: jnienv() is failed");
    }
    RHODESAPP().getExtManager().requireRubyFile("RhoNativeToolbarApi");
}
Exemplo n.º 13
0
void FcmPushClient::refreshToken(){
    LOG(TRACE) + "refreshToken()";
    JNIEnv *env = jnienv();

    static jclass cls = rho_find_class(env, s_FCM_FACADE_CLASS);
    if (!cls) {
        LOG(ERROR) + "Cannot find class: " + s_FCM_FACADE_CLASS;
        return;
    }

    static jmethodID mid = env->GetStaticMethodID(cls, "refreshToken", "()V");
    if (!mid) {
        LOG(ERROR) + "Cannot get " + s_FCM_FACADE_CLASS + ".refreshToken() method";
        return;
    }

    env->CallStaticVoidMethod(cls, mid);

}
Exemplo n.º 14
0
//----------------------------------------------------------------------------------------------------------------------
JNIEnv* CBarcode1::jniInit()
{
    JNIEnv *env = jnienv();
    if(!s_class)
    {
        s_class = rho_find_class(env, CLASS);
        if(!s_class)
        {
            RAWLOG_ERROR1("Failed to find java class: %s", CLASS);
            s_class = 0;
            return NULL;
        }
        s_midEnumerate = env->GetStaticMethodID(s_class, "enumerate", "(V)java/util/List;");
        if(!s_midEnumerate)
        {
            RAWLOG_ERROR1("Failed to get method 'enumerate' for java class %s", CLASS);
            s_class = 0;
            return NULL;
        }
        s_midGetDefault = env->GetStaticMethodID(s_class, "getDefault", "()com/rhomobile/rhoelements/IBarcode1;");
        if(!s_midGetDefault)
        {
            RAWLOG_ERROR1("Failed to get method 'getDefault' for java class %s", CLASS);
            s_class = 0;
            return NULL;
        }
        s_midSetDefaultID = env->GetStaticMethodID(s_class, "setDefaultID", "(java/util/String;)V");
        if(!s_midSetDefaultID)
        {
            RAWLOG_ERROR1("Failed to get method 'setDefaultID' for java class %s", CLASS);
            s_class = 0;
            return NULL;
        }
        s_midCreate = env->GetStaticMethodID(s_class, "create", "(java/util/String;)com/rhomobile/rhoelements/IBarcode1;");
        if(!s_midCreate)
        {
            RAWLOG_ERROR1("Failed to get method 'create' for java class %s", CLASS);
            s_class = 0;
            return NULL;
        }
    }
    return env;
}
Exemplo n.º 15
0
extern "C" void Init_Development_extension() {
     Development_Init();

     JNIEnv *env = jnienv();
     jclass cls = rho_find_class(env, DEVELOPMENT_CLASS);
     if (!cls) {
    	 RAWLOG_ERROR1("Failed to create %s instance", DEVELOPMENT_CLASS);
    	 return;
     }
     jmethodID mid = getJNIClassStaticMethod(env, cls, "initExtension", "()V");
     if (!mid) {
    	 RAWLOG_ERROR1("Failed to get initExtension() method from %s class", DEVELOPMENT_CLASS);
    	 return;
     }
     if (already_inited == 0) {
    	 already_inited = 1;
    	 env->CallStaticVoidMethod(cls, mid);
     }

}
Exemplo n.º 16
0
extern "C" void rho_motobarcode_enumerate(const char* callback) {
    
    JNIEnv *env = jnienv();
    jclass cls = rho_find_class(env, "com/rhomobile/barcode/Barcode");
    if (!cls) return;
    jmethodID mid = env->GetStaticMethodID( cls, "callMotoEnumerateCallback", "(Ljava/lang/String;)V");
    if (!mid) return;
    
    jstring objCallback = env->NewStringUTF(callback);
    if(objCallback != NULL)
    {
        env->CallStaticObjectMethod(cls, mid, objCallback);
        env->DeleteLocalRef(objCallback);
    }

    //VALUE b_array = rho_ruby_create_array();
    //rho_ruby_add_to_array(b_array, rho_ruby_create_string("RhoBarcode based on ZXing"));
	//return b_array;
   
}
Exemplo n.º 17
0
//----------------------------------------------------------------------------------------------------------------------
void GcmPushClient::doUnregister()
{
    LOG(TRACE) + "GcmPushUnregister()";

    JNIEnv *env = jnienv();

    static jclass cls = rho_find_class(env, s_GCM_FACADE_CLASS);
    if (!cls) {
        LOG(ERROR) + "Cannot find class: " + s_GCM_FACADE_CLASS;
        return;
    }

    static jmethodID mid = env->GetStaticMethodID(cls, "Unregister", "()V");
    if (!mid) {
        LOG(ERROR) + "Cannot get " + s_GCM_FACADE_CLASS + ".Unregister() method";
        return;
    }

    env->CallStaticVoidMethod(cls, mid);
}
Exemplo n.º 18
0
extern "C" const char* rho_barcode_barcode_recognize(const char* filename) {
    JNIEnv *env = jnienv();
    jclass cls = rho_find_class(env, "com/rhomobile/barcode/Barcode");
    if (!cls) return NULL;
    jmethodID mid = env->GetStaticMethodID( cls, "recognize", "(Ljava/lang/String;)Ljava/lang/String;");
    if (!mid) return NULL;

    jstring objFilename = env->NewStringUTF(filename);
    jstring res = (jstring)env->CallStaticObjectMethod(cls, mid, objFilename);
    env->DeleteLocalRef(objFilename);

    if (res == NULL) {
         return NULL;
    }

    const char* code = env->GetStringUTFChars(res,0);
    strcpy(barcode_result, code);
    env->ReleaseStringUTFChars(res, code);

    return barcode_result;
}
Exemplo n.º 19
0
void FcmPushClient::setPropertyFromMethod(const char* methodName, CMethodResult &result) {

    JNIEnv *env = jnienv();
    jclass cls = rho_find_class(env, s_FCM_FACADE_CLASS);
    if (!cls) {
        LOG(ERROR) + "Cannot get " + s_FCM_FACADE_CLASS;
        return;
    }

    jmethodID mid = env->GetStaticMethodID( cls, methodName, "()Ljava/lang/String;");
    if (!mid){
        LOG(ERROR) + "Cannot get " + s_FCM_FACADE_CLASS + "." + methodName + " method";
        return;
    } 

    jstring jstr = (jstring)env->CallStaticObjectMethod(cls, mid);
    const char* buf = env->GetStringUTFChars(jstr,0);

    setProperty(methodName, buf, result);
    env->ReleaseStringUTFChars(jstr, buf);
}
Exemplo n.º 20
0
extern "C" void Init_Barcode1(void)
{
    RAWTRACE("Init_Barcode1");

    JNIEnv *env = jnienv();
    if(env)
    {
        jclass cls = rho_find_class(env, BARCODE1_FACTORY_CLASS);
        if(!cls)
        {
            RAWLOG_ERROR1("Failed to find java class: %s", BARCODE1_FACTORY_CLASS);
            return;
        }
        jmethodID midFactory = env->GetMethodID(cls, "<init>", "()V");
        if(!midFactory)
        {
            RAWLOG_ERROR1("Failed to get constructor for java class %s", BARCODE1_FACTORY_CLASS);
            return;
        }
        jobject jFactory = env->NewObject(cls, midFactory);
        if(env->IsSameObject(jFactory, NULL))
        {
            RAWLOG_ERROR1("Failed to create %s instance", BARCODE1_FACTORY_CLASS);
            return;
        }

        rhoelements::CBarcode1::setJavaFactory(env, jFactory);

        env->DeleteLocalRef(jFactory);

        Init_Barcode1_API();

        RAWTRACE("Init_Barcode1 succeeded");
    }
    else
    {
        RAWLOG_ERROR("Failed to initialize Barcode1 API: jnienv() is failed");
    }

}
Exemplo n.º 21
0
//----------------------------------------------------------------------------------------------------------------------
void GcmPushClient::doRegister()
{
    LOG(TRACE) + "GcmPushRegister()";

    JNIEnv *env = jnienv();

    static jclass cls = rho_find_class(env, s_GCM_FACADE_CLASS);
    if (!cls) {
        LOG(ERROR) + "Cannot find class: " + s_GCM_FACADE_CLASS;
        return;
    }

    static jmethodID mid = env->GetStaticMethodID(cls, "Register", "(Ljava/lang/String;)V");
    if (!mid) {
        LOG(ERROR) + "Cannot get " + s_GCM_FACADE_CLASS + ".Register() method";
        return;
    }

    jhstring jhSenderId = rho_cast<jstring>(m_hashProps["senderId"]);

    env->CallStaticVoidMethod(cls, mid, jhSenderId.get());
}
Exemplo n.º 22
0
extern "C" void elemez_native_raiseDisruption(const char* sender, const char* source, int userInitiated) {

    JNIEnv *env = jnienv();

    jclass cls = rho_find_class(env, "com/elemez/Elemez");
    if (!cls) {
        return;
    }

    jmethodID mid = env->GetStaticMethodID(cls, "raiseDisruption", "(Ljava/lang/String;Ljava/lang/String;Z)V");
    if (!mid) {
        return;
    }

    jstring objSender = env->NewStringUTF(sender);
    jstring objSource = env->NewStringUTF(source);
    jboolean objUserInitiated = userInitiated == 1 ? JNI_TRUE : JNI_FALSE;

    env->CallStaticObjectMethod(cls, mid, objSender, objSource, objUserInitiated);
    
    env->DeleteLocalRef(objSender);
    env->DeleteLocalRef(objSource);
}
Exemplo n.º 23
0
JNIEnv* MethodExecutorJni::jniInit()
{
    JNIEnv *env = jnienv();
    if(env && !s_MethodExecutorClass)
    {
        s_MethodExecutorClass = rho_find_class(env, METHOD_EXECUTOR_CLASS);
        if(!s_MethodExecutorClass)
        {
            RAWLOG_ERROR1("Failed to find java class: %s", METHOD_EXECUTOR_CLASS);
            s_MethodExecutorClass = 0;
            return NULL;
        }
        s_midRun = env->GetStaticMethodID(s_MethodExecutorClass, "run", "(Ljava/lang/Runnable;)V");
        if(!s_midRun)
        {
            RAWLOG_ERROR1("Failed to get method 'run' for java class %s", METHOD_EXECUTOR_CLASS);
            s_MethodExecutorClass = 0;
            return NULL;
        }
        s_midRunWithSeparateThread = env->GetStaticMethodID(s_MethodExecutorClass, "runWithSeparateThread", "(Ljava/lang/Runnable;)V");
        if(!s_midRunWithSeparateThread)
        {
            RAWLOG_ERROR1("Failed to get method 'runWithSeparateThread' for java class %s", METHOD_EXECUTOR_CLASS);
            s_MethodExecutorClass = 0;
            return NULL;
        }
        s_midRunWithUiThread = env->GetStaticMethodID(s_MethodExecutorClass, "runWithUiThread", "(Ljava/lang/Runnable;)V");
        if(!s_midRunWithUiThread)
        {
            RAWLOG_ERROR1("Failed to get method 'runWithUiThread' for java class %s", METHOD_EXECUTOR_CLASS);
            s_MethodExecutorClass = 0;
            return NULL;
        }
    }
    return env;
}
Exemplo n.º 24
0
extern "C" void rho_barcode_take_barcode(const char* callback, VALUE options) {
    JNIEnv *env = jnienv();
    jclass cls = rho_find_class(env, "com/rhomobile/barcode/Barcode");
    if (!cls) return;
    jmethodID mid = env->GetStaticMethodID( cls, "take", "(Ljava/lang/String;I)V");
    if (!mid) return;
    
    int camera_index = 0;
    if (!rho_ruby_is_NIL(options)) {
        // parse options for camera index ( 0 - main, 1 - front)
        rho_param *param = rho_param_fromvalue(options);
        if (param->type == RHO_PARAM_HASH) {
            int i;
            for (i = 0; i < param->v.hash->size; i++) {
                if (strcasecmp(param->v.hash->name[i], "camera") == 0) {
                    if (param->v.hash->value[i]->type == RHO_PARAM_STRING) {
                        if (strcasecmp(param->v.hash->value[i]->v.string, "front") == 0) {
                            camera_index = 1;
                        }
                    }
                }
            }
        }
        rho_param_free(param);
    }

    jstring objCallback = env->NewStringUTF(callback);
    if(objCallback != NULL)
    {
        env->CallStaticObjectMethod(cls, mid, objCallback, camera_index);
        env->DeleteLocalRef(objCallback);
    } else
    {
        RAWLOG_ERROR1("Cannot take barcode, no memory: %d", strlen(callback));
    }
}
Exemplo n.º 25
0
JNIEnv* CBarcode1::jniInit()
{
    JNIEnv *env = MethodExecutorJni::jniInit();
    if(env && !s_singletonClass)
    {
        jclass clsBase = rho_find_class(env, SINGLETON_BASE_CLASS);
        if(!clsBase)
        {
            RAWLOG_ERROR1("Failed to find java class: %s", SINGLETON_BASE_CLASS);
            s_singletonClass = 0;
            return NULL;
        }
        s_singletonBaseClass = static_cast<jclass>(env->NewGlobalRef(clsBase));
        env->DeleteLocalRef(clsBase);

        jclass cls = rho_find_class(env, SINGLETON_CLASS);
        if(!cls)
        {
            RAWLOG_ERROR1("Failed to find java class: %s", SINGLETON_CLASS);
            s_singletonClass = 0;
            return NULL;
        }
        s_singletonClass = static_cast<jclass>(env->NewGlobalRef(cls));
        env->DeleteLocalRef(cls);

        s_midGetInstance = env->GetStaticMethodID(s_singletonBaseClass, "getInstance", "()Lcom/motorolasolutions/rhoelements/Barcode1SingletonBase;");
        if(!s_midGetInstance)
        {
            RAWLOG_ERROR1("Failed to get method 'getInstance' for java class %s", SINGLETON_BASE_CLASS);
            s_singletonClass = 0;
            return NULL;
        }
        s_midEnumerate = env->GetMethodID(s_singletonClass, "enumerate", "(Lcom/motorolasolutions/rhoelements/IMethodResult;)V");
        if(!s_midEnumerate)
        {
            RAWLOG_ERROR1("Failed to get method 'enumerate' for java class %s", SINGLETON_CLASS);
            s_singletonClass = 0;
            return NULL;
        }
        s_midGetDefaultID = env->GetMethodID(s_singletonClass, "getDefaultID", "()Ljava/lang/String;");
        if(!s_midGetDefaultID)
        {
            RAWLOG_ERROR1("Failed to get method 'getDefaultID' for java class %s", SINGLETON_CLASS);
            s_singletonClass = 0;
            return NULL;
        }
        s_midSetDefaultID = env->GetMethodID(s_singletonClass, "setDefaultID", "(Ljava/lang/String;)V");
        if(!s_midSetDefaultID)
        {
            RAWLOG_ERROR1("Failed to get method 'setDefaultID' for java class %s", SINGLETON_CLASS);
            s_singletonClass = 0;
            return NULL;
        }
        s_midGetApiObject = env->GetMethodID(s_singletonClass, "getApiObject", "(Ljava/lang/String;)Lcom/motorolasolutions/rhoelements/IBarcode1;");
        if(!s_midGetApiObject)
        {
            RAWLOG_ERROR1("Failed to get method 'getApiObject' for java class %s", SINGLETON_CLASS);
            s_singletonClass = 0;
            return NULL;
        }

        jclass clsTask = rho_find_class(env, GETPROPS_TASK_CLASS);
        if(!clsTask)
        {
            RAWLOG_ERROR1("Failed to find java class: %s", GETPROPS_TASK_CLASS);
            s_singletonClass = 0;
            return NULL;
        }
        s_getPropsTaskClass = static_cast<jclass>(env->NewGlobalRef(clsTask));
        env->DeleteLocalRef(clsTask);

        s_midGetPropsTask = env->GetMethodID(s_getPropsTaskClass, "<init>",
                        "(Lcom/motorolasolutions/rhoelements/IBarcode1;Lcom/motorolasolutions/rhoelements/IMethodResult;)V");
        if(!s_midGetPropsTask)
        {
            RAWLOG_ERROR1("Failed to get constructor for java class %s", GETPROPS_TASK_CLASS);
            s_singletonClass = 0;
            return NULL;
        }

        jclass clsTask1 = rho_find_class(env, GETPROPS1_TASK_CLASS);
        if(!clsTask1)
        {
            RAWLOG_ERROR1("Failed to find java class: %s", GETPROPS1_TASK_CLASS);
            s_singletonClass = 0;
            return NULL;
        }
        s_getProps1TaskClass = static_cast<jclass>(env->NewGlobalRef(clsTask1));
        env->DeleteLocalRef(clsTask1);

        s_midGetProps1Task = env->GetMethodID(s_getProps1TaskClass, "<init>",
                        "(Lcom/motorolasolutions/rhoelements/IBarcode1;Ljava/lang/String;Lcom/motorolasolutions/rhoelements/IMethodResult;)V");
        if(!s_midGetProps1Task)
        {
            RAWLOG_ERROR1("Failed to get constructor for java class %s", GETPROPS1_TASK_CLASS);
            s_singletonClass = 0;
            return NULL;
        }

        jclass clsTask2 = rho_find_class(env, GETPROPS2_TASK_CLASS);
        if(!clsTask2)
        {
            RAWLOG_ERROR1("Failed to find java class: %s", GETPROPS2_TASK_CLASS);
            s_singletonClass = 0;
            return NULL;
        }
        s_getProps2TaskClass = static_cast<jclass>(env->NewGlobalRef(clsTask2));
        env->DeleteLocalRef(clsTask2);

        s_midGetProps2Task = env->GetMethodID(s_getProps2TaskClass, "<init>",
                        "(Lcom/motorolasolutions/rhoelements/IBarcode1;Ljava/util/List;Lcom/motorolasolutions/rhoelements/IMethodResult;)V");
        if(!s_midGetProps2Task)
        {
            RAWLOG_ERROR1("Failed to get constructor for java class %s", GETPROPS2_TASK_CLASS);
            s_singletonClass = 0;
            return NULL;
        }
    }
    return env;
}
Exemplo n.º 26
0
JNIEnv* MethodResultJni::jniInit()
{
    JNIEnv *env = jnienv();
    if(env && !s_methodResultClass)
    {
        jclass cls = rho_find_class(env, METHOD_RESULT_CLASS);
        if(!cls)
        {
            RAWLOG_ERROR1("Failed to find java class: %s", METHOD_RESULT_CLASS);
            s_methodResultClass = 0;
            return NULL;
        }
        s_methodResultClass = static_cast<jclass>(env->NewGlobalRef(cls));
        env->DeleteLocalRef(cls);

        s_midMethodResult = env->GetMethodID(s_methodResultClass, "<init>", "()V");
        if(!s_midMethodResult)
        {
            RAWLOG_ERROR1("Failed to get constructor for java class %s", METHOD_RESULT_CLASS);
            s_methodResultClass = 0;
            return NULL;
        }
        s_midSetCallBack = env->GetMethodID(s_methodResultClass, "setCallBack", "(Ljava/lang/String;Ljava/lang/String;)V");
        if(!s_midSetCallBack)
        {
            RAWLOG_ERROR1("Failed to get method 'setCallback' for java class %s", METHOD_RESULT_CLASS);
            s_methodResultClass = 0;
            return NULL;
        }
        s_midGetResultType = env->GetMethodID(s_methodResultClass, "getResultType", "()I");
        if(!s_midGetResultType)
        {
            RAWLOG_ERROR1("Failed to get method 'getResultType' for java class %s", METHOD_RESULT_CLASS);
            s_methodResultClass = 0;
            return NULL;
        }
        s_midReset = env->GetMethodID(s_methodResultClass, "reset", "()V");
        if(!s_midReset)
        {
            RAWLOG_ERROR1("Failed to get method 'reset' for java class %s", METHOD_RESULT_CLASS);
            s_methodResultClass = 0;
            return NULL;
        }
        s_fidBoolean = env->GetFieldID(s_methodResultClass, "mBooleanResult", "Z");
        if(!s_fidBoolean)
        {
            RAWLOG_ERROR1("Failed to get 'mBooleanResult' field for java class %s", METHOD_RESULT_CLASS);
            s_methodResultClass = 0;
            return NULL;
        }
        s_fidInteger = env->GetFieldID(s_methodResultClass, "mIntegerResult", "I");
        if(!s_fidInteger)
        {
            RAWLOG_ERROR1("Failed to get 'mIntegerResult' field for java class %s", METHOD_RESULT_CLASS);
            s_methodResultClass = 0;
            return NULL;
        }
        s_fidDouble = env->GetFieldID(s_methodResultClass, "mDoubleResult", "D");
        if(!s_fidDouble)
        {
            RAWLOG_ERROR1("Failed to get 'mDoubleResult' field for java class %s", METHOD_RESULT_CLASS);
            s_methodResultClass = 0;
            return NULL;
        }
        s_fidString = env->GetFieldID(s_methodResultClass, "mStrResult", "Ljava/lang/String;");
        if(!s_fidString)
        {
            RAWLOG_ERROR1("Failed to get 'mStrResult' field for java class %s", METHOD_RESULT_CLASS);
            s_methodResultClass = 0;
            return NULL;
        }
        s_fidStringList = env->GetFieldID(s_methodResultClass, "mListResult", "Ljava/util/List;");
        if(!s_fidStringList)
        {
            RAWLOG_ERROR1("Failed to get 'mListResult' field for java class %s", METHOD_RESULT_CLASS);
            s_methodResultClass = 0;
            return NULL;
        }
        s_fidStringMap = env->GetFieldID(s_methodResultClass, "mMapResult", "Ljava/util/Map;");
        if(!s_fidStringMap)
        {
            RAWLOG_ERROR1("Failed to get 'mMapResult' field for java class %s", METHOD_RESULT_CLASS);
            s_methodResultClass = 0;
            return NULL;
        }

    }
    return env;
}