/** * */ package com.taobao.top.android; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import org.json.JSONObject; import android.content.Context; import android.os.Bundle; import android.provider.Settings.Secure; import android.telephony.TelephonyManager; import com.taobao.top.android.auth.AccessToken; import com.taobao.top.android.auth.RefreshToken; public class TOPUtils { public static String getDeviceId(Context context) { String deviceId = null; TelephonyManager manager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); if (manager != null) { deviceId = manager.getDeviceId(); } if (deviceId != null) { return "IMEI:" + deviceId; } deviceId = Secure.getString(context.getContentResolver(), Secure.ANDROID_ID); if (deviceId != null) { return "ANDROID:" + deviceId; } deviceId = Installation.id(context); return "UUID:" + deviceId; } public static AccessToken convertToAccessToken(JSONObject json) { AccessToken token = new AccessToken(); token.setValue(json.optString(AccessToken.KEY_ACCESS_TOKEN)); json.remove(AccessToken.KEY_ACCESS_TOKEN); token.setExpiresIn(json.optLong(AccessToken.KEY_EXPIRES_IN)); json.remove(AccessToken.KEY_EXPIRES_IN); token.setTokenType(json.optString(AccessToken.KEY_TOKEN_TYPE)); json.remove(AccessToken.KEY_TOKEN_TYPE); RefreshToken refreshToken = new RefreshToken(); refreshToken.setValue(json.optString(AccessToken.KEY_REFRESH_TOKEN)); json.remove(AccessToken.KEY_REFRESH_TOKEN); refreshToken.setReExpiresIn(json.optLong(AccessToken.KEY_RE_EXPIRES_IN)); json.remove(AccessToken.KEY_RE_EXPIRES_IN); token.setRefreshToken(refreshToken); @SuppressWarnings("unchecked") Iterator<String> keys = json.keys(); if (keys != null) { Map<String, String> additionalInformation = new HashMap<String, String>(); while(keys.hasNext()){ String key=keys.next(); additionalInformation.put(key, json.optString(key)); } token.setAdditionalInformation(additionalInformation); } return token; } public static AccessToken convertToAccessToken(Bundle values) { AccessToken token = new AccessToken(); token.setValue(values.getString(AccessToken.KEY_ACCESS_TOKEN)); values.remove(AccessToken.KEY_ACCESS_TOKEN); token.setExpiresIn(Long.valueOf(values .getString(AccessToken.KEY_EXPIRES_IN))); values.remove(AccessToken.KEY_EXPIRES_IN); token.setTokenType(values.getString(AccessToken.KEY_TOKEN_TYPE)); values.remove(AccessToken.KEY_TOKEN_TYPE); RefreshToken refreshToken = new RefreshToken(); refreshToken.setValue(values.getString(AccessToken.KEY_REFRESH_TOKEN)); values.remove(AccessToken.KEY_REFRESH_TOKEN); refreshToken.setReExpiresIn(Long.valueOf(values .getString(AccessToken.KEY_RE_EXPIRES_IN))); values.remove(AccessToken.KEY_RE_EXPIRES_IN); token.setRefreshToken(refreshToken); Set<String> keys = values.keySet(); if (keys != null) { Map<String, String> additionalInformation = new HashMap<String, String>(); for (String key : keys) { additionalInformation.put(key, values.getString(key)); } token.setAdditionalInformation(additionalInformation); } return token; } }