package my.project.easyrecharge; import java.lang.reflect.Type; import my.project.easyrecharge.contants.Key; import my.project.easyrecharge.model.BindInfo; import my.project.easyrecharge.util.L; import my.project.easyrecharge.util.VersionUtil; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.content.pm.PackageManager.NameNotFoundException; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.toolbox.Volley; import com.google.gson.Gson; public class F { public static final String TAG = "easy-recharge"; private static final String BASIC_URL = "http://www.yheleccdb.com/"; public static final String XML_RPC_REQUEST_URL = BASIC_URL + "api"; public static final String HTTP_REQUEST_URL = BASIC_URL + "client/"; public static final String APK_DOWNLOAD_URL = BASIC_URL + "file/getapk"; public static final String NOTIFY_URL = BASIC_URL + "Alipay/PayResult"; public static class Method { public static final String QUERY_SCORE = "query_score"; public static final String QUERY_VERSION = "newestversion"; public static final String QUERY_SHCOOL = "school"; public static final String QUERY_APART = "apart"; public static final String QUERY_ANNOUNCEMENT = "announcement"; public static final String QUERY_RECORD = "posrecord"; public static final String QUERY_CAN_USE = "canuse"; } // 版本信息,进入应用时读取 public static int VERSION_CODE; public static String VERSION_NAME; // 用户绑定信息,用户绑定时保存,进入应用时读取 public static BindInfo mBindInfo; // 是否显示start_image_1 public static boolean isShowImage1; // volley queue private static RequestQueue mVolleyQueue; // shared preferences for saving bind info private static SharedPreferences mPrefs; private static Editor mEditor; private static final String PREFS_NAME = "easy_recharge"; private static Gson mGson; public static void init(Context context) { L.disableLogging();// enable log or disable log initPrefAndGson(context); initVersionInfo(context); initRequestQueue(context); loadShowImage1(); loadBindInfo(); } private static void initPrefAndGson(Context context) { mPrefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); mEditor = mPrefs.edit(); mGson = new Gson(); } private static void initVersionInfo(Context context) { VERSION_CODE = getVersionCode(context); VERSION_NAME = getVersionName(context); } private static void initRequestQueue(Context context) { mVolleyQueue = Volley.newRequestQueue(context); } private static int getVersionCode(Context context) { try { return VersionUtil.getVersionCode(context); } catch (NameNotFoundException e) { e.printStackTrace(); } return 1; } private static String getVersionName(Context context) { try { return VersionUtil.getVersionName(context); } catch (NameNotFoundException e) { e.printStackTrace(); } return context.getString(R.string.default_version_name); } private static void loadShowImage1() { isShowImage1 = getBoolean(Key.SHOW_IMAGE_1, true); } public static void saveIsShowImage1() { putBoolean(Key.SHOW_IMAGE_1, !isShowImage1); } private static void loadBindInfo() { String json = getString(Key.BIND_INFO, toJson(new BindInfo())); mBindInfo = fromJson(json, BindInfo.class); } public static boolean isBind() { return mBindInfo.isBind(); } public static void bind(BindInfo bindInfo) { saveBindInfo(bindInfo); } public static void unbind() { saveBindInfo(new BindInfo()); } // 绑定或解绑时保存绑定信息 private static void saveBindInfo(BindInfo bindInfo) { mBindInfo.updateBindInfo(bindInfo); String json = toJson(bindInfo); putString(Key.BIND_INFO, json); } public static void putString(String key, String value) { mEditor.putString(key, value).commit(); } public static String getString(String key, String defValue) { return mPrefs.getString(key, defValue); } public static void putBoolean(String key, boolean value) { mEditor.putBoolean(key, value).commit(); } public static boolean getBoolean(String key, boolean defValue) { return mPrefs.getBoolean(key, defValue); } public static String toJson(Object src) { return mGson.toJson(src); } public static <T> T fromJson(String json, Class<T> classOfT) { return mGson.fromJson(json, classOfT); } public static <T> T fromJson(String json, Type typeOfT) { return mGson.fromJson(json, typeOfT); } public static void add(Request<?> request) { mVolleyQueue.add(request); } }