package com.gettingmobile.google.reader.db;
import android.database.sqlite.SQLiteDatabase;
import com.gettingmobile.google.reader.ItemState;
import com.gettingmobile.google.reader.Tag;
import java.util.Map;
public class TagTable extends SortedElementTable {
public static final String TABLE_NAME = "tag";
public static final String IS_USER_LABEL = "isUserLabel";
public static final String IS_FEED_FOLDER = "isFeedFolder";
public static final String SORT_ORDER = "sortOrder";
public TagTable() {
super(TABLE_NAME);
}
@Override
protected void defineColumns(Map<String, String> columns) {
super.defineColumns(columns);
columns.put(IS_USER_LABEL, "INTEGER");
columns.put(IS_FEED_FOLDER, "INTEGER");
columns.put(SORT_ORDER, "INTEGER");
}
@Override
protected void postCommands(SQLiteDatabase db) {
super.postCommands(db);
db.execSQL("CREATE INDEX isUserLabelIndex ON " + TABLE_NAME + " (isUserLabel)");
db.execSQL("CREATE INDEX isFeedFolderIndex ON " + TABLE_NAME + " (isFeedFolder)");
}
@Override
public void init(SQLiteDatabase db) {
super.init(db);
final TagDatabaseAdapter adapter = new TagDatabaseAdapter();
adapter.write(db, new Tag(ItemState.STARRED.getId()));
}
@Override
public void upgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion <= 4) {
// we've renamed the table in version 5
db.execSQL("DROP TABLE IF EXISTS label");
create(db);
}
if (oldVersion <= 27) {
final String deprecatedTags = "('user/-/state/com.google/like', 'user/-/state/com.google/broadcast')";
db.execSQL("DELETE FROM itemTag WHERE tagKey IN (SELECT _id FROM tag WHERE id IN " + deprecatedTags + ")");
db.execSQL("DELETE FROM tag WHERE id IN " + deprecatedTags);
}
super.upgrade(db, oldVersion, newVersion);
}
}