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(); | ... | ... |