14cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandlerpackage js.kbars; 24cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler 34cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandlerimport android.content.Context; 44cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandlerimport android.content.pm.PackageManager.NameNotFoundException; 54cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandlerimport android.util.DisplayMetrics; 64cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandlerimport android.view.WindowManager; 74cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandlerimport java.lang.reflect.Field; 84cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler 94cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandlerpublic class Util { 104cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler public static String logTag(Class<?> c) { 114cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler return "kbars." + c.getSimpleName(); 124cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler } 134cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler 144cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler public static Object getField(Object obj, String fieldName) { 154cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler Class<?> c = obj.getClass(); 164cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler try { 174cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler if (obj instanceof String) { 184cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler c = c.getClassLoader().loadClass((String) obj); 194cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler obj = null; 204cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler } 214cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler Field f = c.getDeclaredField(fieldName); 224cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler f.setAccessible(true); 234cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler return f.get(obj); 244cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler } catch (Throwable t) { 254cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler throw new RuntimeException(t); 264cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler } 274cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler } 284cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler 294cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler public static int getDensityDpi(Context context) { 304cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler DisplayMetrics metrics = new DisplayMetrics(); 314cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler ((WindowManager) context.getSystemService("window")).getDefaultDisplay().getMetrics(metrics); 324cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler return metrics.densityDpi; 334cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler } 344cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler 354cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler public static String getVersionName(Context context) { 364cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler try { 374cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName; 384cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler } catch (NameNotFoundException e) { 394cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler throw new RuntimeException(e); 404cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler } 414cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler } 424cb0d34ba8edb5affdd0bcf76905571b8624c68cDan Sandler} 43