DatabaseBackend.java

 1package de.gultsch.chat.persistance;
 2
 3import java.util.ArrayList;
 4import java.util.List;
 5
 6import de.gultsch.chat.entities.Conversation;
 7import android.content.Context;
 8import android.database.Cursor;
 9import android.database.sqlite.SQLiteDatabase;
10import android.database.sqlite.SQLiteOpenHelper;
11import android.util.Log;
12
13public class DatabaseBackend extends SQLiteOpenHelper {
14	
15	private static DatabaseBackend instance = null;
16	
17	private static final String DATABASE_NAME = "history";
18	private static final int DATABASE_VERSION = 1;
19
20	public DatabaseBackend(Context context) {
21		super(context, DATABASE_NAME, null, DATABASE_VERSION);
22	}
23
24	@Override
25	public void onCreate(SQLiteDatabase db) {
26		db.execSQL("create table conversations (uuid TEXT, name TEXT, profilePhotoUri TEXT, accountUuid TEXT, contactJid TEXT)");
27	}
28
29	@Override
30	public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
31		// TODO Auto-generated method stub
32
33	}
34	
35	public static synchronized DatabaseBackend getInstance(Context context) {
36		if (instance == null) {
37			instance = new DatabaseBackend(context.getApplicationContext());
38		}
39		return instance;
40	}
41	
42	public void addConversation(Conversation conversation) {
43		SQLiteDatabase db = this.getWritableDatabase();
44		db.insert("conversations", null, conversation.getContentValues());
45	}
46	
47	
48	public int getConversationCount() {
49		SQLiteDatabase db = this.getReadableDatabase();
50		Cursor cursor = db.rawQuery("select count(uuid) as count from conversations",null);
51		cursor.moveToFirst();
52		return cursor.getInt(0);
53	}
54
55	public List<Conversation> getConversations(int status) {
56		List<Conversation> list = new ArrayList<Conversation>();
57		SQLiteDatabase db = this.getReadableDatabase();
58		String[] selectionArgs = {""+status};
59		Cursor cursor = db.rawQuery("select * from conversations where status = ?", selectionArgs);
60		Log.d("gultsch","getConversations has found "+cursor.getCount()+" rows");
61		while(cursor.moveToNext()) {
62			Log.d("gultsch","converting row #"+cursor.getPosition());
63			list.add(Conversation.fromCursor(cursor));
64		}
65		return list;
66	}
67
68}