package com.shejiaomao.weibo.common; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import com.cattong.commons.Logger; import com.cattong.commons.util.StringUtil; import com.cattong.entity.Passport; import com.cattong.entity.PointsLevel; public class Util { public static String getVersionName(Context context) { String versionName = null; if (context == null) { return versionName; } try { String packageName = context.getPackageName(); PackageManager packageManager = context.getPackageManager(); versionName = packageManager.getPackageInfo(packageName, 0).versionName; } catch (NameNotFoundException e) { Logger.debug(e.getMessage(), e); } return versionName; } public static int getVersionCode(Context context) { int versionCode = 0; if (context == null) { return versionCode; } try { String packageName = context.getPackageName(); PackageManager packageManager = context.getPackageManager(); versionCode = packageManager.getPackageInfo(packageName, 0).versionCode; } catch (NameNotFoundException e) { Logger.debug(e.getMessage(), e); } return versionCode; } public static String getApplicationMetaData(Context context, String metaDataName) { String metaDataValue = null; if (context == null || StringUtil.isEmpty(metaDataName)) { return metaDataValue; } String packageName = context.getPackageName(); ApplicationInfo appInfo; try { PackageManager packageManager = context.getPackageManager(); appInfo = packageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA); Object obj = appInfo.metaData.get(metaDataName); if (obj != null) { metaDataValue = obj.toString(); } } catch (NameNotFoundException e) { Logger.debug(e.getMessage(), e); } return metaDataValue; } public static String getPassportUsername(Context context) { SharedPreferences prefs = context.getSharedPreferences( Constants.PREFS_NAME_APP_SETTING, 0); String username = prefs.getString(Constants.PREFS_NAME_USERNAME, null); return username; } public static String getPassportAccessToken(Context context) { SharedPreferences prefs = context.getSharedPreferences( Constants.PREFS_NAME_APP_SETTING, 0); String accessToken = prefs.getString(Constants.PREFS_NAME_ACCESS_TOKEN, null); return accessToken; } public static String getAccessToken(Context context) { String username = Util.getPassportUsername(context); String accessToken = Util.getPassportAccessToken(context); Logger.debug("username:{}, accessToken:{}", username, accessToken); //return "863020017969605_M2AtaAmCwYwIyXFImz53h7DHwO3yTSu0"; return username + "_" + accessToken; } public static int getPoints(Context context) { SharedPreferences prefs = context.getSharedPreferences( Constants.PREFS_NAME_APP_SETTING, 0); int points = prefs.getInt(Constants.PREFS_NAME_POINTS, 0); return points; } public static int getChannelPoints(Context context, String channel) { SharedPreferences prefs = context.getSharedPreferences( Constants.PREFS_NAME_APP_SETTING, 0); int channelPoints = prefs.getInt(channel, 0); return channelPoints; } public static void setPrefs(Context context, Passport passport) { if (context == null || passport == null) { return; } SharedPreferences prefs = context.getSharedPreferences( Constants.PREFS_NAME_APP_SETTING, 0); Editor editor = prefs.edit(); editor.putString(Constants.PREFS_NAME_EMAIL, passport.getEmail()); //editor.putString(Constants.PREFS_NAME_USERNAME, passport.getUsername()); editor.putInt(Constants.PREFS_NAME_POINTS, passport.getPoints()); editor.putInt(Constants.PREFS_NAME_TOTAL_POINTS, passport.getTotalPoints()); editor.putString(Constants.PREFS_NAME_ACCESS_TOKEN, passport.getAccessToken()); PointsLevel pointsLevel = passport.getPointsLevel(); if (pointsLevel != null) { editor.putString(Constants.PREFS_NAME_POINTS_TITLE, pointsLevel.getTitle()); editor.putString(Constants.PREFS_NAME_MILITARY_RANK, pointsLevel.getMilitaryRank()); } editor.commit(); } public static String getPromoterId(Context context) { return getApplicationMetaData(context, "PROMOTER_ID"); } }