Commit 81d94b1360292cad950bc36f02bd73170f515bef

Authored by perry.werneck@gmail.com
1 parent 0d45dfc8

Implementando macros para chamada de métodos java de dentro da JNI para evitar a…

… dupĺicação de códigos
android/jni/globals.h
... ... @@ -34,22 +34,40 @@
34 34  
35 35 /*--[ Defines ]--------------------------------------------------------------------------------------*/
36 36  
37   - typedef struct _info
38   - {
39   - JNIEnv * env;
40   - jobject obj;
41   -
42   - } INFO;
43   -
44   - #define session_request(env, obj) INFO jni_data = { env, obj }; \
45   - H3270 * session = lib3270_get_default_session_handle(); \
  37 +/*
  38 + #define session_request(env, obj) H3270 * session = lib3270_get_default_session_handle(); \
46 39 session->widget = &jni_data;
47 40  
48 41 #define session_release() session->widget = 0;
  42 +*/
  43 +
  44 +/*
  45 + #define PW3270_JNI_BEGIN pw3270_env = env; pw3270_obj = obj;
  46 + #define PW3270_JNI_END pw3270_env = NULL; pw3270_obj = NULL;
  47 +*/
  48 +
  49 + #define PW3270_JNI_BEGIN pw3270_env = env; pw3270_obj = obj; \
  50 + __android_log_print(ANDROID_LOG_VERBOSE, PACKAGE_NAME, "%s.begin env=%p obj=%p",__FUNCTION__,env,obj);
  51 +
  52 + #define PW3270_JNI_END __android_log_print(ANDROID_LOG_VERBOSE, PACKAGE_NAME, "%s.end env=%p obj=%p",__FUNCTION__,pw3270_env,pw3270_obj); \
  53 + pw3270_env = NULL; pw3270_obj = NULL;
  54 +
  55 + #define PW3270_JNI_ENV pw3270_env
  56 + #define PW3270_JNI_OBJ pw3270_obj
  57 +
  58 + #define PW3270_SESSION lib3270_get_default_session_handle()
  59 +
  60 + #define pw3270_jni_call_void(name, sig, ...) pw3270_env->CallVoidMethod(pw3270_obj,lib3270_getmethodID(name,sig), __VA_ARGS__)
  61 + #define pw3270_jni_call_int(name, sig, ...) pw3270_env->CallIntMethod(pw3270_obj,lib3270_getmethodID(name,sig), __VA_ARGS__)
  62 + #define pw3270_jni_new_string(str) pw3270_env->NewStringUTF(str)
  63 + #define pw3270_jni_new_byte_array(len) pw3270_env->NewByteArray(len)
49 64  
50 65 /*--[ Globals ]--------------------------------------------------------------------------------------*/
51 66  
52   - extern const char *java_class_name;
  67 + extern JNIEnv * pw3270_env;
  68 + extern jobject pw3270_obj;
  69 +
53 70  
  71 + jmethodID lib3270_getmethodID(const char *name, const char *sig);
54 72  
55 73  
... ...
android/jni/main.cpp
... ... @@ -45,49 +45,76 @@
45 45  
46 46 /*--[ Globals ]--------------------------------------------------------------------------------------*/
47 47  
48   - const char *java_class_name = "br/com/bb/pw3270/lib3270";
  48 + const char * java_class_name = "br/com/bb/pw3270/lib3270";
  49 + JNIEnv * pw3270_env = NULL;
  50 + jobject pw3270_obj = NULL;
  51 +
49 52  
50 53 /*--[ Implement ]------------------------------------------------------------------------------------*/
51 54  
52   -static void post_message(H3270 *session, int msgid, int arg1 = 0, int arg2 = 0)
  55 +jmethodID lib3270_getmethodID(const char *name, const char *sig)
53 56 {
54   - if(session->widget)
  57 + if(!pw3270_env)
55 58 {
56   - JNIEnv * env = ((INFO *) session->widget)->env;
57   - jobject obj = ((INFO *) session->widget)->obj;
58   - jclass cls = env->GetObjectClass(obj);
59   - jmethodID mid = env->GetMethodID(cls, "postMessage", "(III)V");;
60   - env->CallVoidMethod(obj,mid,(jint) msgid, (jint) arg1, (jint) arg2);
  59 + __android_log_print(ANDROID_LOG_ERROR, PACKAGE_NAME, "%s(%s,%s) called outside jni environment",__FUNCTION__,name,sig);
  60 + return NULL;
61 61 }
  62 +
  63 + return pw3270_env->GetMethodID(pw3270_env->GetObjectClass(pw3270_obj), name, sig );
  64 +}
  65 +
  66 +static void post_message(int msgid, int arg1 = 0, int arg2 = 0)
  67 +{
  68 + trace("%s: pw3270_env=%p pw3270_obj=%p",__FUNCTION__,pw3270_env,pw3270_obj);
  69 +
  70 + if(pw3270_env)
  71 + pw3270_jni_call_void("postMessage", "(III)V",(jint) msgid, (jint) arg1, (jint) arg2);
62 72 }
63 73  
64 74 static void changed(H3270 *session, int offset, int len)
65 75 {
66   - post_message(session,2,offset,len);
  76 + post_message(2,offset,len);
67 77 }
68 78  
69 79 static void erase(H3270 *session)
70 80 {
71   - post_message(session,4);
  81 + post_message(4);
72 82 }
73 83  
74 84 static int popuphandler(H3270 *session, void *terminal, LIB3270_NOTIFY type, const char *title, const char *msg, const char *fmt, va_list args)
75 85 {
76   - if(session->widget)
  86 + if(PW3270_JNI_ENV)
77 87 {
78   - JNIEnv * env = ((INFO *) session->widget)->env;
79   - jobject obj = ((INFO *) session->widget)->obj;
80   - jclass cls = env->GetObjectClass(obj);
81   - jmethodID mid = env->GetMethodID(cls, "popupMessage", "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");
82   - char * descr;
83   -
84   - descr = lib3270_vsprintf(fmt, args);
85   -
86   - env->CallVoidMethod(obj,mid, (jint) type,
87   - env->NewStringUTF(title),
88   - env->NewStringUTF(msg),
89   - env->NewStringUTF(descr) );
90   - lib3270_free(descr);
  88 + static const char *sig = "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V";
  89 + char * descr = lib3270_vsprintf(fmt, args);
  90 +
  91 + trace("%s: title=\"%s\"",__FUNCTION__,title);
  92 + trace("%s: msg=\"%s\"",__FUNCTION__,msg);
  93 + trace("%s: descr=\"%s\"",__FUNCTION__,descr);
  94 +
  95 +
  96 +
  97 + if(msg)
  98 + {
  99 + pw3270_jni_call_void( "postPopup",
  100 + sig,
  101 + (jint) type,
  102 + pw3270_jni_new_string(title),
  103 + pw3270_jni_new_string(msg),
  104 + pw3270_jni_new_string(descr) );
  105 +
  106 + }
  107 + else
  108 + {
  109 + pw3270_jni_call_void( "postPopup",
  110 + sig,
  111 + (jint) type,
  112 + pw3270_jni_new_string(title),
  113 + pw3270_jni_new_string(descr),
  114 + pw3270_jni_new_string("") );
  115 + }
  116 +
  117 + lib3270_free(descr);
91 118 }
92 119 else
93 120 {
... ... @@ -97,30 +124,27 @@ static int popuphandler(H3270 *session, void *terminal, LIB3270_NOTIFY type, con
97 124  
98 125 static void ctlr_done(H3270 *session)
99 126 {
100   - post_message(session,4);
  127 + post_message(4);
101 128 }
102 129  
103 130 static int write_buffer(H3270 *session, unsigned const char *buf, int len)
104 131 {
105 132 int rc = -1;
106 133  
107   - if(session->widget)
  134 + if(PW3270_JNI_ENV)
108 135 {
109   - JNIEnv * env = ((INFO *) session->widget)->env;
110   - jobject obj = ((INFO *) session->widget)->obj;
111   - jclass cls = env->GetObjectClass(obj);
112   - jmethodID mid = env->GetMethodID(cls, "send_data", "([BI)I");
113   - jbyteArray buffer = env->NewByteArray(len);
  136 + jbyteArray buffer = pw3270_jni_new_byte_array(len);
114 137  
115   - env->SetByteArrayRegion(buffer, 0, len, (jbyte*) buf);
  138 + pw3270_env->SetByteArrayRegion(buffer, 0, len, (jbyte*) buf);
116 139  
117   - rc = env->CallIntMethod(obj, mid, buffer, (jint) len );
  140 + rc = pw3270_jni_call_int("send_data", "([BI)I", buffer, (jint) len );
118 141 }
119 142 else
120 143 {
121 144 __android_log_print(ANDROID_LOG_VERBOSE, PACKAGE_NAME, "Can't send %d bytes, no jni env for active session",len);
122 145 }
123 146  
  147 + trace("%s exits with rc=%d",__FUNCTION__,rc);
124 148 return rc;
125 149 }
126 150  
... ... @@ -128,12 +152,8 @@ static void * add_timer(unsigned long interval_ms, H3270 *session, void (*proc)(
128 152 {
129 153 TIMER * timer = NULL;
130 154  
131   - if(session->widget)
  155 + if(PW3270_JNI_ENV)
132 156 {
133   - JNIEnv * env = ((INFO *) session->widget)->env;
134   - jobject obj = ((INFO *) session->widget)->obj;
135   - jclass cls = env->GetObjectClass(obj);
136   - jmethodID mid = env->GetMethodID(cls, "newTimer", "(JI)V");
137 157  
138 158 timer = (TIMER *) lib3270_malloc(sizeof(TIMER));
139 159 timer->sz = sizeof(timer);
... ... @@ -143,12 +163,12 @@ static void * add_timer(unsigned long interval_ms, H3270 *session, void (*proc)(
143 163  
144 164 trace("Timer %08lx created",(unsigned long) timer);
145 165  
146   - env->CallVoidMethod(obj,mid, (jlong) timer, (jint) interval_ms);
  166 + pw3270_jni_call_void("newTimer", "(JI)V", (jlong) timer, (jint) interval_ms);
147 167  
148 168 }
149 169 else
150 170 {
151   - __android_log_print(ANDROID_LOG_VERBOSE, PACKAGE_NAME, "Can set timer, no jni env for active session");
  171 + __android_log_print(ANDROID_LOG_VERBOSE, PACKAGE_NAME, "Can't set timer, no jni env for active session");
152 172 }
153 173  
154 174 return timer;
... ... @@ -175,10 +195,9 @@ JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_timerFinish(JNIEnv *env, jo
175 195 TIMER *timer = (TIMER *) id;
176 196  
177 197 if(timer == NULL)
178   - {
179   -// __android_log_print(ANDROID_LOG_VERBOSE, PACKAGE_NAME, "Unexpected call to %s: No timer ID",__FUNCTION__);
180 198 return;
181   - }
  199 +
  200 + PW3270_JNI_BEGIN
182 201  
183 202 if(timer->enabled)
184 203 {
... ... @@ -187,6 +206,9 @@ JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_timerFinish(JNIEnv *env, jo
187 206 }
188 207  
189 208 lib3270_free(timer);
  209 +
  210 + PW3270_JNI_END
  211 +
190 212 }
191 213  
192 214 #ifdef X3270_TRACE
... ... @@ -237,6 +259,8 @@ JNIEXPORT jint JNICALL Java_br_com_bb_pw3270_lib3270_init(JNIEnv *env, jclass ob
237 259 {
238 260 H3270 * session = lib3270_session_new("");
239 261  
  262 + PW3270_JNI_BEGIN
  263 +
240 264 __android_log_print(ANDROID_LOG_DEBUG, PACKAGE_NAME, "Initializing session %p",session);
241 265  
242 266 #ifdef X3270_TRACE
... ... @@ -251,35 +275,54 @@ JNIEXPORT jint JNICALL Java_br_com_bb_pw3270_lib3270_init(JNIEnv *env, jclass ob
251 275 session->erase = erase;
252 276 session->ctlr_done = ctlr_done;
253 277  
  278 + PW3270_JNI_END
  279 +
254 280 return 0;
255 281 }
256 282  
  283 +/*
257 284 JNIEXPORT jint JNICALL Java_br_com_bb_pw3270_lib3270_processEvents(JNIEnv *env, jobject obj)
258 285 {
259   - session_request(env,obj);
  286 + PW3270_JNI_BEGIN
260 287  
261 288 lib3270_main_iterate(session,1);
262 289  
263   - session_release();
  290 + PW3270_JNI_END
264 291  
265 292 return 0;
266 293 }
  294 +*/
267 295  
268 296 JNIEXPORT jboolean JNICALL Java_br_com_bb_pw3270_lib3270_isConnected(JNIEnv *env, jobject obj)
269 297 {
270   - return (lib3270_connected(lib3270_get_default_session_handle())) ? JNI_TRUE : JNI_FALSE;;
  298 + jboolean rc;
  299 +
  300 + PW3270_JNI_BEGIN
  301 +
  302 + rc = lib3270_connected(lib3270_get_default_session_handle()) ? JNI_TRUE : JNI_FALSE;
  303 +
  304 + PW3270_JNI_END
  305 +
  306 + return rc;
271 307 }
272 308  
273 309 JNIEXPORT jboolean JNICALL Java_br_com_bb_pw3270_lib3270_isTerminalReady(JNIEnv *env, jobject obj)
274 310 {
  311 + PW3270_JNI_BEGIN
  312 +
  313 +
  314 + PW3270_JNI_END
  315 +
275 316 return JNI_FALSE;
276 317 }
277 318  
278 319 JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_setHost(JNIEnv *env, jobject obj, jstring hostname)
279 320 {
280   - session_request(env,obj);
281   - lib3270_set_host(session,env->GetStringUTFChars(hostname, 0));
282   - session_release();
  321 + PW3270_JNI_BEGIN
  322 +
  323 + lib3270_set_host(PW3270_SESSION,env->GetStringUTFChars(hostname, 0));
  324 +
  325 + PW3270_JNI_END
283 326 }
284 327  
285 328 JNIEXPORT jstring JNICALL Java_br_com_bb_pw3270_lib3270_getHost(JNIEnv *env, jobject obj)
... ... @@ -289,28 +332,30 @@ JNIEXPORT jstring JNICALL Java_br_com_bb_pw3270_lib3270_getHost(JNIEnv *env, job
289 332  
290 333 JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_set_1connection_1status(JNIEnv *env, jobject obj, jboolean connected)
291 334 {
292   - session_request(env,obj);
  335 + PW3270_JNI_BEGIN
  336 +
293 337 if(connected)
294   - lib3270_set_connected(session);
  338 + lib3270_set_connected(PW3270_SESSION);
295 339 else
296   - lib3270_set_disconnected(session);
297   - session_release();
  340 + lib3270_set_disconnected(PW3270_SESSION);
  341 +
  342 + PW3270_JNI_END
298 343 }
299 344  
300 345 JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_procRecvdata(JNIEnv *env, jobject obj, jbyteArray buffer, jint sz)
301 346 {
302 347 unsigned char *netrbuf = (unsigned char *) env->GetByteArrayElements(buffer,NULL);
303 348  
304   - session_request(env,obj);
  349 + PW3270_JNI_BEGIN
305 350  
306 351 trace("Processando %d bytes",(size_t) sz);
307 352  
308   - lib3270_data_recv(session, (size_t) sz, netrbuf);
  353 + lib3270_data_recv(PW3270_SESSION, (size_t) sz, netrbuf);
309 354  
310 355 trace("Liberando %d bytes",(size_t) sz);
311 356  
312   - env->ReleaseByteArrayElements(buffer, (signed char *) netrbuf, 0);
  357 + pw3270_env->ReleaseByteArrayElements(buffer, (signed char *) netrbuf, 0);
313 358  
314   - session_release();
  359 + PW3270_JNI_END
315 360  
316 361 }
... ...
android/jni/misc.cpp
... ... @@ -49,11 +49,11 @@ JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_setToggle(JNIEnv *env, jobj
49 49 {
50 50 LIB3270_TOGGLE id = lib3270_get_toggle_id(env->GetStringUTFChars(name, 0));
51 51  
52   - session_request(env,obj);
  52 + PW3270_JNI_BEGIN
53 53  
54 54 if(id >= 0)
55   - lib3270_set_toggle(session,id,state ? 1 : 0);
  55 + lib3270_set_toggle(PW3270_SESSION,id,state ? 1 : 0);
56 56  
57   - session_release();
  57 + PW3270_JNI_END
58 58  
59 59 }
... ...
android/jni/text.cpp
... ... @@ -32,11 +32,11 @@
32 32  
33 33 /*--[ Implement ]------------------------------------------------------------------------------------*/
34 34  
35   -static jbyteArray retString(JNIEnv *env, const char *txt)
  35 +static jbyteArray retString(const char *txt)
36 36 {
37 37 size_t len = strlen(txt);
38   - jbyteArray ret = env->NewByteArray(len);
39   - env->SetByteArrayRegion(ret, 0, len, (jbyte*) txt);
  38 + jbyteArray ret = pw3270_env->NewByteArray(len);
  39 + pw3270_env->SetByteArrayRegion(ret, 0, len, (jbyte*) txt);
40 40 return ret;
41 41 }
42 42  
... ... @@ -44,44 +44,38 @@ JNIEXPORT jbyteArray JNICALL Java_br_com_bb_pw3270_lib3270_getHTML(JNIEnv *env,
44 44 {
45 45 jbyteArray ret;
46 46  
47   - session_request(env,obj);
  47 + PW3270_JNI_BEGIN
48 48  
49   - trace("%s starts, session=%p",__FUNCTION__,session);
  49 + trace("%s starts, session=%p",__FUNCTION__,PW3270_SESSION);
50 50  
51   - if(session)
52   - {
53   - char *text = lib3270_get_as_html(session,(LIB3270_HTML_OPTION) (LIB3270_HTML_OPTION_ALL|LIB3270_HTML_OPTION_FORM));
  51 + char *text = lib3270_get_as_html(PW3270_SESSION,(LIB3270_HTML_OPTION) (LIB3270_HTML_OPTION_ALL|LIB3270_HTML_OPTION_FORM));
54 52  
55   - if(text)
56   - {
57   - ret = retString(env,text);
58   - lib3270_free(text);
59   - }
60   - else
61   - {
62   - ret = retString(env, "<b>Empty session</b>");
63   - }
  53 + if(text)
  54 + {
  55 + ret = retString(text);
  56 + lib3270_free(text);
64 57 }
65 58 else
66 59 {
67   - ret = retString(env, "<b>Invalid Session ID</b>");
  60 + ret = retString("<b>Empty session</b>");
68 61 }
69 62  
70 63 trace("%s ends",__FUNCTION__);
71 64  
72   - session_release();
  65 + PW3270_JNI_END
73 66  
74 67 return ret;
75 68 }
76 69  
77 70  
  71 +/*
78 72 JNIEXPORT jbyteArray JNICALL Java_br_com_bb_pw3270_lib3270_getText(JNIEnv *env, jobject obj)
79 73 {
80 74 jbyteArray ret;
81 75  
82   - session_request(env,obj);
  76 + PW3270_JNI_BEGIN
83 77  
84   - trace("%s starts, session=%p",__FUNCTION__,session);
  78 + trace("%s starts",__FUNCTION__);
85 79  
86 80 if(session)
87 81 {
... ... @@ -106,10 +100,11 @@ JNIEXPORT jbyteArray JNICALL Java_br_com_bb_pw3270_lib3270_getText(JNIEnv *env,
106 100  
107 101 trace("%s ends",__FUNCTION__);
108 102  
109   - session_release();
  103 + PW3270_JNI_END
110 104  
111 105 return ret;
112 106 }
  107 +*/
113 108  
114 109 JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_setTextAt(JNIEnv *env, jobject obj, jint pos, jbyteArray inText, jint szText)
115 110 {
... ... @@ -117,10 +112,7 @@ JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_setTextAt(JNIEnv *env, jobj
117 112 int f;
118 113 jbyte * bt;
119 114  
120   - session_request(env,obj);
121   -
122   - if(!session)
123   - return;
  115 + PW3270_JNI_BEGIN
124 116  
125 117 bt = env->GetByteArrayElements(inText,0);
126 118  
... ... @@ -128,30 +120,31 @@ JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_setTextAt(JNIEnv *env, jobj
128 120 str[f] = (char) bt[f];
129 121 str[szText] = 0;
130 122  
131   - trace("Buffer(%d/%d)=\"%s\"",(int) pos, lib3270_field_addr(session, (int) pos), str);
  123 + trace("Buffer(%d/%d)=\"%s\"",(int) pos, lib3270_field_addr(PW3270_SESSION, (int) pos), str);
132 124  
133 125  
134   - if( ((int) pos) == lib3270_field_addr(session, (int) pos))
  126 + if( ((int) pos) == lib3270_field_addr(PW3270_SESSION, (int) pos))
135 127 {
136 128 // Begin of field, clear it first
137   - int sz = lib3270_field_length(session,pos);
  129 + int sz = lib3270_field_length(PW3270_SESSION,pos);
138 130 unsigned char * buffer = (unsigned char *) lib3270_malloc(sz+1);
139 131  
140 132 memset(buffer,' ',sz);
141 133  
142   - lib3270_clear_operator_error(session);
143   - lib3270_set_cursor_address(session,(int) pos);
144   - lib3270_set_string(session,buffer);
  134 + lib3270_clear_operator_error(PW3270_SESSION);
  135 + lib3270_set_cursor_address(PW3270_SESSION,(int) pos);
  136 + lib3270_set_string(PW3270_SESSION,buffer);
145 137  
146 138 lib3270_free(buffer);
147 139 }
148 140  
149   - lib3270_clear_operator_error(session);
150   - lib3270_set_cursor_address(session,(int) pos);
151   - lib3270_set_string(session,str);
  141 + lib3270_clear_operator_error(PW3270_SESSION);
  142 + lib3270_set_cursor_address(PW3270_SESSION,(int) pos);
  143 + lib3270_set_string(PW3270_SESSION,str);
152 144  
153   - lib3270_clear_operator_error(session);
  145 + lib3270_clear_operator_error(PW3270_SESSION);
154 146  
155 147 env->ReleaseByteArrayElements(inText,bt,JNI_ABORT);
156   - session_release();
  148 +
  149 + PW3270_JNI_END
157 150 }
... ...
android/res/raw/index.html
... ... @@ -8,7 +8,7 @@
8 8 <title>pw3270</title>
9 9 </head>
10 10  
11   -<body onload="initialize()">
  11 +<body onload="terminalUpdate()">
12 12 <div id="terminal">
13 13 </div>
14 14  
... ...
android/res/raw/jsmain.js
1 1  
2   -function setupButtons()
  2 +function setupWindow()
3 3 {
4   - var form = document.getElementById("form3270");
  4 + var input = document.getElementsByTagName("input");
5 5  
6   - if(form == undefined)
7   - return;
  6 + window.onkeypress = function()
  7 + {
  8 + if(event.keyCode == 13)
  9 + {
  10 + xmit();
  11 + return false;
  12 + }
  13 + return true;
  14 + }
8 15  
9   - for(var i=0;i < form.elements.length;i++)
  16 + for(var i=0;i<input.length;i++)
10 17 {
11   - if(form.elements[i].name.substr(0,2) == "PF")
  18 + if(input[i].name.substr(0,2) == "PF")
12 19 {
13   - form.elements[i].pfkey = parseInt(form.elements[i].name.substr(3));
14   -
15   - form.elements[i].onclick = function()
  20 + input[i].pfkey = parseInt(input[i].name.substr(3));
  21 +
  22 + input[i].onclick = function()
16 23 {
17 24 pw3270.pfkey(this.pfkey);
18 25 }
19 26 }
20   - }
21 27  
22   -}
  28 + }
23 29  
24   -function initialize()
25   -{
26   - updateScreen();
27 30 }
28 31  
29   -function updateScreen()
  32 +function terminalUpdate()
30 33 {
31 34 document.getElementById("terminal").innerHTML = pw3270.getscreencontents();
32   - setupButtons();
  35 + setupWindow();
33 36 }
34 37  
35 38 function pfkey(id)
... ...
android/src/br/com/bb/pw3270/lib3270.java
... ... @@ -268,6 +268,10 @@ public class lib3270
268 268  
269 269 public void postPopup(int type, String title, String text, String info)
270 270 {
  271 + Log.d(TAG,"Type:"+type);
  272 + Log.d(TAG,"Title:"+title);
  273 + Log.d(TAG,"Text:"+text);
  274 + Log.d(TAG,"Info:"+info);
271 275 mainloop.postPopup(type, title, text, info);
272 276 }
273 277  
... ...