Completed notifications background processing

git-svn-id: https://forja.rediris.es/svn/cusl6-swadroid/trunk@106 5bc14d19-1e4b-4ba2-aa50-860af135f48c
This commit is contained in:
Juan Miguel Boyero Corral 2011-11-22 22:08:50 +00:00
parent 612a69ddf9
commit 874a9a0c77
11 changed files with 247 additions and 125 deletions

View File

@ -17,9 +17,10 @@
</activity>
<activity
android:name=".modules.Login"
android:label="@string/loginModuleLabel" android:configChanges="keyboard|keyboardHidden|orientation" android:theme="@android:style/Theme.Dialog">
android:label="@string/loginModuleLabel" android:configChanges="keyboard|keyboardHidden|orientation" android:theme="@android:style/Theme.Translucent.NoTitleBar">
</activity>
<activity android:name=".modules.Courses" android:theme="@android:style/Theme.Dialog"></activity>
<activity android:name=".modules.Courses"><activity android:name=".modules.Courses" android:theme="@android:style/Theme.Dialog"></activity></activity>
<activity android:name=".modules.Notifications" android:label="@string/notificationsModuleLabel" android:icon="@drawable/ic_launcher_swadroid"></activity>
</application>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

View File

@ -29,35 +29,37 @@ public final class R {
}
public static final class string {
public static final int app_name=0x7f060000;
public static final int close_dialog=0x7f060004;
public static final int coursesModuleLabel=0x7f060002;
public static final int coursesProgressDescription=0x7f060017;
public static final int coursesProgressTitle=0x7f060016;
public static final int errorCopyMsg_DB=0x7f06001a;
public static final int errorMsgLaunchingActivity=0x7f060018;
public static final int errorMsgNoConnection=0x7f06001b;
public static final int errorMsgWorkaroundEmulator=0x7f060019;
public static final int close_dialog=0x7f060005;
public static final int coursesModuleLabel=0x7f060003;
public static final int coursesProgressDescription=0x7f060018;
public static final int coursesProgressTitle=0x7f060017;
public static final int errorCopyMsg_DB=0x7f06001b;
public static final int errorMsgLaunchingActivity=0x7f060019;
public static final int errorMsgNoConnection=0x7f06001c;
public static final int errorMsgWorkaroundEmulator=0x7f06001a;
public static final int loginModuleLabel=0x7f060001;
public static final int loginProgressDescription=0x7f060013;
public static final int loginProgressTitle=0x7f060012;
public static final int loginSuccessfulMsg=0x7f06001d;
public static final int loginTitle_menu=0x7f060011;
public static final int notificationsProgressDescription=0x7f060015;
public static final int notificationsProgressTitle=0x7f060014;
public static final int preferencesTitle_menu=0x7f060010;
public static final int saveMsg_preferences=0x7f06000d;
public static final int saveSummary_preferences=0x7f06000e;
public static final int saveTitle_preferences=0x7f06000f;
public static final int set_preferences=0x7f060005;
public static final int title_error_dialog=0x7f060003;
public static final int upgradeMsg_DB=0x7f06001c;
public static final int userIDName_preferences=0x7f060007;
public static final int userIDSummary_preferences=0x7f060008;
public static final int userIDTitle_preferences=0x7f060009;
public static final int userPasswordName_preferences=0x7f06000a;
public static final int userPasswordSummary_preferences=0x7f06000b;
public static final int userPasswordTitle_preferences=0x7f06000c;
public static final int user_preferences=0x7f060006;
public static final int loginProgressDescription=0x7f060014;
public static final int loginProgressTitle=0x7f060013;
public static final int loginSuccessfulMsg=0x7f06001e;
public static final int loginTitle_menu=0x7f060012;
public static final int notificationsModuleLabel=0x7f060002;
public static final int notificationsProgressDescription=0x7f060016;
public static final int notificationsProgressTitle=0x7f060015;
public static final int notificationsSuccessfulMsg=0x7f06001f;
public static final int preferencesTitle_menu=0x7f060011;
public static final int saveMsg_preferences=0x7f06000e;
public static final int saveSummary_preferences=0x7f06000f;
public static final int saveTitle_preferences=0x7f060010;
public static final int set_preferences=0x7f060006;
public static final int title_error_dialog=0x7f060004;
public static final int upgradeMsg_DB=0x7f06001d;
public static final int userIDName_preferences=0x7f060008;
public static final int userIDSummary_preferences=0x7f060009;
public static final int userIDTitle_preferences=0x7f06000a;
public static final int userPasswordName_preferences=0x7f06000b;
public static final int userPasswordSummary_preferences=0x7f06000c;
public static final int userPasswordTitle_preferences=0x7f06000d;
public static final int user_preferences=0x7f060007;
}
public static final class xml {
public static final int preferences=0x7f040000;

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="app_name">SWADroid</string>
<string name="loginModuleLabel">Conectar</string><string name="coursesModuleLabel">Asignaturas</string>
<string name="loginModuleLabel">Conectar</string><string name="notificationsModuleLabel">Notificaciones</string><string name="coursesModuleLabel">Asignaturas</string>
<string name="title_error_dialog">ERROR</string>
<string name="close_dialog">Cerrar</string>
<string name="set_preferences">Configuración</string>
@ -22,5 +22,5 @@
<string name="coursesProgressTitle">Asignaturas</string><string name="coursesProgressDescription">Obteniendo asignaturas...</string><string name="notificationsProgressTitle">Notificaciones</string><string name="notificationsProgressDescription">Obteniendo nuevas notificaciones</string><string name="errorMsgWorkaroundEmulator">Mierda. Ese bug del emulador de Android ha vuelto a aparecer. Reintentando...</string>
<string name="errorMsgLaunchingActivity">Ha ocurrido un error durante la ejecución de la operación</string><string name="errorMsgNoConnection">No hay conexión</string>
<string name="errorCopyMsg_DB">Error copiando base de datos</string><string name="upgradeMsg_DB">Actualizando base de datos...</string>
<string name="loginSuccessfulMsg">Conectado</string>
<string name="loginSuccessfulMsg">Conectado</string><string name="notificationsSuccessfulMsg">Notificaciones descargadas</string>
</resources>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="app_name">SWADroid</string>
<string name="loginModuleLabel">Login</string><string name="coursesModuleLabel">Courses</string>
<string name="loginModuleLabel">Login</string><string name="notificationsModuleLabel">Notifications</string><string name="coursesModuleLabel">Courses</string>
<string name="title_error_dialog">ERROR</string>
<string name="close_dialog">Close</string>
<string name="set_preferences">Preferences</string>
@ -19,11 +19,13 @@
<string name="loginTitle_menu">Login</string>
<string name="loginProgressTitle">Login</string>
<string name="loginProgressDescription">Connecting...</string>
<string name="notificationsProgressTitle">Notifications</string><string name="notificationsProgressDescription">Getting new notifications</string><string name="coursesProgressTitle">Courses</string><string name="coursesProgressDescription">Getting courses...</string><string name="errorMsgLaunchingActivity">An error occurred during the execution of the operation</string>
<string name="notificationsProgressTitle">Notifications</string><string name="notificationsProgressDescription">Fetching new notifications</string><string name="coursesProgressTitle">Courses</string><string name="coursesProgressDescription">Getting courses...</string><string name="errorMsgLaunchingActivity">An error occurred during the execution of the operation</string>
<string name="errorMsgWorkaroundEmulator">Damn. That Android emulator bug appeared again. Retrying...</string>
<string name="errorCopyMsg_DB">Error copying database</string>
<string name="errorMsgNoConnection">No connection found</string><string name="upgradeMsg_DB">Upgrading database...</string><string name="loginSuccessfulMsg">Login successful</string>
<string name="notificationsSuccessfulMsg">Notifications fetched</string>

View File

@ -1,19 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<database name="swadroid_db" version="2">
<database name="swadroid_db" version="4">
<table name="courses" to-string="%name%">
<field name="id" obligatory="true" type="integer"/>
<field name="name" obligatory="true" type="text"/>
</table>
<table name="notifications" to-string="%name%">
<table name="notifications" to-string="%name%" new-in-version="3">
<field name="id" obligatory="true" type="integer"/>
<field name="eventType" obligatory="true" type="text"/>
<field name="eventTime" obligatory="true" type="integer"/>
<field name="eventTime" obligatory="true" type="text"/>
<field name="userSurname1" obligatory="true" type="text"/>
<field name="userSurname2" obligatory="true" type="text"/>
<field name="userFirstname" obligatory="true" type="text"/>
<field name="location" obligatory="true" type="text"/>
<field name="summary" obligatory="true" type="text"/>
<field name="status" obligatory="true" type="text" new-in-version="4"/>
</table>
</database>

View File

@ -27,7 +27,7 @@ public class Global {
/**
* SWAD application key
*/
private static final String AppKey = "HTC-Desire";
private static final String AppKey = "";
/**
* User logged flag
*/
@ -64,6 +64,10 @@ public class Global {
* Login tag name for Logcat
*/
public static final String LOGIN_TAG = "Login";
/**
* Notifications tag name for Logcat
*/
public static final String NOTIFICATIONS_TAG = "Notifications";
/*
* Table name for courses
*/

View File

@ -35,7 +35,7 @@ import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import es.ugr.swad.swadroid.model.DataBaseHelper;
import es.ugr.swad.swadroid.model.Notification;
import es.ugr.swad.swadroid.modules.Notifications;
import es.ugr.swad.swadroid.ssl.SecureConnection;
/**
@ -118,10 +118,13 @@ public class SWADMain extends ListActivity {
if (resultCode == ListActivity.RESULT_OK) {
//Bundle extras = data.getExtras();
/*switch(requestCode) {
case Global.LOGIN_REQUEST_CODE:
break;
}*/
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));
}
}
}
@ -132,15 +135,19 @@ public class SWADMain extends ListActivity {
Object o = this.getListAdapter().getItem(position);
String keyword = o.toString();
Intent activity;
switch(position)
{
case 0:
Intent notificationsActivity = new Intent(getBaseContext(),
Notification.class);
startActivityForResult(notificationsActivity, Global.NOTIFICATIONS_REQUEST_CODE);
activity = new Intent(getBaseContext(),
Notifications.class);
startActivityForResult(activity, Global.NOTIFICATIONS_REQUEST_CODE);
break;
case 1:
/*activity = new Intent(getBaseContext(),
Tests.class);
startActivityForResult(activity, Global.TESTS_REQUEST_CODE);*/
Toast.makeText(this, keyword + " aún no implementado", Toast.LENGTH_LONG)
.show();
break;

View File

@ -159,14 +159,19 @@ public class DataBaseHelper {
public void insertNotification(Notification n)
{
Entity ent = new Entity(Global.DB_TABLE_NOTIFICATIONS);
String eventTime = String.valueOf(n.getEventTime());
String status = String.valueOf(n.getStatus());
ent.setValue("id", n.getId());
ent.setValue("eventType", n.getEventType());
ent.setValue("eventTime", n.getEventTime());
ent.setValue("eventTime", eventTime);
ent.setValue("userSurname1", n.getUserSurname1());
ent.setValue("userSurname2", n.getUserSurname2());
ent.setValue("userFirstName", n.getUserFirstName());
ent.setValue("location", n.getLocation());
ent.setValue("summary", n.getSummary());
ent.setValue("status", status);
ent.save();
}
@ -208,13 +213,19 @@ public class DataBaseHelper {
{
List<Entity> rows = db.getEntityList(Global.DB_TABLE_NOTIFICATIONS, "id = " + prev.getId());
Entity ent = rows.get(0);
String eventTime = String.valueOf(actual.getEventTime());
String status = String.valueOf(actual.getStatus());
ent.setValue("id", actual.getId());
ent.setValue("eventType", actual.getEventType());
ent.setValue("eventTime", actual.getEventTime());
ent.setValue("eventTime", eventTime);
ent.setValue("userSurname1", actual.getUserSurname1());
ent.setValue("userSurname2", actual.getUserSurname2());
ent.setValue("userFirstName", actual.getUserFirstName());
ent.setValue("location", actual.getSummary());
ent.setValue("location", actual.getLocation());
ent.setValue("summary", actual.getSummary());
ent.setValue("status", status);
ent.save();
}
@ -300,42 +311,38 @@ public class DataBaseHelper {
}
/**
* Gets timestamp of last notification
* @return Timestamp of last notification
* Gets a field of last notification
* @param field A field of last notification
* @return The field of last notification
*/
public int getLastNotificationTimestamp()
public String getFieldOfLastNotification(String field)
{
List<Entity> rows = db.getEntityList(Global.DB_TABLE_NOTIFICATIONS);
int timestamp;
String orderby = "eventTime desc";
List<Entity> rows = db.getEntityList(Global.DB_TABLE_NOTIFICATIONS, null, orderby);
String f = "0";
if(rows.size() > 0)
{
Entity ent = rows.get(rows.size()-1);
timestamp = (Integer) ent.getValue("eventTime");
} else {
timestamp = 0;
f = (String) ent.getValue(field);
}
return timestamp;
return f;
}
/**
* Gets id of last notification
* @return Id of last notification
* Clear old notifications
* @param timestamp Newest timestamp to clear
*/
public int getLastNotificationId()
{
List<Entity> rows = db.getEntityList(Global.DB_TABLE_NOTIFICATIONS);
int id;
public void clearOldNotifications(long timestamp)
{
String where = "eventTime < " + timestamp;
List<Entity> rows = db.getEntityList(Global.DB_TABLE_NOTIFICATIONS, where);
Iterator<Entity> iter = rows.iterator();
if(rows.size() > 0)
{
Entity ent = rows.get(rows.size()-1);
id = (Integer) ent.getValue("id");
} else {
id = 0;
while (iter.hasNext()) {
Entity ent = iter.next();
ent.delete();
}
return id;
}
}
}

View File

@ -34,7 +34,7 @@ public class Notification extends Model {
/**
* Notification timestamp
*/
private int eventTime;
private long eventTime;
/**
* Sender first surname
*/
@ -55,6 +55,10 @@ public class Notification extends Model {
* Notification summary
*/
private String summary;
/**
* Notification status
*/
private int status;
private static PropertyInfo PI_id = new PropertyInfo();
private static PropertyInfo PI_eventType = new PropertyInfo();
private static PropertyInfo PI_eventTime = new PropertyInfo();
@ -63,6 +67,7 @@ public class Notification extends Model {
private static PropertyInfo PI_userFirstName = new PropertyInfo();
private static PropertyInfo PI_location = new PropertyInfo();
private static PropertyInfo PI_summary = new PropertyInfo();
private static PropertyInfo PI_status = new PropertyInfo();
private static PropertyInfo[] PI_PROP_ARRAY =
{
PI_id,
@ -72,7 +77,8 @@ public class Notification extends Model {
PI_userSurname2,
PI_userFirstName,
PI_location,
PI_summary
PI_summary,
PI_status
};
/**
@ -84,10 +90,11 @@ public class Notification extends Model {
* @param userFirstName Sender first name
* @param location Notification location
* @param summary Notification summary
* @param status Notification summary
*/
public Notification(int id, String eventType, int eventTime,
public Notification(int id, String eventType, long eventTime,
String userSurname1, String userSurname2, String userFirstName,
String location, String summary) {
String location, String summary, int status) {
super(id);
this.eventType = eventType;
@ -97,6 +104,7 @@ public class Notification extends Model {
this.userFirstName = userFirstName;
this.location = location;
this.summary = summary;
this.status = status;
}
/**
@ -119,7 +127,7 @@ public class Notification extends Model {
* Gets notification timestamp
* @return Notification timestamp
*/
public int getEventTime() {
public long getEventTime() {
return eventTime;
}
@ -211,6 +219,22 @@ public class Notification extends Model {
this.summary = summary;
}
/**
* Gets notification status
* @return Notification status
*/
public int getStatus() {
return status;
}
/**
* Sets notification status
* @param status Notification status
*/
public void setStatus(int status) {
this.status = status;
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@ -218,11 +242,12 @@ public class Notification extends Model {
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + eventTime;
result = prime * result + (int) (eventTime ^ (eventTime >>> 32));
result = prime * result
+ ((eventType == null) ? 0 : eventType.hashCode());
result = prime * result
+ ((location == null) ? 0 : location.hashCode());
result = prime * result + status;
result = prime * result + ((summary == null) ? 0 : summary.hashCode());
result = prime * result
+ ((userFirstName == null) ? 0 : userFirstName.hashCode());
@ -257,6 +282,8 @@ public class Notification extends Model {
return false;
} else if (!location.equals(other.location))
return false;
if (status != other.status)
return false;
if (summary == null) {
if (other.summary != null)
return false;
@ -278,7 +305,7 @@ public class Notification extends Model {
} else if (!userSurname2.equals(other.userSurname2))
return false;
return true;
}
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
@ -289,7 +316,7 @@ public class Notification extends Model {
+ eventTime + ", userSurname1=" + userSurname1
+ ", userSurname2=" + userSurname2 + ", userFirstName="
+ userFirstName + ", location=" + location + ", summary="
+ summary + ", getId()=" + getId() + "]";
+ summary + ", status=" + status + "]";
}
/* (non-Javadoc)
@ -307,6 +334,7 @@ public class Notification extends Model {
case 5 : object = userFirstName;break;
case 6 : object = location;break;
case 7 : object = summary;break;
case 8 : object = status;break;
}
return object;
@ -316,7 +344,7 @@ public class Notification extends Model {
* @see org.ksoap2.serialization.KvmSerializable#getPropertyCount()
*/
public int getPropertyCount() {
return 8;
return 9;
}
/* (non-Javadoc)
@ -333,7 +361,7 @@ public class Notification extends Model {
propertyInfo.name = "eventType";
break;
case 2:
propertyInfo.type = PropertyInfo.INTEGER_CLASS;
propertyInfo.type = PropertyInfo.LONG_CLASS;
propertyInfo.name = "eventTime";
break;
case 3:
@ -356,6 +384,10 @@ public class Notification extends Model {
propertyInfo.type = PropertyInfo.STRING_CLASS;
propertyInfo.name = "summary";
break;
case 8:
propertyInfo.type = PropertyInfo.INTEGER_CLASS;
propertyInfo.name = "status";
break;
}
}
@ -367,13 +399,13 @@ public class Notification extends Model {
{
case 0 : this.setId((Integer)obj); break;
case 1 : eventType = (String)obj; break;
case 2 : eventTime = (Integer)obj; break;
case 2 : eventTime = (Long)obj; break;
case 3 : userSurname1 = (String)obj; break;
case 4 : userSurname2 = (String)obj; break;
case 5 : userFirstName = (String)obj; break;
case 6 : location = (String)obj; break;
case 7 : summary = (String)obj; break;
case 8 : status = (Integer)obj; break;
}
}
}

View File

@ -30,6 +30,10 @@ import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.Window;
import android.widget.Toast;
import es.ugr.swad.swadroid.Global;
import es.ugr.swad.swadroid.Preferences;
@ -52,10 +56,6 @@ import com.android.dataframework.DataFramework;
* Superclass for encapsulate common behavior of all modules.
* @author Juan Miguel Boyero Corral <juanmi1982@gmail.com>
*/
/**
* @author Juan Miguel Boyero Corral <juanmi1982@gmail.com>
*
*/
public abstract class Module extends Activity {
/**
* SOAP_ACTION param for webservice request.
@ -97,6 +97,10 @@ public abstract class Module extends Activity {
* Database Framework.
*/
private static DataFramework db;
/**
* Connection available flag
*/
protected static boolean isConnected;
/**
* Connects to SWAD and gets user data.
@ -227,6 +231,24 @@ public abstract class Module extends Activity {
public void setResult(Object result) {
this.result = result;
}
/**
* Launch login activity when required
*/
private void runLogin()
{
isConnected = connectionAvailable(this);
if (!isConnected) {
Toast.makeText(this, R.string.errorMsgNoConnection, Toast.LENGTH_LONG).show();
} else {
//If not logged and this is not the Login module, launch login
if(!Global.isLogged() && !(this instanceof Login)) {
Intent loginActivity = new Intent(getBaseContext(),
Login.class);
startActivityForResult(loginActivity, Global.LOGIN_REQUEST_CODE);
}
}
}
/* (non-Javadoc)
* @see android.app.Activity#onCreate()
@ -236,6 +258,10 @@ public abstract class Module extends Activity {
super.onCreate(savedInstanceState);
prefs.getPreferences(getBaseContext());
Window w = getWindow();
w.requestFeature(Window.FEATURE_LEFT_ICON);
w.setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.ic_launcher_swadroid);
//If not connected to database, connect now
if(dbHelper == null) {
try {
@ -246,13 +272,8 @@ public abstract class Module extends Activity {
e.printStackTrace();
}
}
//If not logged and this is not the Login module, launch login
if(!Global.isLogged() && !(this instanceof Login)) {
Intent loginActivity = new Intent(getBaseContext(),
Login.class);
startActivityForResult(loginActivity, Global.LOGIN_REQUEST_CODE);
}
runLogin();
}
/* (non-Javadoc)
@ -374,6 +395,39 @@ public abstract class Module extends Activity {
})
.setIcon(R.drawable.erroricon).show();
}
/**
* Shows Preferences screen
*/
protected void viewPreferences() {
Intent settingsActivity = new Intent(getBaseContext(),
Preferences.class);
startActivity(settingsActivity);
}
/* (non-Javadoc)
* @see android.app.Activity#onCreateOptionsMenu()
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
return true;
}
/* (non-Javadoc)
* @see android.app.Activity#onOptionsItemSelected()
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.preferences_menu:
viewPreferences();
return true;
}
return super.onOptionsItemSelected(item);
}
/* (non-Javadoc)

View File

@ -26,6 +26,7 @@ import org.ksoap2.SoapFault;
import org.ksoap2.serialization.SoapObject;
import org.xmlpull.v1.XmlPullParserException;
import es.ugr.swad.swadroid.Global;
import es.ugr.swad.swadroid.R;
import es.ugr.swad.swadroid.model.User;
import es.ugr.swad.swadroid.model.Notification;
@ -37,12 +38,18 @@ import android.util.Log;
*
*/
public class Notifications extends Module {
/**
* Time period to store notifications
*/
private static final long TIMESTAMP_LIMIT = 2629743; //A month
/* (non-Javadoc)
* @see es.ugr.swad.swadroid.modules.Module#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.notifications);
setMETHOD_NAME("getNotifications");
}
@ -53,41 +60,46 @@ public class Notifications extends Module {
protected void requestService() throws NoSuchAlgorithmException,
IOException, XmlPullParserException, SoapFault,
IllegalAccessException, InstantiationException {
//Calculates next timestamp to be requested
int timestamp = dbHelper.getLastNotificationTimestamp() + 1;
Long timestamp = new Long(dbHelper.getFieldOfLastNotification("eventTime"));
timestamp++;
//Clear old notifications to control database size
dbHelper.clearOldNotifications(timestamp - TIMESTAMP_LIMIT);
//Creates webservice request, adds required params and sends request to webservice
createRequest();
addParam("wsKey", User.getWsKey());
addParam("beginTime", timestamp);
sendRequest(Notification.class, false);
if (result != null) {
createRequest();
addParam("wsKey", User.getWsKey());
addParam("beginTime", timestamp);
sendRequest(Notification.class, false);
if (result != null) {
//Stores notifications data returned by webservice response
Vector res = (Vector) result;
SoapObject soap = (SoapObject) res.get(1);
int csSize = soap.getPropertyCount();
int lastId = dbHelper.getLastNotificationId();
for (int i = 0; i < csSize; i++) {
SoapObject pii = (SoapObject)soap.getProperty(i);
String eventType = pii.getProperty(1).toString();
int eventTime = Integer.parseInt(pii.getProperty(0).toString());
String userSurname1 = pii.getProperty(1).toString();
String userSurname2 = pii.getProperty(1).toString();
String userFirstName = pii.getProperty(1).toString();
String location = pii.getProperty(1).toString();
String summary = pii.getProperty(1).toString();
Notification n = new Notification(lastId+i, eventType, eventTime, userSurname1, userSurname2, userFirstName, location, summary);
dbHelper.insertNotification(n);
Log.d("Notifications", n.toString());
}
Vector res = (Vector) result;
SoapObject soap = (SoapObject) res.get(1);
int csSize = soap.getPropertyCount();
Integer lastId = new Integer(dbHelper.getFieldOfLastNotification("id"));
for (int i = 0; i < csSize; i++) {
SoapObject pii = (SoapObject)soap.getProperty(i);
String eventType = pii.getProperty("eventType").toString();
Long eventTime = new Long(pii.getProperty("eventTime").toString());
String userSurname1 = pii.getProperty("userSurname1").toString();
String userSurname2 = pii.getProperty("userSurname2").toString();
String userFirstName = pii.getProperty("userFirstname").toString();
String location = pii.getProperty("location").toString();
String summary = pii.getProperty("summary").toString();
Integer status = new Integer(pii.getProperty("status").toString());
Notification n = new Notification(lastId+i, eventType, eventTime, userSurname1, userSurname2, userFirstName, location, summary, status);
dbHelper.insertNotification(n);
Log.d(Global.NOTIFICATIONS_TAG, n.toString());
}
//Request finalized without errors
setResult(RESULT_OK);
}
//setResult(RESULT_OK);
}
finish();
//finish();
}
/* (non-Javadoc)