From df9dcb1060d44a719e2892446b62cde884a880cf Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 24 Jan 2014 23:58:51 +0100 Subject: basic persistance layer. refactor some parts of the conversation activity --- .../gultsch/chat/persistance/DatabaseBackend.java | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/de/gultsch/chat/persistance/DatabaseBackend.java (limited to 'src/de/gultsch/chat/persistance') 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 getConversations(int status) { + List list = new ArrayList(); + 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; + } + +} -- cgit v1.2.3