public ArrayList<Map<String,Object>> loadConversationList() {
ArrayList<Map<String,Object>> list = new ArrayList();
SQLiteDatabase db = getReadableDatabase();
Log.d(TAG, "Getting list of last messages");
String sql = "SELECT contact_id, max(sent) AS td FROM " + MESSAGE_TABLE + " GROUP BY contact_id ORDER BY td ASC";
Cursor res = db.rawQuery(sql, null);
Log.d(TAG, "Made call");
res.moveToFirst();
Log.d(TAG, "Set cursor");
while (!res.isAfterLast()) {
int contact_id = res.getInt(res.getColumnIndex("contact_id"));
String sent = res.getString(res.getColumnIndex("td"));
Log.d(TAG, "Getting info for "+contact_id+":"+sent);
Map<String, Object> message = getMessage(contact_id, sent);
list.add(message);
res.moveToNext();
}
Log.d(TAG, list.toString());
return list;
}
private Map<String,Object> getMessage(int contact_id, String sent) {
Map<String,Object> message = new HashMap();
SQLiteDatabase db = getReadableDatabase();
String sql = "SELECT * FROM " + MESSAGE_TABLE + " WHERE contact_id=" + contact_id + " AND sent='" + sent + "'";
Cursor res = db.rawQuery(sql, null);
res.moveToFirst();
while (!res.isAfterLast()) {
message.put("mid", res.getString(res.getColumnIndex("id")));
message.put("incoming", res.getString(res.getColumnIndex("incoming")));
message.put("contact_id", res.getString(res.getColumnIndex("contact_id")));
message.put("contact_name", res.getString(res.getColumnIndex("contact_name")));
message.put("message", res.getString(res.getColumnIndex("message")));
message.put("sent", res.getString(res.getColumnIndex("sent")));
res.moveToNext();
}
return message;
}