| | |
| | |
| |
|
| | #include "android_common.h" |
| |
|
| | #include <string> |
| | #include <string_view> |
| |
|
| | #include <jni.h> |
| |
|
| | #include "common/android/id_cache.h" |
| | #include "common/string_util.h" |
| |
|
| | namespace Common::Android { |
| |
|
| | std::string GetJString(JNIEnv* env, jstring jstr) { |
| | if (!jstr) { |
| | return {}; |
| | } |
| |
|
| | const jchar* jchars = env->GetStringChars(jstr, nullptr); |
| | const jsize length = env->GetStringLength(jstr); |
| | const std::u16string_view string_view(reinterpret_cast<const char16_t*>(jchars), |
| | static_cast<u32>(length)); |
| | const std::string converted_string = Common::UTF16ToUTF8(string_view); |
| | env->ReleaseStringChars(jstr, jchars); |
| |
|
| | return converted_string; |
| | } |
| |
|
| | jstring ToJString(JNIEnv* env, std::string_view str) { |
| | const std::u16string converted_string = Common::UTF8ToUTF16(str); |
| | return env->NewString(reinterpret_cast<const jchar*>(converted_string.data()), |
| | static_cast<jint>(converted_string.size())); |
| | } |
| |
|
| | jstring ToJString(JNIEnv* env, std::u16string_view str) { |
| | return ToJString(env, Common::UTF16ToUTF8(str)); |
| | } |
| |
|
| | double GetJDouble(JNIEnv* env, jobject jdouble) { |
| | return env->GetDoubleField(jdouble, GetDoubleValueField()); |
| | } |
| |
|
| | jobject ToJDouble(JNIEnv* env, double value) { |
| | return env->NewObject(GetDoubleClass(), GetDoubleConstructor(), value); |
| | } |
| |
|
| | s32 GetJInteger(JNIEnv* env, jobject jinteger) { |
| | return env->GetIntField(jinteger, GetIntegerValueField()); |
| | } |
| |
|
| | jobject ToJInteger(JNIEnv* env, s32 value) { |
| | return env->NewObject(GetIntegerClass(), GetIntegerConstructor(), value); |
| | } |
| |
|
| | bool GetJBoolean(JNIEnv* env, jobject jboolean) { |
| | return env->GetBooleanField(jboolean, GetBooleanValueField()); |
| | } |
| |
|
| | jobject ToJBoolean(JNIEnv* env, bool value) { |
| | return env->NewObject(GetBooleanClass(), GetBooleanConstructor(), value); |
| | } |
| |
|
| | } |
| |
|