Commit d9c9f52e7eb913e526cf93c7131ef23f9689948b
1 parent
24e5bd3f
Exists in
master
and in
5 other branches
Implementando chamadas para Android
Showing
4 changed files
with
41 additions
and
41 deletions
Show diff stats
android/Makefile
... | ... | @@ -44,6 +44,8 @@ clean: |
44 | 44 | @rm -f bin/classes/$(CLASSPATH)/lib3270.class |
45 | 45 | @rm -f $(foreach DIR, $(RESOLUTION), res/drawable-$(DIR)/ic_launcher.png) |
46 | 46 | |
47 | +cleanDebug: clean | |
48 | + | |
47 | 49 | res/drawable-xhdpi/ic_launcher.png: ../src/pw3270/pixmaps/pw3270.svg |
48 | 50 | @echo " ICON xhdpi" |
49 | 51 | @$(MKDIR) `dirname $@` | ... | ... |
android/jni/main.cpp
... | ... | @@ -166,14 +166,14 @@ JNIEXPORT jstring JNICALL Java_br_com_bb_pw3270_lib3270_getHost(JNIEnv *env, job |
166 | 166 | return env->NewStringUTF(lib3270_get_host(lib3270_get_default_session_handle())); |
167 | 167 | } |
168 | 168 | |
169 | -JNIEXPORT jint JNICALL Java_br_com_bb_pw3270_lib3270_do_1connect(JNIEnv *env, jobject obj) | |
169 | +JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_set_1connection_1status(JNIEnv *env, jobject obj, jboolean connected) | |
170 | 170 | { |
171 | - int rc; | |
172 | 171 | session_request(env,obj); |
173 | - rc = lib3270_connect(session,0,1); | |
174 | - trace("lib3270_connect exits with rc=%d",rc); | |
172 | + if(connected) | |
173 | + lib3270_set_connected(session); | |
174 | + else | |
175 | + lib3270_set_disconnected(session); | |
175 | 176 | session_release(); |
176 | - return (jint) rc; | |
177 | 177 | } |
178 | 178 | |
179 | 179 | JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_procRecvdata(JNIEnv *env, jobject obj, jbyteArray buffer, jint sz) | ... | ... |
android/src/br/com/bb/pw3270/PW3270Activity.java
android/src/br/com/bb/pw3270/lib3270.java
... | ... | @@ -159,36 +159,36 @@ public class lib3270 |
159 | 159 | { |
160 | 160 | |
161 | 161 | info(TAG,"Network thread started"); |
162 | - postMessage(0,1,0); | |
163 | 162 | connected = connect(); |
164 | 163 | |
165 | - while(connected) | |
166 | - { | |
167 | - byte[] in = new byte[4096]; | |
168 | - int sz = -1; | |
169 | - | |
170 | - try | |
171 | - { | |
172 | - sz = inData.read(in,0,4096); | |
173 | - } catch( Exception e ) { sz = -1; } | |
174 | - | |
175 | - if(sz < 0) | |
176 | - { | |
177 | - connected = false; | |
178 | - } | |
179 | - else if(sz > 0) | |
180 | - { | |
181 | - Message msg = mHandler.obtainMessage(); | |
182 | - msg.what = 6; | |
183 | - msg.obj = new byteMessage(in,sz); | |
184 | - | |
185 | - mHandler.sendMessage(msg); | |
186 | - | |
187 | -// Log.d(TAG,sz + " bytes recebidos"); | |
188 | -// procRecvdata(in,sz); | |
164 | + if(connected) | |
165 | + { | |
166 | + postMessage(0,0,0); | |
189 | 167 | |
190 | - } | |
191 | - } | |
168 | + while(connected) | |
169 | + { | |
170 | + byte[] in = new byte[4096]; | |
171 | + int sz = -1; | |
172 | + | |
173 | + try | |
174 | + { | |
175 | + sz = inData.read(in,0,4096); | |
176 | + } catch( Exception e ) { sz = -1; } | |
177 | + | |
178 | + if(sz < 0) | |
179 | + { | |
180 | + connected = false; | |
181 | + } | |
182 | + else if(sz > 0) | |
183 | + { | |
184 | + Message msg = mHandler.obtainMessage(); | |
185 | + msg.what = 6; | |
186 | + msg.obj = new byteMessage(in,sz); | |
187 | + | |
188 | + mHandler.sendMessage(msg); | |
189 | + } | |
190 | + } | |
191 | + } | |
192 | 192 | |
193 | 193 | try |
194 | 194 | { |
... | ... | @@ -198,8 +198,10 @@ public class lib3270 |
198 | 198 | sock = null; |
199 | 199 | outData = null; |
200 | 200 | inData = null; |
201 | + | |
201 | 202 | postMessage(0,0,0); |
202 | 203 | |
204 | + mainloop = null; | |
203 | 205 | info(TAG,"Network thread stopped"); |
204 | 206 | } |
205 | 207 | |
... | ... | @@ -241,11 +243,9 @@ public class lib3270 |
241 | 243 | { |
242 | 244 | switch(msg.what) |
243 | 245 | { |
244 | - case 0: // Start/Stop service thread | |
245 | - if(msg.arg1 == 0) | |
246 | - { | |
247 | - mainloop = null; | |
248 | - } | |
246 | + case 0: // Connected/Disconnected | |
247 | + set_connection_status(connected); | |
248 | + Log.d(TAG,connected ? "Connected" : "Disconnected"); | |
249 | 249 | break; |
250 | 250 | |
251 | 251 | case 1: // OIA message has changed |
... | ... | @@ -278,7 +278,6 @@ public class lib3270 |
278 | 278 | break; |
279 | 279 | |
280 | 280 | case 6: // recv_data |
281 | - Log.d(TAG,((byteMessage) msg.obj).getLength() + " bytes recebidos"); | |
282 | 281 | procRecvdata(((byteMessage) msg.obj).getMessage(),((byteMessage) msg.obj).getLength()); |
283 | 282 | break; |
284 | 283 | } |
... | ... | @@ -339,7 +338,8 @@ public class lib3270 |
339 | 338 | static private native int init(); |
340 | 339 | |
341 | 340 | private native int processEvents(); |
342 | - private native int do_connect(); | |
341 | +// private native int do_connect(); | |
342 | + private native void set_connection_status(boolean state); | |
343 | 343 | |
344 | 344 | // Misc calls |
345 | 345 | public native String getEncoding(); | ... | ... |