X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/a4ba6170ea7696e085b07adfef73eeb8b77cb8e2..901b6ac61e4a84d281e86b4989aa099801b28de7:/src/com/owncloud/android/db/DbHandler.java?ds=sidebyside
diff --git a/src/com/owncloud/android/db/DbHandler.java b/src/com/owncloud/android/db/DbHandler.java
index 61d56557..89864fea 100644
--- a/src/com/owncloud/android/db/DbHandler.java
+++ b/src/com/owncloud/android/db/DbHandler.java
@@ -1,87 +1,120 @@
-/* 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 com.owncloud.android.db;
-
-import java.util.Vector;
-
-import com.owncloud.android.OwnCloudSession;
-
-
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteOpenHelper;
-
-/**
- * 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;
-
- private final String TABLE_INSTANT_UPLOAD = "instant_upload";
-
- public DbHandler(Context context) {
- mHelper = new OpenerHepler(context);
- mDB = mHelper.getWritableDatabase();
- }
-
- public void close() {
- mDB.close();
- }
-
- public boolean putFileForLater(String filepath, String account) {
- ContentValues cv = new ContentValues();
- cv.put("path", filepath);
- cv.put("account", account);
- return mDB.insert(TABLE_INSTANT_UPLOAD, null, cv) != -1;
- }
-
- public Cursor getAwaitingFiles() {
- return mDB.query(TABLE_INSTANT_UPLOAD, null, null, null, null, null, null);
- }
-
- public void clearFiles() {
- mDB.delete(TABLE_INSTANT_UPLOAD, null, null);
- }
-
- 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_INSTANT_UPLOAD + " ("
- + " _id INTEGET PRIMARY KEY, "
- + " path TEXT,"
- + " account TEXT);");
- }
-
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- }
- }
-}
+/* ownCloud Android client application
+ * Copyright (C) 2011-2012 Bartek Przybylski
+ * Copyright (C) 2012-2013 ownCloud Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ *
+ * 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 com.owncloud.android.db;
+
+import com.owncloud.android.MainApp;
+import com.owncloud.android.utils.Log_OC;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+
+/**
+ * Custom database helper for ownCloud
+ *
+ * @author Bartek Przybylski
+ *
+ */
+public class DbHandler {
+ private SQLiteDatabase mDB;
+ private OpenerHelper mHelper;
+ private final String mDatabaseName;
+ private final int mDatabaseVersion = 3;
+
+ private final String TABLE_INSTANT_UPLOAD = "instant_upload";
+
+ public static final int UPLOAD_STATUS_UPLOAD_LATER = 0;
+ public static final int UPLOAD_STATUS_UPLOAD_FAILED = 1;
+
+ public DbHandler(Context context) {
+ mDatabaseName = MainApp.getDBName();
+ mHelper = new OpenerHelper(context);
+ mDB = mHelper.getWritableDatabase();
+ }
+
+ public void close() {
+ mDB.close();
+ }
+
+ public boolean putFileForLater(String filepath, String account, String message) {
+ ContentValues cv = new ContentValues();
+ cv.put("path", filepath);
+ cv.put("account", account);
+ cv.put("attempt", UPLOAD_STATUS_UPLOAD_LATER);
+ cv.put("message", message);
+ long result = mDB.insert(TABLE_INSTANT_UPLOAD, null, cv);
+ Log_OC.d(TABLE_INSTANT_UPLOAD, "putFileForLater returns with: " + result + " for file: " + filepath);
+ return result != -1;
+ }
+
+ public int updateFileState(String filepath, Integer status, String message) {
+ ContentValues cv = new ContentValues();
+ cv.put("attempt", status);
+ cv.put("message", message);
+ int result = mDB.update(TABLE_INSTANT_UPLOAD, cv, "path=?", new String[] { filepath });
+ Log_OC.d(TABLE_INSTANT_UPLOAD, "updateFileState returns with: " + result + " for file: " + filepath);
+ return result;
+ }
+
+ public Cursor getAwaitingFiles() {
+ return mDB.query(TABLE_INSTANT_UPLOAD, null, "attempt=" + UPLOAD_STATUS_UPLOAD_LATER, null, null, null, null);
+ }
+
+ public Cursor getFailedFiles() {
+ return mDB.query(TABLE_INSTANT_UPLOAD, null, "attempt>" + UPLOAD_STATUS_UPLOAD_LATER, null, null, null, null);
+ }
+
+ public void clearFiles() {
+ mDB.delete(TABLE_INSTANT_UPLOAD, null, null);
+ }
+
+ /**
+ *
+ * @param localPath
+ * @return true when one or more pending files was removed
+ */
+ public boolean removeIUPendingFile(String localPath) {
+ long result = mDB.delete(TABLE_INSTANT_UPLOAD, "path = ?", new String[] { localPath });
+ Log_OC.d(TABLE_INSTANT_UPLOAD, "delete returns with: " + result + " for file: " + localPath);
+ return result != 0;
+
+ }
+
+ private class OpenerHelper extends SQLiteOpenHelper {
+ public OpenerHelper(Context context) {
+ super(context, mDatabaseName, null, mDatabaseVersion);
+ }
+
+ @Override
+ public void onCreate(SQLiteDatabase db) {
+ db.execSQL("CREATE TABLE " + TABLE_INSTANT_UPLOAD + " (" + " _id INTEGER PRIMARY KEY, " + " path TEXT,"
+ + " account TEXT,attempt INTEGER,message TEXT);");
+ }
+
+ @Override
+ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
+ if (oldVersion < 2) {
+ db.execSQL("ALTER TABLE " + TABLE_INSTANT_UPLOAD + " ADD COLUMN attempt INTEGER;");
+ }
+ db.execSQL("ALTER TABLE " + TABLE_INSTANT_UPLOAD + " ADD COLUMN message TEXT;");
+
+ }
+ }
+}