summaryrefslogtreecommitdiff
path: root/src/org/fox/ttrss/util/DatabaseHelper.java
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@madoka.volgo-balt.ru>2012-06-19 14:18:00 +0400
committerAndrew Dolgov <fox@madoka.volgo-balt.ru>2012-06-19 14:18:00 +0400
commit08397a47af403d64a012a7961e7444254ccaa9a2 (patch)
treeac3f0a2ad3a391fd60f2da3a69211d5f27c3a79b /src/org/fox/ttrss/util/DatabaseHelper.java
parent01151df966ed0006246790645b0f3e06c2ca94b8 (diff)
categorize source files
Diffstat (limited to 'src/org/fox/ttrss/util/DatabaseHelper.java')
-rw-r--r--src/org/fox/ttrss/util/DatabaseHelper.java67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/org/fox/ttrss/util/DatabaseHelper.java b/src/org/fox/ttrss/util/DatabaseHelper.java
new file mode 100644
index 00000000..b8560589
--- /dev/null
+++ b/src/org/fox/ttrss/util/DatabaseHelper.java
@@ -0,0 +1,67 @@
+package org.fox.ttrss.util;
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+import android.provider.BaseColumns;
+
+
+public class DatabaseHelper extends SQLiteOpenHelper {
+
+ @SuppressWarnings("unused")
+ private final String TAG = this.getClass().getSimpleName();
+ public static final String DATABASE_NAME = "OfflineStorage.db";
+ public static final int DATABASE_VERSION = 2;
+
+ public DatabaseHelper(Context context) {
+ super(context, DATABASE_NAME, null, DATABASE_VERSION);
+ }
+
+ @Override
+ public void onCreate(SQLiteDatabase db) {
+ db.execSQL("DROP TABLE IF EXISTS feeds;");
+ db.execSQL("DROP TABLE IF EXISTS articles;");
+ db.execSQL("DROP VIEW IF EXISTS feeds_unread;");
+ db.execSQL("DROP TRIGGER IF EXISTS articles_set_modified;");
+
+ db.execSQL("CREATE TABLE IF NOT EXISTS feeds (" +
+ BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
+ "feed_url TEXT, " +
+ "title TEXT, " +
+ "has_icon BOOLEAN, " +
+ "cat_id INTEGER" +
+ ");");
+
+ db.execSQL("CREATE TABLE IF NOT EXISTS articles (" +
+ BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
+ "unread BOOLEAN, " +
+ "marked BOOLEAN, " +
+ "published BOOLEAN, " +
+ "updated INTEGER, " +
+ "is_updated BOOLEAN, " +
+ "title TEXT, " +
+ "link TEXT, " +
+ "feed_id INTEGER, " +
+ "tags TEXT, " +
+ "content TEXT, " +
+ "selected BOOLEAN, " +
+ "modified BOOLEAN" +
+ ");");
+
+ db.execSQL("CREATE TRIGGER articles_set_modified UPDATE OF marked, published, unread ON articles " +
+ "BEGIN " +
+ " UPDATE articles SET modified = 1 WHERE " + BaseColumns._ID + " = " + "OLD." + BaseColumns._ID + "; " +
+ "END;");
+
+ db.execSQL("CREATE VIEW feeds_unread AS SELECT feeds."+BaseColumns._ID+" AS "+BaseColumns._ID+", " +
+ "feeds.title AS title, " +
+ "SUM(articles.unread) AS unread FROM feeds " +
+ "LEFT JOIN articles ON (articles.feed_id = feeds."+BaseColumns._ID+") " +
+ "GROUP BY feeds."+BaseColumns._ID+", feeds.title;");
+ }
+
+ @Override
+ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
+ onCreate(db);
+ }
+
+}