package org.qii.weiciyuan.support.database;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import org.qii.weiciyuan.bean.DMUserBean;
import org.qii.weiciyuan.bean.DMUserListBean;
import org.qii.weiciyuan.support.database.table.DMTable;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
/**
* User: qii
* Date: 12-12-3
*/
public class DMDBTask {
private DMDBTask() {
}
private static SQLiteDatabase getWsd() {
DatabaseHelper databaseHelper = DatabaseHelper.getInstance();
return databaseHelper.getWritableDatabase();
}
private static SQLiteDatabase getRsd() {
DatabaseHelper databaseHelper = DatabaseHelper.getInstance();
return databaseHelper.getReadableDatabase();
}
public static void add(DMUserListBean list, String accountId) {
if (list == null || list.getSize() == 0) {
return;
}
clear(accountId);
Gson gson = new Gson();
ContentValues cv = new ContentValues();
cv.put(DMTable.MBLOGID, list.getItem(0).getId());
cv.put(DMTable.ACCOUNTID, accountId);
String json = gson.toJson(list);
cv.put(DMTable.JSONDATA, json);
getWsd().insert(DMTable.TABLE_NAME,
DMTable.ID, cv);
}
public static void asyncReplace(final DMUserListBean list, final String accountId) {
new Thread(new Runnable() {
@Override
public void run() {
clear(accountId);
add(list, accountId);
}
}).start();
}
public static void clear(String accountId) {
String sql = "delete from " + DMTable.TABLE_NAME + " where " + DMTable.ACCOUNTID + " in "
+ "(" + accountId + ")";
getWsd().execSQL(sql);
}
public static DMUserListBean get(String accountId) {
Gson gson = new Gson();
DMUserListBean result = new DMUserListBean();
String sql = "select * from " + DMTable.TABLE_NAME + " where " + DMTable.ACCOUNTID + " = "
+ accountId + " order by " + DMTable.MBLOGID + " desc limit 1";
Cursor c = getRsd().rawQuery(sql, null);
while (c.moveToNext()) {
String json = c.getString(c.getColumnIndex(DMTable.JSONDATA));
try {
DMUserListBean value = gson.fromJson(json, DMUserListBean.class);
for (DMUserBean b : value.getItemList()) {
if (!b.isMiddleUnreadItem()) {
b.getListViewSpannableString();
b.getListviewItemShowTime();
}
}
return value;
} catch (JsonSyntaxException ignored) {
}
}
c.close();
return result;
}
}