Commit d9c9f52e7eb913e526cf93c7131ef23f9689948b

Authored by perry.werneck@gmail.com
1 parent 24e5bd3f

Implementando chamadas para Android

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
... ... @@ -51,8 +51,6 @@ public class PW3270Activity extends Activity implements View.OnClickListener
51 51 try
52 52 {
53 53 String text = new String(getText(),getEncoding());
54   -
55   - msgbox
56 54 Log.i(TAG,text);
57 55 } catch(Exception e) { }
58 56 }
... ...
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();
... ...