implement more APIs

This commit is contained in:
Julian Winkler
2024-03-20 23:05:17 +01:00
parent e8dc6e2f0d
commit 494605932c
18 changed files with 119 additions and 36 deletions

View File

@@ -170,12 +170,12 @@ JNIEXPORT jobjectArray JNICALL Java_android_content_res_AssetManager_getArrayStr
for (i = 0; i < bag_count; i++) {
struct Res_value value = bag[i].map.value;
ssize_t block = ResTable_resolveReference(res_table, &value, bag[i].stringBlock, NULL, NULL, NULL);
if (bag[i].map.value.dataType == TYPE_STRING) {
if (value.dataType == TYPE_STRING) {
const struct ResStringPool *string_pool = ResTable_getTableStringBlock(res_table, block);
if (string_pool == NULL)
continue;
size_t len;
const char16_t *string = ResStringPool_stringAt(string_pool, bag[i].map.value.data, &len);
const char16_t *string = ResStringPool_stringAt(string_pool, value.data, &len);
(*env)->SetObjectArrayElement(env, array, i, (*env)->NewString(env, string, len));
}
}

View File

@@ -231,6 +231,14 @@ JNIEXPORT void JNICALL Java_android_widget_EditText_native_1addTextChangedListen
JNIEXPORT void JNICALL Java_android_widget_EditText_native_1setOnEditorActionListener
(JNIEnv *, jobject, jlong, jobject);
/*
* Class: android_widget_EditText
* Method: native_setText
* Signature: (JLjava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_android_widget_EditText_native_1setText
(JNIEnv *, jobject, jlong, jstring);
#ifdef __cplusplus
}
#endif

View File

@@ -77,3 +77,11 @@ JNIEXPORT void JNICALL Java_android_widget_EditText_native_1setOnEditorActionLis
g_signal_connect(entry, "activate", G_CALLBACK(on_activate), callback_data);
}
JNIEXPORT void JNICALL Java_android_widget_EditText_native_1setText(JNIEnv *env, jobject this, jlong widget_ptr, jstring text_jstr)
{
const char *text = (*env)->GetStringUTFChars(env, text_jstr, NULL);
jsize length = (*env)->GetStringUTFLength(env, text_jstr);
gtk_entry_buffer_set_text(gtk_entry_get_buffer(GTK_ENTRY(_PTR(widget_ptr))), text, length);
(*env)->ReleaseStringUTFChars(env, text_jstr, text);
}