308 lines
		
	
	
		
			9.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			308 lines
		
	
	
		
			9.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | package com.novelbook.android.utils; | |||
|  | 
 | |||
|  | import android.content.Context; | |||
|  | import android.content.SharedPreferences; | |||
|  | import android.graphics.Typeface; | |||
|  | import android.text.style.BulletSpan; | |||
|  | 
 | |||
|  | import com.novelbook.android.BuildConfig; | |||
|  | import com.novelbook.android.MyApp; | |||
|  | import com.novelbook.android.R; | |||
|  | 
 | |||
|  | 
 | |||
|  | public class Config { | |||
|  |     private final static String SP_NAME = "config"; | |||
|  |     private final static String BOOK_BG_KEY = "bookbg"; | |||
|  |     private final static String FONT_TYPE_KEY = "fonttype"; | |||
|  |     private final static String FONT_SIZE_KEY = "fontsize"; | |||
|  |     private final static String LINE_SPACE_KEY = "linespace"; | |||
|  |     private final static String NIGHT_KEY = "night"; | |||
|  |     private final static String LIGHT_KEY = "light"; | |||
|  |     private final static String SYSTEM_LIGHT_KEY = "systemlight"; | |||
|  |     private final static String PAGE_MODE_KEY = "pagemode"; | |||
|  |     private final static String KEY_BASE_URY = "baseurl"; | |||
|  |     private final static String KEY_ROOT_URL = "rooturl"; | |||
|  |     public final static String FONTTYPE_DEFAULT = ""; | |||
|  |     public final static String FONTTYPE_QIHEI = "font/qihei.ttf"; | |||
|  |     public final static String FONTTYPE_WAWA = "font/font1.ttf"; | |||
|  | 
 | |||
|  |     public final static String FONTTYPE_FZXINGHEI = "font/fzxinghei.ttf"; | |||
|  |     public final static String FONTTYPE_FZKATONG = "font/fzkatong.ttf"; | |||
|  |     public final static String FONTTYPE_BYSONG = "font/bysong.ttf"; | |||
|  | 
 | |||
|  |     public final static int BOOK_BG_DEFAULT = 0; | |||
|  |     public final static int BOOK_BG_1 = 1; | |||
|  |     public final static int BOOK_BG_2 = 2; | |||
|  |     public final static int BOOK_BG_3 = 3; | |||
|  |     public final static int BOOK_BG_4 = 4; | |||
|  | 
 | |||
|  |     public final static int PAGE_MODE_SIMULATION = 0; | |||
|  |     public final static int PAGE_MODE_COVER = 1; | |||
|  |     public final static int PAGE_MODE_SLIDE = 2; | |||
|  |     public final static int PAGE_MODE_NONE = 3; | |||
|  |     public final static boolean SHOW_AD = false; | |||
|  |     private final static String DECLARE_KEY = "declarekey"; | |||
|  |     private final static String SHOW_CHAPT_URL_KEY = "chapturlkey"; | |||
|  |     private static final String PRE_LOAD_CHAPT_KEY ="preloadchapt" ; | |||
|  | 
 | |||
|  |     private final static String  AD_KEY = "adkey"; | |||
|  | 
 | |||
|  | 
 | |||
|  |     private Context mContext; | |||
|  |     private static Config config; | |||
|  |     private SharedPreferences sp; | |||
|  |     //字体 | |||
|  |     private Typeface typeface; | |||
|  |     //字体大小 | |||
|  |     private float mFontSize = 0; | |||
|  | 
 | |||
|  |     //行间距 | |||
|  |     private float mLineSpace =0; | |||
|  |     //亮度值 | |||
|  |     private float light = 0; | |||
|  |     private int bookBG; | |||
|  | 
 | |||
|  |     public int getSexOption() { | |||
|  |         return sp.getInt(SEX_OPTION_KEY,sexOption); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setSexOption(int sexOption) { | |||
|  |         sp.edit().putInt(SEX_OPTION_KEY,sexOption).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  |     //sexoption | |||
|  |     public final static String SEX_OPTION_KEY="sexoption"; | |||
|  |     private int sexOption =1; | |||
|  | 
 | |||
|  |     private Config(Context mContext){ | |||
|  |         this.mContext = mContext.getApplicationContext(); | |||
|  |         sp = this.mContext.getSharedPreferences(SP_NAME,Context.MODE_PRIVATE); | |||
|  |     } | |||
|  | 
 | |||
|  |     public static synchronized Config getInstance(){ | |||
|  |         return config; | |||
|  |     } | |||
|  | 
 | |||
|  |     public static synchronized Config createConfig(Context context){ | |||
|  |         if (config == null){ | |||
|  |             config = new Config(context); | |||
|  |         } | |||
|  | 
 | |||
|  |         return config; | |||
|  |     } | |||
|  | 
 | |||
|  |     public int getPageMode(){ | |||
|  |         return sp.getInt(PAGE_MODE_KEY,PAGE_MODE_SIMULATION); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setPageMode(int pageMode){ | |||
|  |         sp.edit().putInt(PAGE_MODE_KEY,pageMode).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public int getBookBgType(){ | |||
|  |         return sp.getInt(BOOK_BG_KEY,BOOK_BG_DEFAULT); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setBookBg(int type){ | |||
|  |         sp.edit().putInt(BOOK_BG_KEY,type).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public Typeface getTypeface(){ | |||
|  |         if (typeface == null) { | |||
|  |             String typePath = sp.getString(FONT_TYPE_KEY,FONTTYPE_QIHEI); | |||
|  |             typeface = getTypeface(typePath); | |||
|  |         } | |||
|  |         return typeface; | |||
|  |     } | |||
|  | 
 | |||
|  |     public String getTypefacePath(){ | |||
|  |         String path = sp.getString(FONT_TYPE_KEY,FONTTYPE_QIHEI); | |||
|  |         return path; | |||
|  |     } | |||
|  | 
 | |||
|  |     public Typeface getTypeface(String typeFacePath){ | |||
|  |         return  Typeface.DEFAULT; | |||
|  |       /*  Typeface mTypeface; | |||
|  |         if (typeFacePath.equals(FONTTYPE_DEFAULT)){ | |||
|  |             mTypeface = Typeface.DEFAULT; | |||
|  |         }else{ | |||
|  |             mTypeface = Typeface.createFromAsset(mContext.getAssets(),typeFacePath); | |||
|  |         } | |||
|  |         return mTypeface;*/ | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setTypeface(String typefacePath){ | |||
|  |         typeface = getTypeface(typefacePath); | |||
|  |         sp.edit().putString(FONT_TYPE_KEY,typefacePath).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public float getFontSize(){ | |||
|  |         if (mFontSize == 0){ | |||
|  |             mFontSize = sp.getFloat(FONT_SIZE_KEY, mContext.getResources().getDimension(R.dimen.reading_default_text_size)); | |||
|  |         } | |||
|  |         return mFontSize; | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setFontSize(float fontSize){ | |||
|  |         mFontSize = fontSize; | |||
|  |         sp.edit().putFloat(FONT_SIZE_KEY,fontSize).commit(); | |||
|  |     } | |||
|  |     public float getLineSpace(){ | |||
|  |         if (mLineSpace == 0){ | |||
|  |             mLineSpace = sp.getFloat(LINE_SPACE_KEY, mContext.getResources().getDimension(R.dimen.reading_line_spacing)); | |||
|  |         } | |||
|  |         return mLineSpace; | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setLineSpace(float lineSpace){ | |||
|  |         mLineSpace = lineSpace; | |||
|  |         sp.edit().putFloat(LINE_SPACE_KEY,lineSpace).commit(); | |||
|  |     } | |||
|  |     /** | |||
|  |      * 获取夜间还是白天阅读模式,true为夜晚,false为白天 | |||
|  |      */ | |||
|  |     public boolean getDayOrNight() { | |||
|  |         return sp.getBoolean(NIGHT_KEY, false); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setDayOrNight(boolean isNight){ | |||
|  |         sp.edit().putBoolean(NIGHT_KEY,isNight).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public Boolean isSystemLight(){ | |||
|  |        return sp.getBoolean(SYSTEM_LIGHT_KEY,true); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setSystemLight(Boolean isSystemLight){ | |||
|  |         sp.edit().putBoolean(SYSTEM_LIGHT_KEY,isSystemLight).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public float getLight(){ | |||
|  |         if (light == 0){ | |||
|  |             light = sp.getFloat(LIGHT_KEY,0.1f); | |||
|  |         } | |||
|  |         return light; | |||
|  |     } | |||
|  |     /** | |||
|  |      * 记录配置文件中亮度值 | |||
|  |      */ | |||
|  |     public void setLight(float light) { | |||
|  |         this.light = light; | |||
|  |         sp.edit().putFloat(LIGHT_KEY,light).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |     public void setBaseUrl(String baseUrl){ | |||
|  |         sp.edit().putString(KEY_BASE_URY,baseUrl).commit(); | |||
|  |     } | |||
|  |     public String getBaseUrl(){ | |||
|  |      // String defaultHost ="{\"master\":[\"http:\\/\\/xiaoshuofenxiang.com\"],\"page\":[\"http:\\/\\/p.xiaoshuofenxiang.com\"],\"report\":[\"http:\\/\\/r.xiaoshuofenxiang.com\"],\"search\":[\"http:\\/\\/s.xiaoshuofenxiang.com\"],\"novel\":[\"http:\\/\\/n.xiaoshuofenxiang.com\"],\"novelsbydot\":[\"http:\\/\\/nbd.xiaoshuofenxiang.com\"],\"user\":[\"http:\\/\\/u.xiaoshuofenxiang.com\"]}"; | |||
|  |       //  String defaultHost =CommonUtil.getMeta(MyApp.applicationContext,"DEFAULTHOST"); | |||
|  | 
 | |||
|  |         String defaultHost =BuildConfig.API_HOST; | |||
|  |         return sp.getString(KEY_BASE_URY,defaultHost); | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     public String getRootUrl(){ | |||
|  |         //String defaultHost =CommonUtil.getMeta(MyApp.applicationContext,"MAINHOST"); | |||
|  | 
 | |||
|  |         String defaultHost = BuildConfig.MAIN_HOST; | |||
|  |         String rt =sp.getString(KEY_ROOT_URL,defaultHost); | |||
|  |         return sp.getString(KEY_ROOT_URL,defaultHost); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setRootUrl(String baseUrl){ | |||
|  |         sp.edit().putString(KEY_ROOT_URL,baseUrl).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     public Boolean isPreLoadChapter(){ | |||
|  |         return sp.getBoolean(PRE_LOAD_CHAPT_KEY,false); | |||
|  |     } | |||
|  |     public void setPreLoadChapter(boolean isPreloadChapt){ | |||
|  |         sp.edit().putBoolean(PRE_LOAD_CHAPT_KEY,isPreloadChapt).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  |     public String getAdSetting(){ | |||
|  |         return sp.getString(AD_KEY,"" ); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setAdSetting(String adSetting){ | |||
|  |         sp.edit().putString (AD_KEY,adSetting).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  | /* | |||
|  | public Boolean isShowAd(){ | |||
|  |         return sp.getBoolean(SHOW_AD_KEY,true); | |||
|  |     } | |||
|  |     public void setShowAd(boolean isShowAd){ | |||
|  |         sp.edit().putBoolean(SHOW_AD_KEY,isShowAd).commit(); | |||
|  |     } | |||
|  |  public int getAdTopBannerRate(){ | |||
|  |         return sp.getInt(AD_TOP_BANNER_SEEDS_KEY,0); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setAdTopBannerRate(int pageCnt){ | |||
|  |         sp.edit().putInt(AD_TOP_BANNER_SEEDS_KEY,pageCnt).commit(); | |||
|  |     } | |||
|  |     private final static String AD_NATIVE_BANNER_SOURCE_KEY = "AD_NATIVE_BANNER_SOURCE_KEY"; | |||
|  |     private final static String AD_BANNER_SOURCE_KEY = "AD_BANNER_SOURCE_KEY"; | |||
|  |     private final static String AD_UNIFIED_RECYCLE_SOURCE_KEY = "AD_UNIFIED_RECYCLE_SOURCE_KEY"; | |||
|  |     private final static String AD_SPLASH_SOURCE_KEY = "AD_SPLASH_SOURCE_KEY"; | |||
|  | 
 | |||
|  | 
 | |||
|  |     public int getAdNativeBannerSource(){ | |||
|  |         return sp.getInt(AD_NATIVE_BANNER_SOURCE_KEY,Constants.AD_TENCENT_QQ); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setAdNativeBannerSource(int source){ | |||
|  |         sp.edit().putInt(AD_NATIVE_BANNER_SOURCE_KEY,source).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public int getAdBannerSource(){ | |||
|  |         return sp.getInt(AD_BANNER_SOURCE_KEY,Constants.AD_TENCENT_QQ); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setAdBannerSource(int source){ | |||
|  |         sp.edit().putInt(AD_BANNER_SOURCE_KEY,source).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public int getAdUnifiedRecycleSource(){ | |||
|  |         return sp.getInt(AD_UNIFIED_RECYCLE_SOURCE_KEY,Constants.AD_TENCENT_QQ); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setAdUnifiedRecycleSource(int source){ | |||
|  |         sp.edit().putInt(AD_UNIFIED_RECYCLE_SOURCE_KEY,source).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public int getAdSplashSource(){ | |||
|  |         return sp.getInt(AD_SPLASH_SOURCE_KEY,Constants.AD_TENCENT_QQ); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setAdSplashSource(int source){ | |||
|  |         sp.edit().putInt(AD_SPLASH_SOURCE_KEY,source).commit(); | |||
|  |     } | |||
|  | */ | |||
|  | 
 | |||
|  |     public String getDeclare(){ | |||
|  |         return sp.getString(DECLARE_KEY,"" ); | |||
|  |     } | |||
|  | 
 | |||
|  |     public void setDeclare(String declare){ | |||
|  |         sp.edit().putString(DECLARE_KEY,declare).commit(); | |||
|  |     } | |||
|  |     public Boolean isShowChatpUrl(){ | |||
|  |         return sp.getBoolean(SHOW_CHAPT_URL_KEY,false); | |||
|  |     } | |||
|  |     public void setShowChaptUrl(boolean isShowChatpUrl){ | |||
|  |         sp.edit().putBoolean(SHOW_CHAPT_URL_KEY,isShowChatpUrl).commit(); | |||
|  |     } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | } |