From af4e4fa982391c2cacc1855325cb98cd5916c29b Mon Sep 17 00:00:00 2001 From: Juan Miguel Boyero Corral Date: Tue, 22 Nov 2011 22:02:54 +0000 Subject: [PATCH] Added workaround for Android emulator bug. Closes #2 git-svn-id: https://forja.rediris.es/svn/cusl6-swadroid/trunk@43 5bc14d19-1e4b-4ba2-aa50-860af135f48c --- SWADroid/gen/es/ugr/swad/swadroid/R.java | 1 + SWADroid/res/values-es/strings.xml | 7 +++++-- SWADroid/res/values/strings.xml | 7 ++++--- SWADroid/src/es/ugr/swad/swadroid/Global.java | 4 ++++ .../src/es/ugr/swad/swadroid/modules/Module.java | 14 +++++++++++++- 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/SWADroid/gen/es/ugr/swad/swadroid/R.java b/SWADroid/gen/es/ugr/swad/swadroid/R.java index 5a58679f..656a2179 100644 --- a/SWADroid/gen/es/ugr/swad/swadroid/R.java +++ b/SWADroid/gen/es/ugr/swad/swadroid/R.java @@ -33,6 +33,7 @@ public final class R { public static final int close_dialog=0x7f050003; public static final int errorCopyMsg_DB=0x7f050016; public static final int errorMsgLaunchingActivity=0x7f050014; + public static final int errorMsgWorkaroundEmulator=0x7f050015; public static final int functionsTitle_menu=0x7f05000f; public static final int loginModuleLabel=0x7f050001; public static final int loginProgressDescription=0x7f050013; diff --git a/SWADroid/res/values-es/strings.xml b/SWADroid/res/values-es/strings.xml index 4ef4b885..31b571a1 100644 --- a/SWADroid/res/values-es/strings.xml +++ b/SWADroid/res/values-es/strings.xml @@ -20,5 +20,8 @@ Conectar Identificación Conectando... - Ha ocurrido un error durante la ejecución de la operaciónActualizando base de datos...Error copiando base de datos - \ No newline at end of file + Ha ocurrido un error durante la ejecución de la operación + Actualizando base de datos...Error copiando base de datos + Ha ocurrido un error durante la ejecución de la operación + Mierda. Ese bug del emulador de Android ha vuelto a aparecer. Reintentando... + diff --git a/SWADroid/res/values/strings.xml b/SWADroid/res/values/strings.xml index a7704bdf..6279ed8a 100644 --- a/SWADroid/res/values/strings.xml +++ b/SWADroid/res/values/strings.xml @@ -21,6 +21,7 @@ Login Connecting... An error occurred during the execution of the operation -Upgrading database... -Error copying database - \ No newline at end of file + Upgrading database... + Error copying database + Damn. That Android emulator bug appeared again. Retrying... + diff --git a/SWADroid/src/es/ugr/swad/swadroid/Global.java b/SWADroid/src/es/ugr/swad/swadroid/Global.java index 9f0d057f..8fb63753 100644 --- a/SWADroid/src/es/ugr/swad/swadroid/Global.java +++ b/SWADroid/src/es/ugr/swad/swadroid/Global.java @@ -72,4 +72,8 @@ public class Global { * Table name for for relationship between test's questions and tags */ public static final String DB_TABLE_TEST_QUESTIONS_TAGS = "tst_questions_tags"; + /* + * Class Module's tag name for Logcat + */ + public static final String MODULE_TAG = "Module"; } diff --git a/SWADroid/src/es/ugr/swad/swadroid/modules/Module.java b/SWADroid/src/es/ugr/swad/swadroid/modules/Module.java index 0bae0c5e..03e392ac 100644 --- a/SWADroid/src/es/ugr/swad/swadroid/modules/Module.java +++ b/SWADroid/src/es/ugr/swad/swadroid/modules/Module.java @@ -22,6 +22,8 @@ package es.ugr.swad.swadroid.modules; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; +import android.util.Log; +import es.ugr.swad.swadroid.Global; import es.ugr.swad.swadroid.Preferences; import es.ugr.swad.swadroid.R; import java.io.IOException; @@ -209,7 +211,17 @@ public class Module extends Activity { SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.setOutputSoapObject(request); HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); - androidHttpTransport.call(SOAP_ACTION, envelope); + + //If an XmlPullParserException occurs, retry once in order to workaround an Android emulator bug + try { + androidHttpTransport.call(SOAP_ACTION, envelope); + } catch(XmlPullParserException ex) { + Log.e(Global.MODULE_TAG, ex.getLocalizedMessage()); + ex.printStackTrace(); + Log.e(Global.MODULE_TAG, getString(R.string.errorMsgWorkaroundEmulator)); + androidHttpTransport.call(SOAP_ACTION, envelope); + } + result = (SoapObject) envelope.getResponse(); }