OSDN Git Service

Add MIPS support
[android-x86/external-koush-Superuser.git] / Superuser / src / com / koushikdutta / superuser / Helper.java
1 /*
2  * Copyright (C) 2013 Koushik Dutta (@koush)
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.koushikdutta.superuser;
18
19 import java.lang.reflect.Method;
20
21 import android.annotation.SuppressLint;
22 import android.content.Context;
23 import android.content.pm.PackageInfo;
24 import android.content.pm.PackageManager;
25 import android.graphics.drawable.Drawable;
26 import android.os.UserManager;
27
28 import com.koushikdutta.superuser.util.ImageCache;
29
30 public class Helper {
31     public static Drawable loadPackageIcon(Context context, String pn) {
32         try {
33             PackageManager pm = context.getPackageManager();
34             PackageInfo pi = context.getPackageManager().getPackageInfo(pn, 0);
35             Drawable ret = ImageCache.getInstance().get(pn);
36             if (ret != null)
37                 return ret;
38             ImageCache.getInstance().put(pn, ret = pi.applicationInfo.loadIcon(pm));
39             return ret;
40         }
41         catch (Exception ex) {
42         }
43         return null;
44     }
45
46     @SuppressLint("NewApi")
47     public static boolean supportsMultipleUsers(Context context) {
48         final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
49         try {
50             Method supportsMultipleUsers = UserManager.class.getMethod("supportsMultipleUsers");
51             return (Boolean)supportsMultipleUsers.invoke(um);
52         }
53         catch (Exception ex) {
54             return false;
55         }
56     }
57
58     @SuppressLint("NewApi")
59     public static boolean isAdminUser(Context context) {
60         final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
61         try {
62             Method getUserHandle = UserManager.class.getMethod("getUserHandle");
63             int userHandle = (Integer)getUserHandle.invoke(um);
64             return userHandle == 0;
65         }
66         catch (Exception ex) {
67             return true;
68         }
69     }
70 }