Files
EhViewer/src/com/hippo/ehviewer/util/Config.java
T
2014-06-15 01:59:04 +08:00

326 lines
11 KiB
Java

/*
* Copyright (C) 2014 Hippo Seven
*
* 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.
*/
package com.hippo.ehviewer.util;
import com.hippo.ehviewer.ehclient.EhClient;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.os.Environment;
import android.preference.PreferenceManager;
public class Config {
@SuppressWarnings("unused")
private static final String TAG = "Config";
private static final String KEY_ALLOWED = "allowed";
private static final String KEY_FIRST = "first_time";
private static final String KEY_LOGIN = "login";
private static final String KEY_UPDATE_DATE = "update_date";
private static final String KEY_MODE = "mode";
private static final int MODE_DEFAULT = 0;
private static final String KEY_SCREEN_ORIENTATION = "screen_orientation";
private static final String DEFAULT_SCREEN_ORIENTATION = "0";
private static final String KEY_PAGE_SCALING = "page_scaling";
private static final String DEFAULT_PAGE_SCALING = "3";
private static final String KEY_START_POSITION = "start_position";
private static final String DEFAULT_START_POSITION = "1";
private static final String KEY_CACHE_SIZE = "cache_size";
private static final String DEFAULT_CACHE_SIZE = "25";
private static final String KEY_DOWNLOAD_PATH = "download_path";
private static final String DEFAULT_DOWNLOAD_PATH = Environment.getExternalStorageDirectory() + "/EhViewer/download/";
private static final String KEY_MEDIA_SCAN = "media_scan";
private static final boolean DEFAULT_MEDIA_SCAN = false;
private static final String KEY_AUTO_CHECK_FOR_UPDATE = "auto_check_for_update";
private static final boolean DEFAULT_AUTO_CHECK_FOR_UPDATE = true;
private static final String KEY_UPDATE_SERVER = "update_server";
private static final String DEFAULT_UPDATE_SERVER = "2";
private static final String KEY_RANDOM_THEME_COLOR = "random_theme_color";
private static final boolean DEFAULT_RANDOM_THEME_COLOR = true;
private static final String KEY_THEME_COLOR = "theme_color";
private static final int DEFAULT_THEME_COLOR = 0xff0099cc;
private static final String KEY_DEFAULT_FAVORITE = "default_favorite";
private static final String DEFAULT_DEFAULT_FAVORITE = "-2";
private static final String KEY_SET_ANALYTICS = "set_analyics";
private static final boolean DEFAULT_SET_ANALYTICS = false;
private static final String KEY_ALLOW_ANALYTICS = "allow_analyics";
private static final boolean DEFAULT_ALLOW_ANALYTICS = false;
private static final String KEY_POPULAR_WARNING = "popular_warning";
private static final boolean DEFAULT_POPULAR_WARNING = true;
private static boolean mInit = false;
private static Context mContext;
private static SharedPreferences mConfigPre;
/**
* Init Config
*
* @param context Application context
*/
public static void init(Context context) {
if (mInit)
return;
mInit = true;
mContext = context;
mConfigPre = PreferenceManager.getDefaultSharedPreferences(mContext);
}
/**
* Is init
* @return True if init
*/
public static boolean isInit() {
return mInit;
}
/**
* Get is it allowed to launch
*
* @return True if allowed
*/
public static boolean isAllowed() {
return mConfigPre.getBoolean(KEY_ALLOWED, false);
}
/**
* Allowed the appliation to launch
*/
public static void allowed() {
mConfigPre.edit().putBoolean(KEY_ALLOWED, true).apply();
}
/**
* Check is it first time to launch the application
*
* @return
*/
public static boolean isFirstTime() {
return mConfigPre.getBoolean(KEY_FIRST, true);
}
/**
* It is first time to launch the application
*/
public static void firstTime() {
mConfigPre.edit().putBoolean(KEY_FIRST, false).apply();
}
/**
* Is login last time ?
*
* @return
*/
public static boolean isLogin() {
return mConfigPre.getBoolean(KEY_LOGIN, false);
}
public static void loginNow() {
mConfigPre.edit().putBoolean(KEY_LOGIN, true).apply();
}
public static void logoutNow() {
mConfigPre.edit().putBoolean(KEY_LOGIN, false).apply();
}
public static String getDownloadPath() {
return mConfigPre.getString(KEY_DOWNLOAD_PATH, DEFAULT_DOWNLOAD_PATH);
}
public static void setDownloadPath(String path) {
mConfigPre.edit().putString(KEY_DOWNLOAD_PATH, path).apply();
}
public static int getMode() {
int mode = mConfigPre.getInt(KEY_MODE, MODE_DEFAULT);
if (mode < EhClient.G || mode > EhClient.LOFI_980x) {
mode = MODE_DEFAULT;
setMode(mode);
}
return mode;
}
public static void setMode(int mode) {
if (mode < EhClient.G || mode > EhClient.LOFI_980x)
mode = MODE_DEFAULT;
mConfigPre.edit().putInt(KEY_MODE, mode).apply();
}
/**
* Get cover cache size in MB
*
* @return
*/
public static int getCoverDiskCacheSize() {
try {
return Integer.parseInt(mConfigPre.getString(KEY_CACHE_SIZE, DEFAULT_CACHE_SIZE));
} catch (Exception e) {
mConfigPre.edit().putString(KEY_CACHE_SIZE, DEFAULT_CACHE_SIZE).apply();
return 25;
}
}
public static int getPageScalingMode() {
int pageScalingMode = 3;
try {
pageScalingMode = Integer.parseInt(mConfigPre.getString(
KEY_PAGE_SCALING, DEFAULT_PAGE_SCALING));
} catch (Exception e) {
mConfigPre.edit().putString(KEY_PAGE_SCALING, DEFAULT_PAGE_SCALING)
.apply();
}
return pageScalingMode;
}
public static int getStartPosition() {
int startPosition = 1;
try {
startPosition = Integer.parseInt(mConfigPre.getString(
KEY_START_POSITION, DEFAULT_START_POSITION));
} catch (Exception e) {
mConfigPre.edit().putString(KEY_START_POSITION, DEFAULT_START_POSITION)
.apply();
}
return startPosition;
}
public static int getScreenOriMode() {
int screenOriMode = 0;
try {
screenOriMode = Integer.parseInt(mConfigPre.getString(
KEY_SCREEN_ORIENTATION, DEFAULT_SCREEN_ORIENTATION));
} catch (Exception e) {
mConfigPre.edit().putString(KEY_SCREEN_ORIENTATION, DEFAULT_SCREEN_ORIENTATION)
.apply();
}
return screenOriPre2Value(screenOriMode);
}
public static int screenOriPre2Value(int screenOriModePre) {
switch (screenOriModePre) {
case 0:
return ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
case 1:
return ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
case 2:
return ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
default:
return ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
}
}
public static boolean isAutoCheckForUpdate() {
return mConfigPre.getBoolean(KEY_AUTO_CHECK_FOR_UPDATE,
DEFAULT_AUTO_CHECK_FOR_UPDATE);
}
public static void setAutoCheckForUpdate(boolean autoCheckForUpdate) {
mConfigPre.edit().putBoolean(KEY_AUTO_CHECK_FOR_UPDATE,
autoCheckForUpdate).apply();
}
public static int getUpdateDate() {
return mConfigPre.getInt(KEY_UPDATE_DATE, 0);
}
public static void setUpdateDate() {
setUpdateDate(Util.getDate());
}
public static void setUpdateDate(int date) {
mConfigPre.edit().putInt(KEY_UPDATE_DATE, date).apply();
}
public static String getUpdateServer() {
int value = 1;
try {
value = Integer.parseInt(mConfigPre.getString(KEY_UPDATE_SERVER, null));
} catch (Exception e) {
mConfigPre.edit().putString(KEY_UPDATE_SERVER, DEFAULT_UPDATE_SERVER)
.apply();
}
switch (value) {
case 1:
return "qiniu";
case 2:
return "gokuai";
case 0:
default:
return "google";
}
}
public static boolean getMediaScan() {
return mConfigPre.getBoolean(KEY_MEDIA_SCAN, DEFAULT_MEDIA_SCAN);
}
public static boolean getRandomThemeColor() {
return mConfigPre.getBoolean(KEY_RANDOM_THEME_COLOR, DEFAULT_RANDOM_THEME_COLOR);
}
public static int getThemeColor() {
return mConfigPre.getInt(KEY_THEME_COLOR, DEFAULT_THEME_COLOR);
}
public static void setThemeColor(int themeColor) {
mConfigPre.edit().putInt(KEY_THEME_COLOR, themeColor).apply();
}
public static int getDefaultFavorite() {
return Integer.parseInt(mConfigPre.getString(KEY_DEFAULT_FAVORITE, DEFAULT_DEFAULT_FAVORITE));
}
public static void setDefaultFavorite(int defaultFavorite) {
mConfigPre.edit().putString(KEY_DEFAULT_FAVORITE, String.valueOf(defaultFavorite)).apply();
}
public static boolean getSetAnalyics() {
return mConfigPre.getBoolean(KEY_SET_ANALYTICS, DEFAULT_SET_ANALYTICS);
}
public static void setSetAnalyics(boolean setAnalyics) {
mConfigPre.edit().putBoolean(KEY_SET_ANALYTICS, setAnalyics).apply();
}
public static boolean getAllowAnalyics() {
return mConfigPre.getBoolean(KEY_ALLOW_ANALYTICS, DEFAULT_ALLOW_ANALYTICS);
}
public static void setAllowAnalyics(boolean setAnalyics) {
mConfigPre.edit().putBoolean(KEY_ALLOW_ANALYTICS, setAnalyics).apply();
if (!setAnalyics)
setPopularWarning(true);
}
public static boolean getPopularWarning() {
return mConfigPre.getBoolean(KEY_POPULAR_WARNING, DEFAULT_POPULAR_WARNING);
}
public static void setPopularWarning(boolean popularWarning) {
mConfigPre.edit().putBoolean(KEY_POPULAR_WARNING, popularWarning).apply();
}
}