package com.jasonchen.microlang.database;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.text.TextUtils;
import com.google.gson.Gson;
import com.jasonchen.microlang.beans.CommentBean;
import com.jasonchen.microlang.beans.GeoBean;
import com.jasonchen.microlang.beans.MessageBean;
import com.jasonchen.microlang.database.table.DraftTable;
/**
* jasonchen
* 2015/04/10
*/
public class DraftDBManager {
private static DraftDBManager singleton = null;
private SQLiteDatabase wsd = null;
private SQLiteDatabase rsd = null;
private DraftDBManager() {
}
public static DraftDBManager getInstance() {
if (singleton == null) {
DatabaseHelper databaseHelper = DatabaseHelper.getInstance();
SQLiteDatabase wsd = databaseHelper.getWritableDatabase();
SQLiteDatabase rsd = databaseHelper.getReadableDatabase();
singleton = new DraftDBManager();
singleton.wsd = wsd;
singleton.rsd = rsd;
}
return singleton;
}
public void insertStatus(String content, GeoBean gps, String pic, String accountId) {
ContentValues cv = new ContentValues();
cv.put(DraftTable.CONTENT, content);
cv.put(DraftTable.ACCOUNTID, accountId);
if (gps != null) {
cv.put(DraftTable.GPS, new Gson().toJson(gps));
}
if (!TextUtils.isEmpty(pic)) {
cv.put(DraftTable.PIC, pic);
}
cv.put(DraftTable.TYPE, DraftTable.TYPE_WEIBO);
wsd.insert(DraftTable.TABLE_NAME,
DraftTable.ID, cv);
}
public void insertRepost(String content, MessageBean messageBean, String accountId) {
ContentValues cv = new ContentValues();
cv.put(DraftTable.CONTENT, content);
cv.put(DraftTable.ACCOUNTID, accountId);
cv.put(DraftTable.JSONDATA, new Gson().toJson(messageBean));
cv.put(DraftTable.TYPE, DraftTable.TYPE_REPOST);
wsd.insert(DraftTable.TABLE_NAME,
DraftTable.ID, cv);
}
public void insertComment(String content, MessageBean messageBean, String accountId) {
ContentValues cv = new ContentValues();
cv.put(DraftTable.CONTENT, content);
cv.put(DraftTable.ACCOUNTID, accountId);
cv.put(DraftTable.JSONDATA, new Gson().toJson(messageBean));
cv.put(DraftTable.TYPE, DraftTable.TYPE_COMMENT);
wsd.insert(DraftTable.TABLE_NAME,
DraftTable.ID, cv);
}
public void insertReply(String content, CommentBean commentBean, String accountId) {
ContentValues cv = new ContentValues();
cv.put(DraftTable.CONTENT, content);
cv.put(DraftTable.ACCOUNTID, accountId);
cv.put(DraftTable.JSONDATA, new Gson().toJson(commentBean));
cv.put(DraftTable.TYPE, DraftTable.TYPE_REPLY);
wsd.insert(DraftTable.TABLE_NAME,
DraftTable.ID, cv);
}
/*public List<DraftListViewItemBean> getDraftList(String accountId) {
Gson gson = new Gson();
List<DraftListViewItemBean> result = new ArrayList<DraftListViewItemBean>();
String sql = "select * from " + DraftTable.TABLE_NAME + " where " + DraftTable.ACCOUNTID
+ " = "
+ accountId + " order by " + DraftTable.ID + " desc";
Cursor c = rsd.rawQuery(sql, null);
while (c.moveToNext()) {
DraftListViewItemBean item = new DraftListViewItemBean();
int type = c.getInt(c.getColumnIndex(DraftTable.TYPE));
item.setType(type);
item.setId(c.getString(c.getColumnIndex(DraftTable.ID)));
String content;
switch (type) {
case DraftTable.TYPE_WEIBO:
content = c.getString(c.getColumnIndex(DraftTable.CONTENT));
StatusDraftBean bean = new StatusDraftBean();
bean.setId(c.getString(c.getColumnIndex(DraftTable.ID)));
bean.setContent(content);
bean.setAccountId(accountId);
String gpsJson = c.getString(c.getColumnIndex(DraftTable.GPS));
if (!TextUtils.isEmpty(gpsJson)) {
bean.setGps(new Gson().fromJson(gpsJson, GeoBean.class));
}
bean.setPic(c.getString(c.getColumnIndex(DraftTable.PIC)));
item.setStatusDraftBean(bean);
result.add(item);
break;
case DraftTable.TYPE_REPOST:
content = c.getString(c.getColumnIndex(DraftTable.CONTENT));
RepostDraftBean repostDraftBean = new RepostDraftBean();
repostDraftBean.setId(c.getString(c.getColumnIndex(DraftTable.ID)));
repostDraftBean.setContent(content);
repostDraftBean.setAccountId(accountId);
MessageBean messageBean = gson
.fromJson(c.getString(c.getColumnIndex(DraftTable.JSONDATA)),
MessageBean.class);
repostDraftBean.setMessageBean(messageBean);
item.setRepostDraftBean(repostDraftBean);
result.add(item);
break;
case DraftTable.TYPE_COMMENT:
content = c.getString(c.getColumnIndex(DraftTable.CONTENT));
CommentDraftBean commentDraftBean = new CommentDraftBean();
commentDraftBean.setId(c.getString(c.getColumnIndex(DraftTable.ID)));
commentDraftBean.setContent(content);
commentDraftBean.setAccountId(accountId);
MessageBean commentMessageBean = gson
.fromJson(c.getString(c.getColumnIndex(DraftTable.JSONDATA)),
MessageBean.class);
commentDraftBean.setMessageBean(commentMessageBean);
item.setCommentDraftBean(commentDraftBean);
result.add(item);
break;
case DraftTable.TYPE_REPLY:
content = c.getString(c.getColumnIndex(DraftTable.CONTENT));
ReplyDraftBean replyDraftBean = new ReplyDraftBean();
replyDraftBean.setId(c.getString(c.getColumnIndex(DraftTable.ID)));
replyDraftBean.setContent(content);
replyDraftBean.setAccountId(accountId);
CommentBean commentBean = gson
.fromJson(c.getString(c.getColumnIndex(DraftTable.JSONDATA)),
CommentBean.class);
replyDraftBean.setCommentBean(commentBean);
item.setReplyDraftBean(replyDraftBean);
result.add(item);
break;
}
}
c.close();
return result;
}
public List<DraftListViewItemBean> removeAndGet(Set<String> checkedItemPosition,
String acountId) {
String[] args = checkedItemPosition.toArray(new String[0]);
String asString = Arrays.toString(args);
asString = asString.replace("[", "(");
asString = asString.replace("]", ")");
String sql = "delete from " + DraftTable.TABLE_NAME + " where " + DraftTable.ID + " in "
+ asString;
wsd.execSQL(sql);
return getDraftList(acountId);
}
*/
public void remove(String id) {
String sql = "delete from " + DraftTable.TABLE_NAME + " where " + DraftTable.ID + " = "
+ id;
wsd.execSQL(sql);
}
}