Utils.java revision 30275c1924b2bd45b05bd9c98f8648ecbc71374f
130275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liupackage com.android.settingslib;
230275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu
330275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liuimport android.content.Context;
430275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liuimport android.content.pm.UserInfo;
530275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liuimport android.graphics.Bitmap;
630275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liuimport android.graphics.BitmapFactory;
730275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liuimport android.graphics.drawable.Drawable;
830275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liuimport android.net.ConnectivityManager;
930275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liuimport android.os.UserManager;
1030275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu
1130275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liuimport com.android.internal.util.UserIcons;
1230275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liuimport com.android.settingslib.drawable.CircleFramedDrawable;
1330275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu
1430275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liupublic final class Utils {
1530275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu
1630275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu    /**
1730275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu     * Return string resource that best describes combination of tethering
1830275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu     * options available on this device.
1930275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu     */
2030275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu    public static int getTetheringLabel(ConnectivityManager cm) {
2130275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        String[] usbRegexs = cm.getTetherableUsbRegexs();
2230275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        String[] wifiRegexs = cm.getTetherableWifiRegexs();
2330275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        String[] bluetoothRegexs = cm.getTetherableBluetoothRegexs();
2430275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu
2530275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        boolean usbAvailable = usbRegexs.length != 0;
2630275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        boolean wifiAvailable = wifiRegexs.length != 0;
2730275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        boolean bluetoothAvailable = bluetoothRegexs.length != 0;
2830275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu
2930275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        if (wifiAvailable && usbAvailable && bluetoothAvailable) {
3030275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            return R.string.tether_settings_title_all;
3130275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        } else if (wifiAvailable && usbAvailable) {
3230275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            return R.string.tether_settings_title_all;
3330275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        } else if (wifiAvailable && bluetoothAvailable) {
3430275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            return R.string.tether_settings_title_all;
3530275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        } else if (wifiAvailable) {
3630275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            return R.string.tether_settings_title_wifi;
3730275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        } else if (usbAvailable && bluetoothAvailable) {
3830275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            return R.string.tether_settings_title_usb_bluetooth;
3930275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        } else if (usbAvailable) {
4030275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            return R.string.tether_settings_title_usb;
4130275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        } else {
4230275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            return R.string.tether_settings_title_bluetooth;
4330275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        }
4430275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu    }
4530275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu
4630275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu    /**
4730275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu     * Returns a label for the user, in the form of "User: user name" or "Work profile".
4830275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu     */
4930275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu    public static String getUserLabel(Context context, UserInfo info) {
5030275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        String name = info != null ? info.name : null;
5130275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        if (info.isManagedProfile()) {
5230275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            // We use predefined values for managed profiles
5330275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            return context.getString(R.string.managed_user_title);
5430275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        } else if (info.isGuest()) {
5530275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            name = context.getString(R.string.user_guest);
5630275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        }
5730275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        if (name == null && info != null) {
5830275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            name = Integer.toString(info.id);
5930275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        } else if (info == null) {
6030275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            name = context.getString(R.string.unknown);
6130275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        }
6230275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        return context.getResources().getString(R.string.running_process_item_user_label, name);
6330275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu    }
6430275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu
6530275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu    /**
6630275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu     * Returns a circular icon for a user.
6730275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu     */
6830275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu    public static Drawable getUserIcon(Context context, UserManager um, UserInfo user) {
6930275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        if (user.isManagedProfile()) {
7030275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            // We use predefined values for managed profiles
7130275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            Bitmap b = BitmapFactory.decodeResource(context.getResources(),
7230275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu                    com.android.internal.R.drawable.ic_corp_icon);
7330275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            return CircleFramedDrawable.getInstance(context, b);
7430275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        }
7530275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        if (user.iconPath != null) {
7630275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            Bitmap icon = um.getUserIcon(user.id);
7730275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            if (icon != null) {
7830275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu                return CircleFramedDrawable.getInstance(context, icon);
7930275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu            }
8030275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        }
8130275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu        return CircleFramedDrawable.getInstance(context, UserIcons.convertToBitmap(
8230275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu                UserIcons.getDefaultUserIcon(user.id, /* light= */ false)));
8330275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu    }
8430275c1924b2bd45b05bd9c98f8648ecbc71374fWei Liu}
85