package net.yasite.service;
import java.util.LinkedHashMap;
import net.yasite.dao.DaoMaster;
import net.yasite.dao.DaoSession;
import net.yasite.dao.UserDao;
import net.yasite.entity.UserEntity;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import com.google.gson.Gson;
import de.greenrobot.dao.AbstractDao;
import de.greenrobot.dao.identityscope.IdentityScopeType;
public class BaseService {
SharedPreferences prefs;
protected Context context;
private DaoSession daoSession;
protected Gson gson;
private BaseService() {
}
/**
* 获取当前登录用户信息
*
* @return 如果没有登录用户信息,返回NULL,否则返回 UserEntity
*/
public UserEntity getloggedUser() {
return ((UserDao) openSession().getDao(UserEntity.class)).getloggedUser();
}
/**
* 修改当前登录用户信息
* @param user
*/
public void updateLoggedUser(UserEntity user) {
((UserDao) openSession().getDao(UserEntity.class)).update(user);
}
public void delLoggedUser(){
((UserDao) openSession().getDao(UserEntity.class)).deleteAll();
}
public NameValuePair getValue(String key,String value){
return new BasicNameValuePair(key, value);
}
public AbstractDao getDao(Class entity){
return openSession().getDao(entity);
}
protected BaseService(Context context) {
this.context = context;
gson = new Gson();
prefs = PreferenceManager.getDefaultSharedPreferences(context);
}
/**
* 打开session
*
* @param type
*/
public DaoSession openSession(IdentityScopeType type) {
daoSession = DaoMaster.getInstance(context).newSession(type);
return daoSession;
}
/**
* 打开session
*
* @param typeId
*/
public DaoSession openSession() {
return openSession(IdentityScopeType.None);
}
public void closeSession() {
if (daoSession != null) {
if (daoSession.getDatabase() != null && daoSession.getDatabase().isOpen()) {
daoSession.getDatabase().close();
}
}
DaoMaster.clear();
}
private LinkedHashMap<String, String> getCookies(){
String cookies[] = prefs.getString("cookies", "").split("Set_Cookies");
LinkedHashMap<String, String> cookie = new LinkedHashMap<String, String>();
for(int i = 0;i < cookies.length;i++){
cookie.put("Set-Cookie", cookies[i]);
}
return cookie;
}
}