package com.hx.hxchat.db;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.hx.hxchat.domain.GroupInfo;
import com.hx.hxchat.domain.TopUser;
import com.hx.hxchat.domain.User;
import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class GroupsDao {
public static final String TABLE_NAME = "groups";
public static final String COLUMN_NAME_ID = "groupid";
public static final String COLUMN_NAME_GROUP = "groupname";
public static final String COLUMN_NAME_TIME = "time";
public static final String COLUMN_NAME_ICON = "groupicon";
private DbOpenHelper dbHelper;
public GroupsDao(Context context) {
dbHelper = DbOpenHelper.getInstance(context);
}
/**
* 保存好友list
*
* @param contactList
*/
public void saveGroupInfoList(List<GroupInfo> contactList) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
if (db.isOpen()) {
db.delete(TABLE_NAME, null, null);
for (GroupInfo user : contactList) {
ContentValues values = new ContentValues();
values.put(COLUMN_NAME_ID, user.getGroupId());
values.put(COLUMN_NAME_GROUP, user.getGroupName());
values.put(COLUMN_NAME_TIME, user.getLastModifiedTime());
values.put(COLUMN_NAME_ICON, user.getGroupIcon());
db.replace(TABLE_NAME, null, values);
}
}
}
/**
* 获取好友list
*
* @return
*/
@SuppressLint("DefaultLocale")
public Map<String, GroupInfo> getGroupInfoList() {
SQLiteDatabase db = dbHelper.getReadableDatabase();
Map<String, GroupInfo> users = new HashMap<String, GroupInfo>();
if (db.isOpen()) {
Cursor cursor = db.rawQuery("select * from " + TABLE_NAME
+ " order by time asc ", null);
while (cursor.moveToNext()) {
String username = cursor.getString(cursor
.getColumnIndex(COLUMN_NAME_ID));
long time = cursor.getLong(cursor
.getColumnIndex(COLUMN_NAME_TIME));
String is_group = cursor.getString(cursor
.getColumnIndex(COLUMN_NAME_ICON));
GroupInfo user = new GroupInfo(username);
user.setGroupIcon(is_group);
users.put(username, user);
}
cursor.close();
}
return users;
}
/**
* 删除一个联系人
*
* @param username
*/
public void deleteGroupInfo(String username) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
if (db.isOpen()) {
db.delete(TABLE_NAME, COLUMN_NAME_ID + " = ?",
new String[] { username });
}
}
/**
* 保存一个联系人
*
* @param user
*/
public void saveGroupInfo(GroupInfo user) {
if(getGropsIcon(user.getGroupId())!=null){
return;
}
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAME_ID, user.getGroupId());
values.put(COLUMN_NAME_GROUP, user.getGroupName());
values.put(COLUMN_NAME_ICON, user.getGroupIcon());
if (db.isOpen()) {
db.replace(TABLE_NAME, null, values);
}
}
public String getGropsIcon(String mobile) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String icon="";
if (db.isOpen()) {
Cursor cursor = db.rawQuery("select * from " + TABLE_NAME + " where " + COLUMN_NAME_ID + " = " + mobile , null);
while (cursor.moveToNext()) {
try {
icon = cursor.getString(cursor.getColumnIndex(COLUMN_NAME_ICON));
if(icon==null||"".equals(icon)){
return null;
}else{
return icon;
}
} catch (Exception e) {
return null;
}
}
cursor.close();
}
return null;
}
}