Commit d9c9f52e7eb913e526cf93c7131ef23f9689948b

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

Implementando chamadas para Android

android/Makefile
@@ -44,6 +44,8 @@ clean: @@ -44,6 +44,8 @@ clean:
44 @rm -f bin/classes/$(CLASSPATH)/lib3270.class 44 @rm -f bin/classes/$(CLASSPATH)/lib3270.class
45 @rm -f $(foreach DIR, $(RESOLUTION), res/drawable-$(DIR)/ic_launcher.png) 45 @rm -f $(foreach DIR, $(RESOLUTION), res/drawable-$(DIR)/ic_launcher.png)
46 46
  47 +cleanDebug: clean
  48 +
47 res/drawable-xhdpi/ic_launcher.png: ../src/pw3270/pixmaps/pw3270.svg 49 res/drawable-xhdpi/ic_launcher.png: ../src/pw3270/pixmaps/pw3270.svg
48 @echo " ICON xhdpi" 50 @echo " ICON xhdpi"
49 @$(MKDIR) `dirname $@` 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,14 +166,14 @@ JNIEXPORT jstring JNICALL Java_br_com_bb_pw3270_lib3270_getHost(JNIEnv *env, job
166 return env->NewStringUTF(lib3270_get_host(lib3270_get_default_session_handle())); 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 session_request(env,obj); 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 session_release(); 176 session_release();
176 - return (jint) rc;  
177 } 177 }
178 178
179 JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_procRecvdata(JNIEnv *env, jobject obj, jbyteArray buffer, jint sz) 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,8 +51,6 @@ public class PW3270Activity extends Activity implements View.OnClickListener
51 try 51 try
52 { 52 {
53 String text = new String(getText(),getEncoding()); 53 String text = new String(getText(),getEncoding());
54 -  
55 - msgbox  
56 Log.i(TAG,text); 54 Log.i(TAG,text);
57 } catch(Exception e) { } 55 } catch(Exception e) { }
58 } 56 }
android/src/br/com/bb/pw3270/lib3270.java
@@ -159,36 +159,36 @@ public class lib3270 @@ -159,36 +159,36 @@ public class lib3270
159 { 159 {
160 160
161 info(TAG,"Network thread started"); 161 info(TAG,"Network thread started");
162 - postMessage(0,1,0);  
163 connected = connect(); 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 try 193 try
194 { 194 {
@@ -198,8 +198,10 @@ public class lib3270 @@ -198,8 +198,10 @@ public class lib3270
198 sock = null; 198 sock = null;
199 outData = null; 199 outData = null;
200 inData = null; 200 inData = null;
  201 +
201 postMessage(0,0,0); 202 postMessage(0,0,0);
202 203
  204 + mainloop = null;
203 info(TAG,"Network thread stopped"); 205 info(TAG,"Network thread stopped");
204 } 206 }
205 207
@@ -241,11 +243,9 @@ public class lib3270 @@ -241,11 +243,9 @@ public class lib3270
241 { 243 {
242 switch(msg.what) 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 break; 249 break;
250 250
251 case 1: // OIA message has changed 251 case 1: // OIA message has changed
@@ -278,7 +278,6 @@ public class lib3270 @@ -278,7 +278,6 @@ public class lib3270
278 break; 278 break;
279 279
280 case 6: // recv_data 280 case 6: // recv_data
281 - Log.d(TAG,((byteMessage) msg.obj).getLength() + " bytes recebidos");  
282 procRecvdata(((byteMessage) msg.obj).getMessage(),((byteMessage) msg.obj).getLength()); 281 procRecvdata(((byteMessage) msg.obj).getMessage(),((byteMessage) msg.obj).getLength());
283 break; 282 break;
284 } 283 }
@@ -339,7 +338,8 @@ public class lib3270 @@ -339,7 +338,8 @@ public class lib3270
339 static private native int init(); 338 static private native int init();
340 339
341 private native int processEvents(); 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 // Misc calls 344 // Misc calls
345 public native String getEncoding(); 345 public native String getEncoding();