From 6f207f07af17370ac99651c1cdfadf02c347a287 Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Thu, 9 Aug 2012 12:54:30 +0000 Subject: [PATCH] Melhorando diálogo de configuração android --- android/res/values/strings.xml | 2 +- android/res/xml/preferences.xml | 21 ++++++++++++++++----- android/src/br/com/bb/pw3270/PW3270Activity.java | 39 ++++++++++++++++++++++----------------- android/src/br/com/bb/pw3270/SettingsActivity.java | 26 +++++++++++++++++++++++++- android/src/br/com/bb/pw3270/lib3270.java | 29 ++++++++++++++--------------- 5 files changed, 78 insertions(+), 39 deletions(-) diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml index 956b803..27c634c 100644 --- a/android/res/values/strings.xml +++ b/android/res/values/strings.xml @@ -18,7 +18,7 @@ X Resolvendo X Conectando - Connect + Em processamento \ No newline at end of file diff --git a/android/res/xml/preferences.xml b/android/res/xml/preferences.xml index 893c119..55bd76f 100644 --- a/android/res/xml/preferences.xml +++ b/android/res/xml/preferences.xml @@ -24,19 +24,30 @@ - + + + + diff --git a/android/src/br/com/bb/pw3270/PW3270Activity.java b/android/src/br/com/bb/pw3270/PW3270Activity.java index 18a96dc..a124a6f 100644 --- a/android/src/br/com/bb/pw3270/PW3270Activity.java +++ b/android/src/br/com/bb/pw3270/PW3270Activity.java @@ -29,7 +29,7 @@ public class PW3270Activity extends Activity private WebView view; private terminal host; private Activity mainact = this; - private ProgressDialog dlgProgress; + private ProgressDialog dlgSysMessage; private class terminal extends lib3270 { @@ -41,14 +41,7 @@ public class PW3270Activity extends Activity public void hideProgressDialog() { - dlgProgress.hide(); - } - - public void showProgressDialog(String msg) - { - dlgProgress.setMessage(msg); - Log.v(TAG,msg); - dlgProgress.show(); + dlgSysMessage.hide(); } protected void updateScreen() @@ -63,12 +56,12 @@ public class PW3270Activity extends Activity String message[] = res.getStringArray(R.array.program_msg); try { - showProgressDialog(message[id]); + dlgSysMessage.setMessage(message[id]); } catch(Exception e) { - Log.e(TAG,e.getLocalizedMessage()); - showProgressDialog("?"); + dlgSysMessage.setMessage(e.getLocalizedMessage()); } + dlgSysMessage.show(); } return true; } @@ -123,11 +116,23 @@ public class PW3270Activity extends Activity res = getResources(); - dlgProgress = new ProgressDialog(this); - dlgProgress.setMessage("Aguarde..."); - dlgProgress.setCancelable(false); -// dlgProgress.show(); + // Cria dialogo para as mensagems de sistema + dlgSysMessage = new ProgressDialog(this); + dlgSysMessage.setCancelable(false); + dlgSysMessage.setTitle(res.getString(R.string.wait)); + + /* + dlgSysMessage.setButton(-2, "Desconectar", new DialogInterface.OnClickListener() + { + public void onClick(DialogInterface dialog, int which) + { + // TODO Auto-generated method stub + } + + }); + */ + // Reference: // http://developer.android.com/reference/android/webkit/WebView.html view = new WebView(this); @@ -177,7 +182,7 @@ public class PW3270Activity extends Activity setContentView(view); view.loadUrl("file:index.html"); - if(settings.getString("hostname","") != "" && settings.getBoolean("reconnect",false)) + if(settings.getString("hostname","") != "" && settings.getBoolean("autoconnect",false)) host.connect(); } diff --git a/android/src/br/com/bb/pw3270/SettingsActivity.java b/android/src/br/com/bb/pw3270/SettingsActivity.java index e405afb..eb97695 100644 --- a/android/src/br/com/bb/pw3270/SettingsActivity.java +++ b/android/src/br/com/bb/pw3270/SettingsActivity.java @@ -1,13 +1,30 @@ package br.com.bb.pw3270; import android.os.Bundle; +import android.preference.Preference; import android.preference.PreferenceFragment; import android.app.Activity; public class SettingsActivity extends Activity { - public static class SettingsFragment extends PreferenceFragment + public static class SettingsFragment extends PreferenceFragment { + private class stringSetting implements Preference.OnPreferenceChangeListener + { + + public stringSetting(Preference p) + { + p.setOnPreferenceChangeListener(this); + this.onPreferenceChange(p,null); + } + + public boolean onPreferenceChange(Preference p, Object arg1) + { + p.setSummary(p.getSharedPreferences().getString(p.getKey(),"")); + return false; + } + } + @Override public void onCreate(Bundle savedInstanceState) { @@ -15,7 +32,14 @@ public class SettingsActivity extends Activity // Load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences); + + // Update summary from settings + new stringSetting(findPreference("hostname")); + new stringSetting(findPreference("port")); + } + + } @Override diff --git a/android/src/br/com/bb/pw3270/lib3270.java b/android/src/br/com/bb/pw3270/lib3270.java index 3a6b444..a9bd9a9 100644 --- a/android/src/br/com/bb/pw3270/lib3270.java +++ b/android/src/br/com/bb/pw3270/lib3270.java @@ -66,10 +66,9 @@ public class lib3270 { switch (msg.what) { -/* - case 0: // Connected/Disconnected + case 0: // Reconnect + connect(); break; -*/ case 1: // OIA message has changed showProgramMessage(msg.arg1); @@ -81,8 +80,15 @@ public class lib3270 break; case 3: // Popup - popupMessageInfo popup = (popupMessageInfo) msg.obj; - showPopupMessage(msg.arg1, popup.title, popup.text, popup.info); + if(msg.arg1 == 1 && settings.getBoolean("reconnect",false)) + { + postMessage(0, 1, 0); + } + else + { + popupMessageInfo popup = (popupMessageInfo) msg.obj; + showPopupMessage(msg.arg1, popup.title, popup.text, popup.info); + } break; case 4: // erase @@ -97,12 +103,6 @@ public class lib3270 Log.d(TAG, "ctlr_done"); break; -/* - case 6: // recv_data - procRecvdata(((byteMessage) msg.obj).getMessage(),((byteMessage) msg.obj).getLength()); - break; -*/ - case 7: // ready hideProgressDialog(); break; @@ -203,7 +203,7 @@ public class lib3270 Log.i(TAG, "Erro ao enviar dados: " + msg); - postPopup(0, "Erro na comunicação", "Não foi possível enviar dados", msg); + postPopup(1, "Desconectado", "Erro de comunicação ao enviar dados", msg); connected = false; @@ -257,7 +257,7 @@ public class lib3270 Log.i(TAG, "Erro ao conectar: " + msg); - postPopup(0, "Erro na conexão", msg, ""); + postPopup(0, "Erro na conexão", "Não foi possível conectar", msg); postMessage(0, 0, 0); @@ -286,14 +286,13 @@ public class lib3270 try { - Log.v(TAG,"Aguardando dados..."); sz = inData.read(in, 0, 4096); } catch (Exception e) { String msg = e.getLocalizedMessage(); Log.i(TAG, "Erro ao receber dados do host: " + msg); - postPopup(0, "Erro na comunicação", "Erro ao receber dados", msg); + postPopup(1, "Desconectado", "Erro de comunicação ao receber dados", msg); connected = false; sz = -1; } -- libgit2 0.21.2