diff options
author | Daniel Gultsch <daniel.gultsch@rwth-aachen.de> | 2014-01-24 23:58:51 +0100 |
---|---|---|
committer | Daniel Gultsch <daniel.gultsch@rwth-aachen.de> | 2014-01-24 23:58:51 +0100 |
commit | df9dcb1060d44a719e2892446b62cde884a880cf (patch) | |
tree | ed3bf01c8f249162018b33460f81b52ac2f618fb /src/de/gultsch/chat/persistance/DatabaseBackend.java | |
parent | b273390e26e1d28f6df01fb421d8554cb7588a58 (diff) |
basic persistance layer. refactor some parts of the conversation activity
Diffstat (limited to '')
-rw-r--r-- | src/de/gultsch/chat/persistance/DatabaseBackend.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/de/gultsch/chat/persistance/DatabaseBackend.java b/src/de/gultsch/chat/persistance/DatabaseBackend.java new file mode 100644 index 00000000..5ce7f7e0 --- /dev/null +++ b/src/de/gultsch/chat/persistance/DatabaseBackend.java @@ -0,0 +1,68 @@ +package de.gultsch.chat.persistance; + +import java.util.ArrayList; +import java.util.List; + +import de.gultsch.chat.entities.Conversation; +import android.content.Context; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import android.util.Log; + +public class DatabaseBackend extends SQLiteOpenHelper { + + private static DatabaseBackend instance = null; + + private static final String DATABASE_NAME = "history"; + private static final int DATABASE_VERSION = 1; + + public DatabaseBackend(Context context) { + super(context, DATABASE_NAME, null, DATABASE_VERSION); + } + + @Override + public void onCreate(SQLiteDatabase db) { + db.execSQL("create table conversations (uuid TEXT, name TEXT, profilePhotoUri TEXT, accountUuid TEXT, contactJid TEXT)"); + } + + @Override + public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) { + // TODO Auto-generated method stub + + } + + public static synchronized DatabaseBackend getInstance(Context context) { + if (instance == null) { + instance = new DatabaseBackend(context.getApplicationContext()); + } + return instance; + } + + public void addConversation(Conversation conversation) { + SQLiteDatabase db = this.getWritableDatabase(); + db.insert("conversations", null, conversation.getContentValues()); + } + + + public int getConversationCount() { + SQLiteDatabase db = this.getReadableDatabase(); + Cursor cursor = db.rawQuery("select count(uuid) as count from conversations",null); + cursor.moveToFirst(); + return cursor.getInt(0); + } + + public List<Conversation> getConversations(int status) { + List<Conversation> list = new ArrayList<Conversation>(); + SQLiteDatabase db = this.getReadableDatabase(); + String[] selectionArgs = {""+status}; + Cursor cursor = db.rawQuery("select * from conversations where status = ?", selectionArgs); + Log.d("gultsch","getConversations has found "+cursor.getCount()+" rows"); + while(cursor.moveToNext()) { + Log.d("gultsch","converting row #"+cursor.getPosition()); + list.add(Conversation.fromCursor(cursor)); + } + return list; + } + +} |