package com.example.ipcplayer.setting; import com.example.ipcplayer.kvstorage.KvFactory; import com.example.ipcplayer.kvstorage.KvStorage; import com.example.ipcplayer.kvstorage.IKvStorage; import android.content.Context; public class SettingManagerImpl implements SettingManager{ private Context mContext ; private SettingManagerImpl mInstance = null; private static volatile int mRef = 0; private IKvStorage mKvStorage = null; private boolean mFirstBoot; private final static String KEY_FIRST_BOOT = "app_first_boot"; private final static String KEY_SINA_TOKEN = "sina_token"; private final static String KEY_SINA_EXPIRE_IN = "sina_expire_in"; private final static String KEY_SINA_UID = "sina_uid"; private final static String KEY_TENCENT_TOKEN = "tencent_token"; private final static String KEY_TENCENT_OPEN_ID = "tencent_openid"; private final static String KEY_TENCENT_OPEN_KEY = "tencent_open_key"; private final static String KEY_APP_FOREGROUND_TIME = "key_app_foreground_time"; public SettingManagerImpl(Context context){ mContext = context ; synchronized(this){ if(mInstance == null){ mInstance =this ; } } if(mRef == 0){ init(); } ++mRef ; } private void init(){ mKvStorage = (IKvStorage) KvFactory.createInterface(mContext); mFirstBoot = mKvStorage.getBoolean(KEY_FIRST_BOOT, true); } @Override public void release() { // TODO Auto-generated method stub mRef = 0 ; mInstance = null ; mFirstBoot = false ; } @Override public ComInterface getInstance() { return mInstance; } @Override public void setTencentAccessToken(String token) { mKvStorage.putString(KEY_TENCENT_TOKEN, token); mKvStorage.commit(); } @Override public void setTencentOpenId(String openId) { mKvStorage.putString(KEY_TENCENT_OPEN_ID, openId); mKvStorage.commit(); } @Override public void setTencentOpenKey(String openKey) { mKvStorage.putString(KEY_TENCENT_OPEN_KEY, openKey); mKvStorage.commit(); } @Override public void setAppForegroundTime(long peroid) { mKvStorage.putLong(KEY_APP_FOREGROUND_TIME, peroid); mKvStorage.commit(); } @Override public long getAppForegroundTime() { return mKvStorage.getLong(KEY_APP_FOREGROUND_TIME,0); } @Override public String getTencentAccessToken() { return mKvStorage.getString(KEY_TENCENT_TOKEN, null); } @Override public String getTencentOpenKey() { return mKvStorage.getString(KEY_TENCENT_OPEN_KEY, null); } @Override public String getTencentOpenId() { return mKvStorage.getString(KEY_TENCENT_OPEN_ID, null); } @Override public String getSinaAccessToken() { return mKvStorage.getString(KEY_SINA_TOKEN, null); } @Override public String getSinaExpireIn() { return mKvStorage.getString(KEY_SINA_EXPIRE_IN, null); } @Override public void setSinaAccessToken(String token) { mKvStorage.putString(KEY_SINA_TOKEN, token); } @Override public void setSinaUid(String uid) { mKvStorage.putString(KEY_SINA_UID, uid); } @Override public String getSinaUid() { return mKvStorage.getString(KEY_SINA_UID, null); } @Override public void setSinaExpireIn(String expire) { mKvStorage.putString(KEY_SINA_EXPIRE_IN, expire); } }