/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.util; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.HashMap; import java.util.Map; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.Signature; import android.net.Uri; import android.util.Base64; import android.util.Log; import com.galaxy.meetup.client.android.network.ApiaryApiInfo; /** * * @author sihai * */ public class PlatformContractUtils { public static Map getCallingPackageAnalytics(ApiaryApiInfo apiaryapiinfo) { HashMap hashmap = new HashMap(); if(apiaryapiinfo != null && apiaryapiinfo.getSourceInfo() != null) hashmap.put("CONTAINER_URL", getContainerUrl(apiaryapiinfo)); return hashmap; } public static String getCertificate(String s, PackageManager packagemanager) { String s1; PackageInfo packageinfo; Signature asignature[]; try { packageinfo = packagemanager.getPackageInfo(s, 64); asignature = packageinfo.signatures; s1 = null; if(null != asignature) { int i = packageinfo.signatures.length; s1 = null; if(i > 0) { try { byte abyte0[]; MessageDigest messagedigest; abyte0 = packageinfo.signatures[0].toByteArray(); messagedigest = MessageDigest.getInstance("SHA1"); if(messagedigest != null) { String s2; byte abyte1[] = messagedigest.digest(abyte0); if(null != abyte1) { s2 = Base64.encodeToString(abyte1, 2); s1 = s2; } } else { s1 = null; } } catch (NoSuchAlgorithmException nosuchalgorithmexception) { if(EsLog.isLoggable("PlatformContractUtils", 5)) { Log.w("PlatformContractUtils", "Unable to compute digest, returning zeros"); } s1 = null; } } } } catch(android.content.pm.PackageManager.NameNotFoundException namenotfoundexception) { if(EsLog.isLoggable("PlatformContractUtils", 5)) { Log.w("PlatformContractUtils", "Unable to get package info, returning zeros"); } s1 = null; } if(s1 == null) s1 = "0"; return s1; } public static String getContainerUrl(ApiaryApiInfo apiaryapiinfo) { if(apiaryapiinfo.getSourceInfo() != null) apiaryapiinfo = apiaryapiinfo.getSourceInfo(); String s; String s1; String s2; String s3; android.net.Uri.Builder builder; if(apiaryapiinfo.getCertificate() != null) s = apiaryapiinfo.getCertificate(); else s = "0"; s1 = apiaryapiinfo.getClientId(); s2 = apiaryapiinfo.getApiKey(); s3 = apiaryapiinfo.getPackageName(); builder = Uri.parse((new StringBuilder("http://")).append(Uri.encode(s)).append(".apps.googleusercontent.com/").toString()).buildUpon(); if(s1 != null) builder.appendQueryParameter("client_id", s1); if(s2 != null) builder.appendQueryParameter("api_key", s2); if(s3 != null) builder.appendQueryParameter("pkg", s3); return builder.build().toString(); } }