diff --git a/SWADroid/AndroidManifest.xml b/SWADroid/AndroidManifest.xml index dd6ba0a1..4c030d6c 100644 --- a/SWADroid/AndroidManifest.xml +++ b/SWADroid/AndroidManifest.xml @@ -21,7 +21,7 @@ - + diff --git a/SWADroid/gen/es/ugr/swad/swadroid/R.java b/SWADroid/gen/es/ugr/swad/swadroid/R.java index 78c72f8c..8efcce43 100644 --- a/SWADroid/gen/es/ugr/swad/swadroid/R.java +++ b/SWADroid/gen/es/ugr/swad/swadroid/R.java @@ -10,6 +10,7 @@ package es.ugr.swad.swadroid; public final class R { public static final class array { public static final int functions=0x7f060000; + public static final int testMenuItems=0x7f060001; } public static final class attr { } @@ -47,22 +48,23 @@ public final class R { public static final int eventText=0x7f090010; public static final int eventTime=0x7f09000a; public static final int eventType=0x7f09000d; - public static final int functionIcon=0x7f090004; - public static final int functionText=0x7f090005; + public static final int listIcon=0x7f090004; + public static final int listItems=0x7f090006; + public static final int listText=0x7f090005; public static final int moduleIcon=0x7f090000; public static final int moduleName=0x7f090001; public static final int notificationIcon=0x7f090008; - public static final int notificationsUpdateButton=0x7f090006; public static final int preferences_menu=0x7f090011; public static final int refresh=0x7f090003; public static final int title_sep_1=0x7f090002; } public static final class layout { public static final int action_bar=0x7f030000; - public static final int functions_list_item=0x7f030001; - public static final int main=0x7f030002; - public static final int notifications=0x7f030003; + public static final int image_list_item=0x7f030001; + public static final int list_items=0x7f030002; + public static final int main=0x7f030003; public static final int notifications_list_item=0x7f030004; + public static final int simple_list_item=0x7f030005; } public static final class menu { public static final int menu_main=0x7f080000; @@ -71,39 +73,37 @@ public final class R { public static final int about_preferences=0x7f070013; public static final int app_name=0x7f070000; public static final int close_dialog=0x7f070006; - public static final int content=0x7f070029; + public static final int content=0x7f070027; public static final int coursesModuleLabel=0x7f070003; public static final int coursesProgressDescription=0x7f07001b; public static final int coursesProgressTitle=0x7f07001a; - public static final int dateMsg=0x7f07002d; - public static final int errorConnectionMsg=0x7f070034; + public static final int dateMsg=0x7f07002b; + public static final int errorConnectionMsg=0x7f070032; public static final int errorCopyMsg_DB=0x7f07001e; public static final int errorMsgLaunchingActivity=0x7f07001c; public static final int errorMsgNoConnection=0x7f07001f; public static final int errorMsgWorkaroundEmulator=0x7f07001d; - public static final int errorServerResponseMsg=0x7f070033; - public static final int errorTimeoutMsg=0x7f070035; - public static final int evaluation=0x7f07002b; - public static final int examAnnouncement=0x7f070024; - public static final int firstRunMsg=0x7f070031; - public static final int forumReply=0x7f070028; - public static final int fromMsg=0x7f07002c; - public static final int initialDialogTitle=0x7f070030; + public static final int errorServerResponseMsg=0x7f070031; + public static final int errorTimeoutMsg=0x7f070033; + public static final int evaluation=0x7f070029; + public static final int examAnnouncement=0x7f070022; + public static final int firstRunMsg=0x7f07002f; + public static final int forumReply=0x7f070026; + public static final int fromMsg=0x7f07002a; + public static final int initialDialogTitle=0x7f07002e; public static final int loginModuleLabel=0x7f070001; public static final int loginProgressDescription=0x7f070017; public static final int loginProgressTitle=0x7f070016; public static final int loginSuccessfulMsg=0x7f070021; public static final int loginTitle_menu=0x7f070015; - public static final int marksFile=0x7f070025; - public static final int message=0x7f070027; - public static final int messages=0x7f07002a; - public static final int noMsg=0x7f07002f; - public static final int notice=0x7f070026; + public static final int marksFile=0x7f070023; + public static final int message=0x7f070025; + public static final int messages=0x7f070028; + public static final int noMsg=0x7f07002d; + public static final int notice=0x7f070024; public static final int notificationsModuleLabel=0x7f070002; public static final int notificationsProgressDescription=0x7f070019; public static final int notificationsProgressTitle=0x7f070018; - public static final int notificationsSuccessfulMsg=0x7f070022; - public static final int notificationsUpdateButton=0x7f070023; public static final int preferencesTitle_menu=0x7f070012; public static final int saveMsg_preferences=0x7f07000f; public static final int saveSummary_preferences=0x7f070010; @@ -111,7 +111,7 @@ public final class R { public static final int set_preferences=0x7f070007; public static final int testsModuleLabel=0x7f070004; public static final int title_error_dialog=0x7f070005; - public static final int upgradeMsg=0x7f070032; + public static final int upgradeMsg=0x7f070030; public static final int upgradeMsg_DB=0x7f070020; public static final int userIDName_preferences=0x7f070009; public static final int userIDSummary_preferences=0x7f07000a; @@ -121,7 +121,7 @@ public final class R { public static final int userPasswordTitle_preferences=0x7f07000e; public static final int user_preferences=0x7f070008; public static final int versionTitle_preferences=0x7f070014; - public static final int yesMsg=0x7f07002e; + public static final int yesMsg=0x7f07002c; } public static final class xml { public static final int preferences=0x7f040000; diff --git a/SWADroid/res/layout/image_list_item.xml b/SWADroid/res/layout/image_list_item.xml new file mode 100644 index 00000000..c0830d9a --- /dev/null +++ b/SWADroid/res/layout/image_list_item.xml @@ -0,0 +1,24 @@ + + + + + + + + + \ No newline at end of file diff --git a/SWADroid/res/layout/list_items.xml b/SWADroid/res/layout/list_items.xml new file mode 100644 index 00000000..2a6b5d8f --- /dev/null +++ b/SWADroid/res/layout/list_items.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/SWADroid/res/layout/simple_list_item.xml b/SWADroid/res/layout/simple_list_item.xml new file mode 100644 index 00000000..9114359b --- /dev/null +++ b/SWADroid/res/layout/simple_list_item.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/SWADroid/res/values-es/lists.xml b/SWADroid/res/values-es/lists.xml new file mode 100644 index 00000000..3f71ff04 --- /dev/null +++ b/SWADroid/res/values-es/lists.xml @@ -0,0 +1,11 @@ + + + + Notificaciones + Tests + + + Descargar/Actualizar tests + Realizar test + + diff --git a/SWADroid/res/values-es/strings.xml b/SWADroid/res/values-es/strings.xml index 4fa2fb53..fb4d683c 100644 --- a/SWADroid/res/values-es/strings.xml +++ b/SWADroid/res/values-es/strings.xml @@ -1,39 +1,66 @@ - SWADroid - ConectarNotificacionesAsignaturasTests - ERROR - Cerrar - Configuración - Datos del usuario - Usuario - DNI o Alias - Usuario - Contraseña - Contraseña - Contraseña - Configuración guardada - Guarda la configuración actual - Guardar configuración - ConfiguraciónAcerca deVersión de la aplicación - Conectar - Identificación - Conectando... - AsignaturasObteniendo asignaturas...NotificacionesObteniendo nuevas notificacionesMierda. Ese bug del emulador de Android ha vuelto a aparecer. Reintentando... - Ha ocurrido un error durante la ejecución de la operaciónNo hay conexión - Error copiando base de datosActualizando base de datos... -ConectadoNotificaciones descargadas -Actualizar -Convocatoria de examen -Calificaciones -Aviso -Mensaje -Respuesta en foroContenidoMensajesEvaluaciónDeFecha - -No -Antes de usar la aplicación por primera vez debe introducir el nombre de usuario y la contraseña de acceso a SWAD en la pantalla de configuración.\n\nPuede acceder a la pantalla de configuración desde el menú de la aplicación en cualquier momento.\n\n¿Desea abrir ahora la pantalla de configuración? -IMPORTANTEDebido a cambios en la base de datos todos los datos de las notificaciones han sido borrados.\n\nDisculpe las molestias. -Error en respuesta del servidorError durante la conexión con el servidorTiempo de espera agotado intentando conectar con el servidor + SWADroid + Conectar + Notificaciones + Asignaturas + Tests + ERROR + Cerrar + Configuración + Datos del usuario + Usuario + DNI o Alias + Usuario + Contraseña + Contraseña + Contraseña + Configuración guardada + Guarda la configuración actual + Guardar configuración + Configuración + Acerca de + Versión de la aplicación + Conectar + Identificación + Conectando... + Asignaturas + Obteniendo asignaturas... + Notificaciones + Obteniendo nuevas notificaciones + Mierda. Ese bug del emulador de Android ha vuelto a + aparecer. Reintentando... + Ha ocurrido un error durante la ejecución de la + operación + No hay conexión + Error copiando base de datos + Actualizando base de datos... + Conectado + Convocatoria de examen + Calificaciones + Aviso + Mensaje + Respuesta en foro + Contenido + Mensajes + Evaluación + De + Fecha + + No + Antes de usar la aplicación por primera vez debe + introducir el nombre de usuario y la contraseña de acceso a SWAD en la + pantalla de configuración.\n\nPuede acceder a la pantalla de + configuración desde el menú de la aplicación en cualquier + momento.\n\n¿Desea abrir ahora la pantalla de configuración? + IMPORTANTE + Debido a cambios en la base de datos todos los + datos de las notificaciones han sido borrados.\n\nDisculpe las + molestias. + Error en respuesta del servidor + Error durante la conexión con el servidor + Tiempo de espera agotado intentando conectar con el + servidor diff --git a/SWADroid/res/values/lists.xml b/SWADroid/res/values/lists.xml new file mode 100644 index 00000000..b4d8ff26 --- /dev/null +++ b/SWADroid/res/values/lists.xml @@ -0,0 +1,11 @@ + + + + Notices + Tests + + + Download/Update tests + Make test + + diff --git a/SWADroid/res/values/strings.xml b/SWADroid/res/values/strings.xml index 9d2819a8..5156037c 100644 --- a/SWADroid/res/values/strings.xml +++ b/SWADroid/res/values/strings.xml @@ -1,43 +1,65 @@ - SWADroid - LoginNotificationsCoursesTests - ERROR - Close - Preferences - User data - User - DNI or Nickname - User - Password - Password - Password - Preferences have been saved - Save actual preferences - Save preferences - PreferencesAboutApplication version - Login - Login - Connecting... - NotificationsRetrieving new notificationsCoursesRetrieving courses...An error occurred during the execution of the operation - Damn. That Android emulator bug appeared again. Retrying... - - Error copying database -No connection foundUpgrading database...Login successful -Notifications fetched -Update -Exam announcement -Marks file -Notice -Message -Forum replyContent -MessagesEvaluationFrom -Date -Yes -No -IMPORTANTBefore using the application for the first time you must enter the user name and password for SWAD at the setup screen.\n\nYou can access to the setup screen from the application menu anytime.\n\nDo you want to open the configuration screen now?Due to changes in the database all notifications data have been deleted.\n\nSorry.Error in server response -Error while connecting to server -Timeout trying to connect to the server + SWADroid + Login + Notifications + Courses + Tests + ERROR + Close + Preferences + User data + User + DNI or Nickname + User + Password + Password + Password + Preferences have been saved + Save actual preferences + Save preferences + Preferences + About + Application version + Login + Login + Connecting... + Notifications + Retrieving new notifications + Courses + Retrieving courses... + An error occurred during the execution of the + operation + Damn. That Android emulator bug appeared again. + Retrying... + + Error copying database + No connection found + Upgrading database... + Login successful + Exam announcement + Marks file + Notice + Message + Forum reply + Content + Messages + Evaluation + From + Date + Yes + No + IMPORTANT + Before using the application for the first time you + must enter the user name and password for SWAD at the setup + screen.\n\nYou can access to the setup screen from the application + menu anytime.\n\nDo you want to open the configuration screen now? + + Due to changes in the database all notifications + data have been deleted.\n\nSorry. + Error in server response + Error while connecting to server + Timeout trying to connect to the server diff --git a/SWADroid/src/es/ugr/swad/swadroid/ImageExpandableListAdapter.java b/SWADroid/src/es/ugr/swad/swadroid/ImageExpandableListAdapter.java index 0cfb965f..cdf83782 100644 --- a/SWADroid/src/es/ugr/swad/swadroid/ImageExpandableListAdapter.java +++ b/SWADroid/src/es/ugr/swad/swadroid/ImageExpandableListAdapter.java @@ -35,8 +35,8 @@ import android.widget.TextView; * */ public class ImageExpandableListAdapter extends SimpleExpandableListAdapter { - final String NAME = "functionText"; - final String IMAGE = "functionIcon"; + final String NAME = "listText"; + final String IMAGE = "listIcon"; final LayoutInflater layoutInflater; public ImageExpandableListAdapter(Context context, @@ -62,8 +62,8 @@ public class ImageExpandableListAdapter extends SimpleExpandableListAdapter { final View v = super.getGroupView(groupPosition, isExpanded, convertView, parent); // Populate your custom view here - ((TextView)v.findViewById(R.id.functionText)).setText( (String) ((Map)getGroup(groupPosition)).get(NAME) ); - ((ImageView)v.findViewById(R.id.functionIcon)).setImageDrawable( (Drawable) ((Map)getGroup(groupPosition)).get(IMAGE) ); + ((TextView)v.findViewById(R.id.listText)).setText( (String) ((Map)getGroup(groupPosition)).get(NAME) ); + ((ImageView)v.findViewById(R.id.listIcon)).setImageDrawable( (Drawable) ((Map)getGroup(groupPosition)).get(IMAGE) ); return v; } @@ -73,8 +73,8 @@ public class ImageExpandableListAdapter extends SimpleExpandableListAdapter { final View v = super.getChildView(groupPosition, childPosition, isLastChild, convertView, parent); // Populate your custom view here - ((TextView)v.findViewById(R.id.functionText)).setText( (String) ((Map)getChild(groupPosition, childPosition)).get(NAME) ); - ((ImageView)v.findViewById(R.id.functionIcon)).setImageDrawable( (Drawable) ((Map)getChild(groupPosition, childPosition)).get(IMAGE) ); + ((TextView)v.findViewById(R.id.listText)).setText( (String) ((Map)getChild(groupPosition, childPosition)).get(NAME) ); + ((ImageView)v.findViewById(R.id.listIcon)).setImageDrawable( (Drawable) ((Map)getChild(groupPosition, childPosition)).get(IMAGE) ); return v; } @@ -84,11 +84,11 @@ public class ImageExpandableListAdapter extends SimpleExpandableListAdapter { */ @Override public View newGroupView(boolean isExpanded, ViewGroup parent) { - return layoutInflater.inflate(R.layout.functions_list_item, parent, false); + return layoutInflater.inflate(R.layout.image_list_item, parent, false); } @Override public View newChildView(boolean isLastChild, ViewGroup parent) { - return layoutInflater.inflate(R.layout.functions_list_item, parent, false); + return layoutInflater.inflate(R.layout.image_list_item, parent, false); } } diff --git a/SWADroid/src/es/ugr/swad/swadroid/SWADMain.java b/SWADroid/src/es/ugr/swad/swadroid/SWADMain.java index 522be78e..a6adc597 100644 --- a/SWADroid/src/es/ugr/swad/swadroid/SWADMain.java +++ b/SWADroid/src/es/ugr/swad/swadroid/SWADMain.java @@ -38,9 +38,9 @@ import android.view.View; import android.widget.ExpandableListView; import android.widget.ImageView; import android.widget.TextView; -import android.widget.Toast; import es.ugr.swad.swadroid.model.DataBaseHelper; import es.ugr.swad.swadroid.modules.notifications.Notifications; +import es.ugr.swad.swadroid.modules.tests.Tests; import es.ugr.swad.swadroid.ssl.SecureConnection; /** @@ -67,11 +67,11 @@ public class SWADMain extends ExpandableListActivity { /** * Function name field */ - final String NAME = "functionText"; + final String NAME = "listText"; /** * Function text field */ - final String IMAGE = "functionIcon"; + final String IMAGE = "listIcon"; /** * Gets the database helper @@ -99,12 +99,6 @@ public class SWADMain extends ExpandableListActivity { .setMessage(message) .setNeutralButton(R.string.close_dialog, null) .setIcon(R.drawable.erroricon).show(); - /*.setNeutralButton(R.string.close_dialog, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - SWADMain.this.finish(); - } - })*/ } /** @@ -163,24 +157,6 @@ public class SWADMain extends ExpandableListActivity { return super.onOptionsItemSelected(item); } - /* (non-Javadoc) - * @see android.app.Activity#onActivityResult() - */ - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - if (resultCode == ExpandableListActivity.RESULT_OK) { - //Bundle extras = data.getExtras(); - - switch(requestCode) { - case Global.NOTIFICATIONS_REQUEST_CODE: - Toast.makeText(getBaseContext(), - R.string.notificationsSuccessfulMsg, - Toast.LENGTH_LONG).show(); - Log.d(Global.NOTIFICATIONS_TAG, getString(R.string.notificationsSuccessfulMsg)); - } - } - } - /* (non-Javadoc) * @see android.app.ExpandableListActivity#onChildClick(android.widget.ExpandableListView, android.view.View, int, int, long) */ @@ -199,11 +175,11 @@ public class SWADMain extends ExpandableListActivity { startActivityForResult(activity, Global.NOTIFICATIONS_REQUEST_CODE); } else if(keyword.equals(getString(R.string.testsModuleLabel))) { - /*activity = new Intent(getBaseContext(), + activity = new Intent(getBaseContext(), Tests.class); - startActivityForResult(activity, Global.TESTS_REQUEST_CODE);*/ - Toast.makeText(this, keyword + " aún no implementado", Toast.LENGTH_LONG) - .show(); + startActivityForResult(activity, Global.TESTS_REQUEST_CODE); + /*Toast.makeText(this, keyword + " aún no implementado", Toast.LENGTH_LONG) + .show();*/ } return true; @@ -218,6 +194,9 @@ public class SWADMain extends ExpandableListActivity { prefs.getPreferences(getBaseContext()); } + /** + * Create main menu with an expandable list + */ private void createMainMenu() { // Construct Expandable List @@ -254,9 +233,9 @@ public class SWADMain extends ExpandableListActivity { setListAdapter( new ImageExpandableListAdapter( this, headerData, - R.layout.functions_list_item, + R.layout.image_list_item, new String[] { NAME }, // the name of the field data - new int[] { R.id.functionText }, // the text field to populate with the field data + new int[] { R.id.listText }, // the text field to populate with the field data childData, 0, null, diff --git a/SWADroid/src/es/ugr/swad/swadroid/modules/Module.java b/SWADroid/src/es/ugr/swad/swadroid/modules/Module.java index c865ac37..fef8aa1d 100644 --- a/SWADroid/src/es/ugr/swad/swadroid/modules/Module.java +++ b/SWADroid/src/es/ugr/swad/swadroid/modules/Module.java @@ -21,7 +21,6 @@ package es.ugr.swad.swadroid.modules; import android.app.Activity; import android.app.AlertDialog; -import android.app.ListActivity; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; @@ -57,7 +56,7 @@ import org.xmlpull.v1.XmlPullParserException; * Superclass for encapsulate common behavior of all modules. * @author Juan Miguel Boyero Corral */ -public abstract class Module extends ListActivity { +public abstract class Module extends Activity { /** * SOAP_ACTION param for webservice request. */ @@ -375,11 +374,6 @@ public abstract class Module extends ListActivity { break; } - } else { - switch(requestCode) { - case Global.LOGIN_REQUEST_CODE: - break; - } } } diff --git a/SWADroid/src/es/ugr/swad/swadroid/modules/notifications/Notifications.java b/SWADroid/src/es/ugr/swad/swadroid/modules/notifications/Notifications.java index 37546760..dea8940c 100644 --- a/SWADroid/src/es/ugr/swad/swadroid/modules/notifications/Notifications.java +++ b/SWADroid/src/es/ugr/swad/swadroid/modules/notifications/Notifications.java @@ -39,6 +39,8 @@ import android.database.Cursor; import android.os.Bundle; import android.util.Log; import android.view.View; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.ListView; @@ -79,9 +81,23 @@ public class Notifications extends Module { ImageButton updateButton; ImageView image; TextView text; + ListView list; + OnItemClickListener clickListener = new OnItemClickListener() { + public void onItemClick(AdapterView av, View v, int arg2, + long arg3) { + + TextView content = (TextView) v.findViewById(R.id.eventText); + if(content.getVisibility() == View.VISIBLE) + { + content.setVisibility(View.GONE); + } else { + content.setVisibility(View.VISIBLE); + } + } + }; super.onCreate(savedInstanceState); - setContentView(R.layout.notifications); + setContentView(R.layout.list_items); image = (ImageView)this.findViewById(R.id.moduleIcon); image.setBackgroundResource(R.drawable.notif); @@ -98,7 +114,10 @@ public class Notifications extends Module { //dbHelper.emptyTable(Global.DB_TABLE_NOTIFICATIONS); dbCursor = dbHelper.getDb().getCursor(Global.DB_TABLE_NOTIFICATIONS, selection, orderby); adapter = new NotificationsCursorAdapter(this, dbCursor); - setListAdapter(adapter); + + list = (ListView)this.findViewById(R.id.listItems); + list.setAdapter(adapter); + list.setOnItemClickListener(clickListener); setMETHOD_NAME("getNotifications"); } @@ -112,22 +131,6 @@ public class Notifications extends Module { runConnection(); } - /* (non-Javadoc) - * @see android.app.ListActivity#onListItemClick(android.widget.ListView, android.view.View, int, long) - */ - @Override - protected void onListItemClick(ListView l, View v, int position, long id) { - super.onListItemClick(l, v, position, id); - - TextView content = (TextView) v.findViewById(R.id.eventText); - if(content.getVisibility() == View.VISIBLE) - { - content.setVisibility(View.GONE); - } else { - content.setVisibility(View.VISIBLE); - } - } - /* (non-Javadoc) * @see es.ugr.swad.swadroid.modules.Module#onResume() */