Refactoring: Added comments to every class, as well as a copyright
[pub/Android/ownCloud.git] / 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 (file)
index 0000000..d2e0b11
--- /dev/null
@@ -0,0 +1,103 @@
+/* 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