package im.actor.sdk.controllers.pickers.file.util;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
/**
* Created by kiolt_000 on 14/09/2014.
*/
public class HistoryDatabase extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "droidkit_history";
private static final String SELECTED_HISTORY_TABLE = "selected_history";
private static final String[] SELECTED_HISTORY_COLUMNS = {
"path",
"last_selected"
};
private static final String SELECTED_HISTORY_DATABASE_CREATE =
"create table " +
SELECTED_HISTORY_TABLE +
" ( " +
"path TEXT PRIMARY KEY," +
"last_selected INTEGER NOT NULL" +
" ) ";
public HistoryDatabase(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(SELECTED_HISTORY_DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int currentVersion, int newVersion) {
}
public static ArrayList<String> getHistory(Context context) {
ArrayList<String> history = new ArrayList<String>();
SQLiteDatabase database = new HistoryDatabase(context).getWritableDatabase();
Cursor cursor = database.query(SELECTED_HISTORY_TABLE, SELECTED_HISTORY_COLUMNS, null, null, null, null, "last_selected DESC");
int pathColumnIndex = cursor.getColumnIndex("path");
ArrayList<String> removeIndexes = new ArrayList<String>();
if (cursor.moveToFirst()) {
int count = 0;
do {
if (count < 20) {
count++;
history.add(cursor.getString(pathColumnIndex));
} else {
removeIndexes.add(cursor.getString(pathColumnIndex));
}
} while (cursor.moveToNext());
}
cursor.close();
String[] removeIndexesArray = new String[removeIndexes.size()];
database.delete(SELECTED_HISTORY_TABLE, "path = ?", removeIndexes.toArray(removeIndexesArray));
database.close();
return history;
}
public static void save(Context context, ArrayList<String> pathes) {
SQLiteDatabase database = new HistoryDatabase(context).getWritableDatabase();
for (String path : pathes) {
ContentValues values = new ContentValues();
values.put("path", path);
values.put("last_selected", TimeUtils.unixtime());
database.delete(SELECTED_HISTORY_TABLE, "path = \"" + path + "\"", null);
database.insert(SELECTED_HISTORY_TABLE, null, values);
}
database.close();
}
}