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