summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/hosted/android/lcd-android.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/firmware/target/hosted/android/lcd-android.c b/firmware/target/hosted/android/lcd-android.c
index 172e832c2a..19f077010f 100644
--- a/firmware/target/hosted/android/lcd-android.c
+++ b/firmware/target/hosted/android/lcd-android.c
@@ -34,7 +34,6 @@ static jobject RockboxFramebuffer_instance;
34static jmethodID java_lcd_update; 34static jmethodID java_lcd_update;
35static jmethodID java_lcd_update_rect; 35static jmethodID java_lcd_update_rect;
36static jmethodID java_lcd_init; 36static jmethodID java_lcd_init;
37static jobject native_buffer;
38 37
39static int dpi; 38static int dpi;
40static int scroll_threshold; 39static int scroll_threshold;
@@ -69,15 +68,17 @@ void connect_with_java(JNIEnv* env, jobject fb_instance)
69 java_lcd_init = e->GetMethodID(env, fb_class, 68 java_lcd_init = e->GetMethodID(env, fb_class,
70 "java_lcd_init", 69 "java_lcd_init",
71 "(IILjava/nio/ByteBuffer;)V"); 70 "(IILjava/nio/ByteBuffer;)V");
72 71
73 native_buffer = e->NewDirectByteBuffer(env,
74 lcd_framebuffer,
75 (jlong)sizeof(lcd_framebuffer));
76 have_class = true; 72 have_class = true;
77 } 73 }
74
75 /* Create native_buffer */
76 jobject buffer = (*env)->NewDirectByteBuffer(env, lcd_framebuffer,
77 (jlong) sizeof(lcd_framebuffer));
78
78 /* we need to setup parts for the java object every time */ 79 /* we need to setup parts for the java object every time */
79 (*env)->CallVoidMethod(env, fb_instance, java_lcd_init, 80 (*env)->CallVoidMethod(env, fb_instance, java_lcd_init,
80 (jint)LCD_WIDTH, (jint)LCD_HEIGHT, native_buffer); 81 (jint)LCD_WIDTH, (jint)LCD_HEIGHT, buffer);
81} 82}
82 83
83/* 84/*
@@ -116,8 +117,10 @@ Java_org_rockbox_RockboxFramebuffer_surfaceCreated(JNIEnv *env, jobject this,
116 jobject surfaceholder) 117 jobject surfaceholder)
117{ 118{
118 (void)surfaceholder; 119 (void)surfaceholder;
120
119 /* Update RockboxFramebuffer_instance */ 121 /* Update RockboxFramebuffer_instance */
120 RockboxFramebuffer_instance = (*env)->NewGlobalRef(env, this); 122 RockboxFramebuffer_instance = (*env)->NewGlobalRef(env, this);
123
121 /* possibly a new instance - reconnect */ 124 /* possibly a new instance - reconnect */
122 connect_with_java(env, this); 125 connect_with_java(env, this);
123 display_on = true; 126 display_on = true;