JValue JClass::variantToValue(QVariant& v) { //JScope s; switch (v.type()) { case QVariant::Int: case QVariant::UInt: return JValue(v.toInt()); case QVariant::Double: return JValue(v.toDouble()); case QVariant::LongLong: return JValue(v.toLongLong()); case QVariant::Bool: return JValue(v.toBool()); case QVariant::String: { JString str = JString(v.toString()); return JValue(str); } default: if (v.canConvert<JObject>()) { JObject obj = v.value<JObject>(); return JValue(obj); } else if (v.canConvert<JArray>()) { JArray arr = v.value<JArray>(); return JValue(arr); } else throw RuntimeException(QObject::tr("Unknown data type")); } }
void Put(const FString& Key, const FString& Value) { jstringWrapper JKey(Key); jstringWrapper JValue(Value); UE_LOG(LogAnalytics, Log, TEXT("FFlurryEventMap::Put()")); JNIEnv* Env = FAndroidApplication::GetJavaEnv(true); FJavaWrapper::CallVoidMethod(Env, FJavaWrapper::GameActivityThis, PutMethod, JKey.Get(), JValue.Get(), Map); }
NumericString::operator JValue() { return JValue(*this); }
bool JValue::put(const std::string& key, const JValue& value) { return put(JValue(key), value); }
JValueArrayElement JValue::operator[](int index) const { return JValue(jvalue_copy(jarray_get(m_jval, index))); }
JValue JValue::Value<NumericString>(const NumericString& value) { return JValue (jnumber_create_unsafe(strToRawBuffer(static_cast<std::string>(value)), NULL), value); }
JValue JValue::Value<std::string>(const std::string &value) { // already have the length - why not use it instead of calling strlen one more time return JValue (jstring_create_nocopy(strToRawBuffer(value)), value); }
JValue JValue::Value<int64_t>(const int64_t& value) { return JValue(value); }