OSDN Git Service

57a71b1648ec98a0f0fb000cf9855cd0e3d1af27
[android-x86/external-koush-Superuser.git] / Superuser / src / com / koushikdutta / superuser / Helper.java
1 package com.koushikdutta.superuser;
2
3 import java.lang.reflect.Method;
4
5 import android.annotation.SuppressLint;
6 import android.content.Context;
7 import android.content.pm.PackageInfo;
8 import android.content.pm.PackageManager;
9 import android.graphics.drawable.Drawable;
10 import android.os.UserManager;
11
12 import com.koushikdutta.superuser.util.ImageCache;
13
14 public class Helper {
15     public static Drawable loadPackageIcon(Context context, String pn) {
16         try {
17             PackageManager pm = context.getPackageManager();
18             PackageInfo pi = context.getPackageManager().getPackageInfo(pn, 0);
19             Drawable ret = ImageCache.getInstance().get(pn);
20             if (ret != null)
21                 return ret;
22             ImageCache.getInstance().put(pn, ret = pi.applicationInfo.loadIcon(pm));
23             return ret;
24         }
25         catch (Exception ex) {
26         }
27         return null;
28     }
29
30     @SuppressLint("NewApi")
31     public static boolean supportsMultipleUsers(Context context) {
32         final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
33         try {
34             Method supportsMultipleUsers = UserManager.class.getMethod("supportsMultipleUsers");
35             return (Boolean)supportsMultipleUsers.invoke(um);
36         }
37         catch (Exception ex) {
38             return false;
39         }
40     }
41
42     @SuppressLint("NewApi")
43     public static boolean isAdminUser(Context context) {
44         final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
45         try {
46             Method getUserHandle = UserManager.class.getMethod("getUserHandle");
47             int userHandle = (Integer)getUserHandle.invoke(um);
48             return userHandle == 0;
49         }
50         catch (Exception ex) {
51             return true;
52         }
53     }
54 }