package in.vesely.eclub.yodaqa.db; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.provider.BaseColumns; import java.util.Collection; import java.util.Date; import java.util.LinkedList; import java.util.List; /** * Created by vesely on 6/17/15. */ public class SearchItem { public static abstract class SearchEntry implements BaseColumns { public static final String TABLE_NAME = "entry"; public static final String COLUMN_NAME_MDATE = "mdate"; public static final String COLUMN_NAME_TEXT = "textt"; } private static final String COMMA_SEP = ","; public static final String SQL_CREATE_SEARCH_TABLE = "CREATE TABLE " + SearchEntry.TABLE_NAME + " (" + SearchEntry._ID + " INTEGER PRIMARY KEY," + SearchEntry.COLUMN_NAME_TEXT + " TEXT UNIQUE" + COMMA_SEP + SearchEntry.COLUMN_NAME_MDATE + " INTEGER" + " )"; public static final String SQL_DELETE_SEARCH_TABLE = "DROP TABLE IF EXISTS " + SearchEntry.TABLE_NAME; public static Collection<String> select(SQLiteDatabase db) { Cursor cursor = db.query(SearchEntry.TABLE_NAME, new String[]{SearchEntry.COLUMN_NAME_TEXT}, null, null, null, null, SearchEntry.COLUMN_NAME_MDATE + " DESC"); List<String> items = new LinkedList<>(); while (cursor.moveToNext()) { items.add(cursor.getString(cursor.getColumnIndex(SearchEntry.COLUMN_NAME_TEXT))); } cursor.close(); return items; } public static void insert(String text, SQLiteDatabase db) { ContentValues cv = new ContentValues(); cv.put(SearchEntry.COLUMN_NAME_MDATE, new Date().getTime()); cv.put(SearchEntry.COLUMN_NAME_TEXT, text); db.insertWithOnConflict(SearchEntry.TABLE_NAME, null, cv, SQLiteDatabase.CONFLICT_REPLACE); } }