package com.example.slidingmenu.yujing.client.database.table;
import java.util.ArrayList;
import java.util.HashMap;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.example.slidingmenu.yujing.client.database.DatabaseHelper;
public class Friend implements DatabaseHelper.TableCreateInterface {
public static String tableName = "Friend";
public static String _id = "_id";
public static String UID = "UID";
public static String ID = "Friend_ID";
public static String name = "Friend_Name";
public static String mobile = "Friend_Mobile";
public static String photo = "Friend_Photo";
public static String sex = "Friend_Sex";
public static String address = "Friend_Address";
public static String state = "Friend_State";
public static final int ON_LINE = 0;
public static final int OFF_LINE = -1;
private static Friend friend = new Friend();
public static Friend getInstance() {
return Friend.friend;
}
@Override
public void onCreate( SQLiteDatabase db ) {
String sql = "CREATE TABLE "
+ Friend.tableName
+ " ( "
+ "_id integer primary key autoincrement, "
+ Friend.UID + " LONG, "
+ Friend.ID + " LONG, "
+ Friend.name + " TEXT, "
+ Friend.mobile + " TEXT, "
+ Friend.photo + " TEXT, "
+ Friend.address + " TEXT, "
+ Friend.sex + " TEXT, "
+ Friend.state + " INTEGER "
+ ");";
db.execSQL( sql );
}
@Override
public void onUpgrade( SQLiteDatabase db, int oldVersion, int newVersion ) {
if ( oldVersion < newVersion ) {
String sql = "DROP TABLE IF EXISTS " + Friend.tableName;
db.execSQL( sql );
this.onCreate( db );
}
}
public static void insertFriend( DatabaseHelper dbHepler, ContentValues userValues ) {
String whereArgs = String .valueOf(userValues.getAsLong(Friend.ID));
if(!IsFriend(dbHepler, whereArgs)) {
SQLiteDatabase db = dbHepler.getWritableDatabase();
db.insert(Friend.tableName, null, userValues);
db.close();
}
}
public static void deleteFriend( DatabaseHelper dbHepler,
int _id ) {
SQLiteDatabase db = dbHepler.getWritableDatabase();
db.delete( Friend.tableName, Friend._id + "=?",new String[] { _id + "" } );
db.close();
}
public static void deleteAllFriend( DatabaseHelper dbHepler ) {
SQLiteDatabase db = dbHepler.getWritableDatabase();
db.delete( Friend.tableName, null, null );
db.close();
}
public static void updataFriendState( DatabaseHelper dbHepler, ContentValues values, long id ) {
SQLiteDatabase db = dbHepler.getWritableDatabase();
db.update(Friend.tableName, values, Friend.ID + " = " + id, null);
db.close();
}
public static Cursor getAllFriends(DatabaseHelper dbHepler, String user) {
Cursor c = null;
try {
SQLiteDatabase db = dbHepler.getReadableDatabase();
c = db.query(Friend.tableName, null, Friend.UID
+ "="
+ user, null, null, null,
Friend.name + " COLLATE LOCALIZED ASC ");
} catch (Exception e) {
e.printStackTrace();
}
return c;
}
public static HashMap<String, Object> getFriend(DatabaseHelper dbHepler, int _id ){
SQLiteDatabase db = dbHepler.getReadableDatabase();
HashMap<String, Object> friendMap = new HashMap<String, Object>();
Cursor cursor = db.query( Friend.tableName, null, Friend._id + " =? ", new String[]{ _id + "" }, null, null, null);
if(cursor == null || cursor.getCount() == 0) {
return null;
}
friendMap.put(Friend.ID, cursor.getLong(cursor.getColumnIndex(Friend.ID)));
friendMap.put(Friend.name, cursor.getString(cursor.getColumnIndex(Friend.name)));
friendMap.put(Friend.photo, cursor.getString(cursor.getColumnIndex(Friend.photo)));
friendMap.put(Friend.sex, cursor.getString(cursor.getColumnIndex(Friend.sex)));
friendMap.put(Friend.mobile, cursor.getString(cursor.getColumnIndex(Friend.mobile)));
friendMap.put(Friend.address, cursor.getString(cursor.getColumnIndex(Friend.address)));
friendMap.put(Friend.state, cursor.getInt(cursor.getColumnIndex(Friend.state)));
return friendMap;
}
public static boolean IsFriend(DatabaseHelper dbHepler, String uid) {
boolean retVal = true;
SQLiteDatabase db = dbHepler.getWritableDatabase();
Cursor c = db.query(Friend.tableName, null, Friend.ID + "=?",
new String[] {uid}, null, null, null);
if(c == null || c.getCount() == 0) {
retVal = false;
}
c.close();
db.close();
return retVal;
}
public static ArrayList<HashMap<String, Object>> getListFriend( DatabaseHelper dbHepler ){
SQLiteDatabase db = dbHepler.getReadableDatabase();
ArrayList<HashMap<String, Object>> FriendList = new ArrayList<HashMap<String,Object>>();
HashMap<String, Object> friendMap = null;
Cursor cursor = db.query( Friend.tableName, null, null, null, null, null, Friend.name + " ASC ");
for( cursor.moveToFirst(); cursor.isAfterLast(); cursor.moveToNext() ){
friendMap = new HashMap<String, Object>();
friendMap.put(Friend._id, cursor.getLong(cursor.getColumnIndex(Friend._id)));
friendMap.put(Friend.name, cursor.getString(cursor.getColumnIndex(Friend.name)));
friendMap.put(Friend.photo, cursor.getString(cursor.getColumnIndex(Friend.photo)));
friendMap.put(Friend.mobile, cursor.getString(cursor.getColumnIndex(Friend.mobile)));
friendMap.put(Friend.state, cursor.getInt(cursor.getColumnIndex(Friend.state)));
FriendList.add(friendMap);
}
return FriendList;
}
}