package org.iilab.pb.data; import org.iilab.pb.common.AppConstants; import org.iilab.pb.model.PageTimer; import android.content.ContentValues; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteStatement; /** * Created by aoe on 1/16/14. */ public class PageTimerDbManager { private static final String TAG = PageTimerDbManager.class.getSimpleName(); private static final String TABLE_PAGE_TIMER = "page_timer_table"; private static final String PAGE_ID = "page_id"; private static final String PAGE_LANGUAGE = "page_language"; private static final String TIMER_INFO = "timer_info"; private static final String TIMER_INACTIVE = "timer_inactive"; private static final String TIMER_FAIL = "timer_fail"; private static final String CREATE_TABLE_PAGE_TIMER = "create table " + TABLE_PAGE_TIMER + " ( " + AppConstants.TABLE_PRIMARY_KEY + " integer primary key autoincrement, " + PAGE_ID + " text, " + PAGE_LANGUAGE + " text, " + TIMER_INFO + " text, " + TIMER_INACTIVE + " text, " + TIMER_FAIL + " text);"; private static final String INSERT_SQL = "insert into " + TABLE_PAGE_TIMER + " (" + PAGE_ID + ", " + PAGE_LANGUAGE + ", " + TIMER_INFO + ", " + TIMER_INACTIVE + ", " + TIMER_FAIL + ") values (?,?,?,?,?)"; public static void createTable(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_PAGE_TIMER); } public static void dropTable(SQLiteDatabase db) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_PAGE_TIMER); } public static long insert(SQLiteDatabase db, PageTimer timer, String pageId, String lang) throws SQLException { SQLiteStatement insertStatement = db.compileStatement(INSERT_SQL); if(pageId != null) insertStatement.bindString(1, pageId); if(lang != null) insertStatement.bindString(2, lang); if(timer.getInfo() != null) insertStatement.bindString(3, timer.getInfo()); if(timer.getInactive() != null) insertStatement.bindString(4, timer.getInactive()); if(timer.getFail() != null) insertStatement.bindString(5, timer.getFail()); return insertStatement.executeInsert(); // ContentValues cv = new ContentValues(); // // cv.put(PAGE_ID, pageId); // cv.put(PAGE_LANGUAGE, lang); // cv.put(TIMER_INFO, timer.getInfo()); // cv.put(TIMER_INACTIVE, timer.getInactive()); // cv.put(TIMER_FAIL, timer.getFail()); // // return db.insert(TABLE_PAGE_TIMER, null, cv); } public static PageTimer retrieve(SQLiteDatabase db, String pageId, String lang) throws SQLException { PageTimer timer = null; Cursor c = db.query(TABLE_PAGE_TIMER, null, PAGE_ID + "=? AND " + PAGE_LANGUAGE + "=?", new String[]{pageId, lang}, null, null, null); if (c != null && c.getCount() > 0) { c.moveToFirst(); String info = c.getString(c.getColumnIndex(TIMER_INFO)); String inactive = c.getString(c.getColumnIndex(TIMER_INACTIVE)); String fail = c.getString(c.getColumnIndex(TIMER_FAIL)); timer = new PageTimer(info, inactive, fail); } c.close(); return timer; } public static long update(SQLiteDatabase db, PageTimer timer, String pageId, String lang) throws SQLException { ContentValues cv = new ContentValues(); cv.put(TIMER_INFO, timer.getInfo()); cv.put(TIMER_INACTIVE, timer.getInactive()); cv.put(TIMER_FAIL, timer.getFail()); return db.update(TABLE_PAGE_TIMER, cv, PAGE_ID + "=? AND " + PAGE_LANGUAGE + "=?", new String[]{pageId, lang}); } public static boolean isExist(SQLiteDatabase db, String pageId, String lang) throws SQLException { boolean itemExist = false; Cursor c = db.query(TABLE_PAGE_TIMER, null, PAGE_ID + "=? AND " + PAGE_LANGUAGE + "=?", new String[]{pageId, lang}, null, null, null); if ((c != null) && (c.getCount() > 0)) { itemExist = true; } c.close(); return itemExist; } public static int delete(SQLiteDatabase db, String pageId, String lang){ return db.delete(TABLE_PAGE_TIMER, PAGE_ID + "=? AND " + PAGE_LANGUAGE + "=?", new String[]{pageId, lang}); } }