package com.fatima.life;
import android.app.SearchManager;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
public class DbAdapter {
private static final String TYPE = "type";
private static final String TableHistory = "histories";
private static final String SQLCreateTable = "create table histories (_id integer primary key autoincrement,"
+ SearchManager.SUGGEST_COLUMN_TEXT_1 + " text, type integer, UNIQUE(" + SearchManager.SUGGEST_COLUMN_TEXT_1 +"));";
public final static int TYPE_SEARCH = 0;
public final static int TYPE_TITLE = 1;
public final static int TYPE_ARTIST = 2;
public final static int TYPE_ALBUM = 3;
private final static int DB_VERSION = 4;
private static class SearchDBHelper extends SQLiteOpenHelper {
public SearchDBHelper(Context context, String name) {
super(context, name, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
createTable(db);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
dropTable(db);
createTable(db);
}
private void createTable(SQLiteDatabase db) {
db.execSQL(SQLCreateTable);
}
private void dropTable(SQLiteDatabase db) {
try {
db.execSQL("DROP TABLE IF EXISTS " + TableHistory);
} catch (SQLException ex) {
}
}
}
SearchDBHelper mOpenHelper;
public DbAdapter(Context ctx) {
mOpenHelper = new SearchDBHelper(ctx, "db");
};
public void insertHistory(String key, int type) {
try {
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(SearchManager.SUGGEST_COLUMN_TEXT_1, key);
cv.put(TYPE, type);
db.insert(TableHistory, null, cv);
} catch (SQLiteException e) {
e.printStackTrace();
}
}
private static final String[] projection_key = new String[] {"_id", SearchManager.SUGGEST_COLUMN_TEXT_1,
SearchManager.SUGGEST_COLUMN_TEXT_1 + " AS \"" + SearchManager.SUGGEST_COLUMN_INTENT_DATA + "\""
};
public Cursor getHistoryByType(String key, int type){
String selection = "type = " + type + " and " + SearchManager.SUGGEST_COLUMN_TEXT_1 + " like \'" + key +"%\'";
try {
SQLiteDatabase db = mOpenHelper.getReadableDatabase();
return db.query(TableHistory, projection_key, selection, null, null, null, null);
} catch (Exception e) {
return null;
}
}
public Cursor getHistoryByType(int type){
String selection = "type = " + type;
try {
SQLiteDatabase db = mOpenHelper.getReadableDatabase();
return db.query(TableHistory, projection_key, selection, null, null, null, null);
} catch(Exception e) {
return null;
}
}
}