SharedPreferences

/**
 * Copyright (C) 2016 Hyphenate Inc. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *     http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


import android.content.Context;
import android.content.SharedPreferences;

public class PreferenceManager {
   /**
    * name of preference
    */
   public static final String PREFERENCE_NAME = "saveInfo";
   private static SharedPreferences mSharedPreferences;
   private static PreferenceManager mPreferencemManager;
   private static SharedPreferences.Editor editor;

   private String SHARED_KEY_SETTING_NOTIFICATION = "shared_key_setting_notification";
   private String SHARED_KEY_SETTING_SOUND = "shared_key_setting_sound";
   private String SHARED_KEY_SETTING_VIBRATE = "shared_key_setting_vibrate";
   private String SHARED_KEY_SETTING_SPEAKER = "shared_key_setting_speaker";

   private static String SHARED_KEY_SETTING_CHATROOM_OWNER_LEAVE = "shared_key_setting_chatroom_owner_leave";
    private static String SHARED_KEY_SETTING_DELETE_MESSAGES_WHEN_EXIT_GROUP = "shared_key_setting_delete_messages_when_exit_group";
    private static String SHARED_KEY_SETTING_AUTO_ACCEPT_GROUP_INVITATION = "shared_key_setting_auto_accept_group_invitation";
    private static String SHARED_KEY_SETTING_ADAPTIVE_VIDEO_ENCODE = "shared_key_setting_adaptive_video_encode";
    
   private static String SHARED_KEY_SETTING_GROUPS_SYNCED = "SHARED_KEY_SETTING_GROUPS_SYNCED";
   private static String SHARED_KEY_SETTING_CONTACT_SYNCED = "SHARED_KEY_SETTING_CONTACT_SYNCED";
   private static String SHARED_KEY_SETTING_BALCKLIST_SYNCED = "SHARED_KEY_SETTING_BALCKLIST_SYNCED";
   
   private static String SHARED_KEY_CURRENTUSER_USERNAME = "SHARED_KEY_CURRENTUSER_USERNAME";
   private static String SHARED_KEY_CURRENTUSER_NICK = "SHARED_KEY_CURRENTUSER_NICK";
   private static String SHARED_KEY_CURRENTUSER_AVATAR = "SHARED_KEY_CURRENTUSER_AVATAR";
   
   private PreferenceManager(Context cxt) {
      mSharedPreferences = cxt.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
      editor = mSharedPreferences.edit();
   }

   public static synchronized void init(Context cxt){
       if(mPreferencemManager == null){
           mPreferencemManager = new PreferenceManager(cxt);
       }
   }

   /**
    * get instance of PreferenceManager
    * 
    * @return
    */
   public synchronized static PreferenceManager getInstance() {
      if (mPreferencemManager == null) {
         throw new RuntimeException("please init first!");
      }
      
      return mPreferencemManager;
   }
   
   public void setSettingMsgNotification(boolean paramBoolean) {
      editor.putBoolean(SHARED_KEY_SETTING_NOTIFICATION, paramBoolean);
      editor.commit();
   }

   public boolean getSettingMsgNotification() {
      return mSharedPreferences.getBoolean(SHARED_KEY_SETTING_NOTIFICATION, true);
   }

   public void setSettingMsgSound(boolean paramBoolean) {
      editor.putBoolean(SHARED_KEY_SETTING_SOUND, paramBoolean);
      editor.commit();
   }

   public boolean getSettingMsgSound() {

      return mSharedPreferences.getBoolean(SHARED_KEY_SETTING_SOUND, true);
   }

   public void setSettingMsgVibrate(boolean paramBoolean) {
      editor.putBoolean(SHARED_KEY_SETTING_VIBRATE, paramBoolean);
      editor.commit();
   }

   public boolean getSettingMsgVibrate() {
      return mSharedPreferences.getBoolean(SHARED_KEY_SETTING_VIBRATE, true);
   }

   public void setSettingMsgSpeaker(boolean paramBoolean) {
      editor.putBoolean(SHARED_KEY_SETTING_SPEAKER, paramBoolean);
      editor.commit();
   }

   public boolean getSettingMsgSpeaker() {
      return mSharedPreferences.getBoolean(SHARED_KEY_SETTING_SPEAKER, true);
   }
   
   public void setSettingAllowChatroomOwnerLeave(boolean value) {
        editor.putBoolean(SHARED_KEY_SETTING_CHATROOM_OWNER_LEAVE, value);
        editor.commit();
    }
   
   public boolean getSettingAllowChatroomOwnerLeave() {
        return mSharedPreferences.getBoolean(SHARED_KEY_SETTING_CHATROOM_OWNER_LEAVE, true);
    }
   
    public void setDeleteMessagesAsExitGroup(boolean value){
        editor.putBoolean(SHARED_KEY_SETTING_DELETE_MESSAGES_WHEN_EXIT_GROUP, value);
        editor.commit();
    }    
    
    public boolean isDeleteMessagesAsExitGroup() {
        return mSharedPreferences.getBoolean(SHARED_KEY_SETTING_DELETE_MESSAGES_WHEN_EXIT_GROUP, true);
    }

    public void setAutoAcceptGroupInvitation(boolean value) {
        editor.putBoolean(SHARED_KEY_SETTING_AUTO_ACCEPT_GROUP_INVITATION, value);
        editor.commit();
    }
    
    public boolean isAutoAcceptGroupInvitation() {
        return mSharedPreferences.getBoolean(SHARED_KEY_SETTING_AUTO_ACCEPT_GROUP_INVITATION, true);
    }
    
    public void setAdaptiveVideoEncode(boolean value) {
        editor.putBoolean(SHARED_KEY_SETTING_ADAPTIVE_VIDEO_ENCODE, value);
        editor.commit();
    }
    
    public boolean isAdaptiveVideoEncode() {
        return mSharedPreferences.getBoolean(SHARED_KEY_SETTING_ADAPTIVE_VIDEO_ENCODE, false);
    }
    
   public void setGroupsSynced(boolean synced){
       editor.putBoolean(SHARED_KEY_SETTING_GROUPS_SYNCED, synced);
        editor.commit();
   }
   
   public boolean isGroupsSynced(){
       return mSharedPreferences.getBoolean(SHARED_KEY_SETTING_GROUPS_SYNCED, false);
   }
   
   public void setContactSynced(boolean synced){
        editor.putBoolean(SHARED_KEY_SETTING_CONTACT_SYNCED, synced);
        editor.commit();
    }
    
    public boolean isContactSynced(){
        return mSharedPreferences.getBoolean(SHARED_KEY_SETTING_CONTACT_SYNCED, false);
    }
    
    public void setBlacklistSynced(boolean synced){
        editor.putBoolean(SHARED_KEY_SETTING_BALCKLIST_SYNCED, synced);
        editor.commit();
    }
    
    public boolean isBacklistSynced(){
        return mSharedPreferences.getBoolean(SHARED_KEY_SETTING_BALCKLIST_SYNCED, false);
    }
    
   public void setCurrentUserNick(String nick) {
      editor.putString(SHARED_KEY_CURRENTUSER_NICK, nick);
      editor.commit();
   }

   public void setCurrentUserAvatar(String avatar) {
      editor.putString(SHARED_KEY_CURRENTUSER_AVATAR, avatar);
      editor.commit();
   }

   public String getCurrentUserNick() {
      return mSharedPreferences.getString(SHARED_KEY_CURRENTUSER_NICK, null);
   }

   public String getCurrentUserAvatar() {
      return mSharedPreferences.getString(SHARED_KEY_CURRENTUSER_AVATAR, null);
   }
   
   public void setCurrentUserName(String username){
      editor.putString(SHARED_KEY_CURRENTUSER_USERNAME, username);
      editor.commit();
   }
   
   public String getCurrentUsername(){
      return mSharedPreferences.getString(SHARED_KEY_CURRENTUSER_USERNAME, null);
   }


   public void removeCurrentUserInfo() {
      editor.remove(SHARED_KEY_CURRENTUSER_NICK);
      editor.remove(SHARED_KEY_CURRENTUSER_AVATAR);
      editor.commit();
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值