X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/db0f0001f905e4140934225ea55f9b24a3041804..dc8c32fb3f7033d6fdfa7e1b64eaa77884da678a:/src/eu/alefzero/owncloud/db/DbHandler.java diff --git a/src/eu/alefzero/owncloud/db/DbHandler.java b/src/eu/alefzero/owncloud/db/DbHandler.java new file mode 100644 index 00000000..d2e0b118 --- /dev/null +++ b/src/eu/alefzero/owncloud/db/DbHandler.java @@ -0,0 +1,103 @@ +/* ownCloud Android client application + * Copyright (C) 2011 Bartek Przybylski + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +package eu.alefzero.owncloud.db; + +import java.util.Vector; + +import eu.alefzero.owncloud.OwnCloudSession; + +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import android.util.Log; + +/** + * Custom database helper for ownCloud + * @author Bartek Przybylski + * + */ +public class DbHandler { + private SQLiteDatabase mDB; + private OpenerHepler mHelper; + private final String mDatabaseName = "ownCloud"; + private final String TABLE_SESSIONS = "sessions"; + private final int mDatabaseVersion = 1; + + public DbHandler(Context context) { + mHelper = new OpenerHepler(context); + mDB = mHelper.getWritableDatabase(); + } + + public Vector getSessionList() { + Cursor c = mDB.query(TABLE_SESSIONS, null, null, null, null, null, null); + Vector v = new Vector(); + if (!c.moveToFirst()) { + return v; + } + while (!c.isAfterLast()) { + v.add(new OwnCloudSession(c.getString(c.getColumnIndex("sessionName")), + c.getString(c.getColumnIndex("sessionUrl")), + c.getInt(c.getColumnIndex("_id")))); + c.moveToNext(); + } + c.close(); + return v; + } + + public void addSession(String sessionName, String uri) { + ContentValues cv = new ContentValues(); + cv.put("sessionName", sessionName); + cv.put("sessionUrl", uri); + mDB.insert(TABLE_SESSIONS, null, cv); + } + + public void removeSessionWithId(int sessionId) { + mDB.delete(TABLE_SESSIONS, "_id = ?", new String[] {String.valueOf(sessionId)}); + } + + public void changeSessionFields(int id, String hostname, String uri) { + ContentValues cv = new ContentValues(); + cv.put("sessionName", hostname); + cv.put("sessionUrl", uri); + mDB.update(TABLE_SESSIONS, cv, "_id = ?", new String[] {String.valueOf(id)}); + } + + public void close() { + mDB.close(); + } + + private class OpenerHepler extends SQLiteOpenHelper { + public OpenerHepler(Context context) { + super(context, mDatabaseName, null, mDatabaseVersion); + } + + @Override + public void onCreate(SQLiteDatabase db) { + db.execSQL("CREATE TABLE " + TABLE_SESSIONS + " (" + + " _id INTEGER PRIMARY KEY, " + + " sessionName TEXT, " + + " sessionUrl TEXT);"); + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + } + } +}