Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3e4c3d84 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add user button UX update" into tm-dev

parents 0cdfb990 b8c30c7c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -205,4 +205,7 @@

    <!-- Battery error text color -->
    <color name="battery_info_error_color_black">@*android:color/primary_text_default_material_light</color>

    <!-- Background for multiple user settings page avatars -->
    <color name="user_avatar_color_bg">?androidprv:attr/colorSurface</color>
</resources>
+1 −0
Original line number Diff line number Diff line
@@ -134,6 +134,7 @@
    <dimen name="avatar_length">48dp</dimen>
    <dimen name="avatar_margin_top">56dp</dimen>
    <dimen name="avatar_margin_end">24dp</dimen>
    <dimen name="multiple_users_avatar_size">20dp</dimen>

    <!-- Homepage title -->
    <dimen name="homepage_title_margin_bottom">8dp</dimen>
+1 −1
Original line number Diff line number Diff line
@@ -13625,7 +13625,7 @@
    <!-- Title for default print service main switch. [CHAR LIMIT=50] -->
    <string name="default_print_service_main_switch_title">Use print service</string>
    <!-- Title for multiple users main switch. [CHAR LIMIT=50] -->
    <string name="multiple_users_main_switch_title">Use multiple users</string>
    <string name="multiple_users_main_switch_title">Enable multiple users</string>
    <!-- Title for wireless debugging main switch. [CHAR LIMIT=50] -->
    <string name="wireless_debugging_main_switch_title">Use wireless debugging</string>
    <!-- Title for graphics driver main switch. [CHAR LIMIT=50] -->
+0 −2
Original line number Diff line number Diff line
@@ -40,13 +40,11 @@
    <com.android.settingslib.RestrictedPreference
        android:key="user_add"
        android:title="@string/user_add_user_or_profile_menu"
        android:icon="@drawable/ic_add_40dp"
        android:order="20"/>

    <com.android.settingslib.RestrictedPreference
        android:key="supervised_user_add"
        android:title="@*android:string/supervised_user_creation_label"
        android:icon="@*android:drawable/ic_add_supervised_user"
        android:order="25"/>

    <com.android.settingslib.RestrictedSwitchPreference
+26 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.settings.users;

import static com.android.settingslib.Utils.getColorAttrDefaultColor;

import android.app.Activity;
import android.app.ActivityManager;
import android.app.Dialog;
@@ -31,7 +33,9 @@ import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BlendMode;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
@@ -46,6 +50,7 @@ import android.provider.ContactsContract;
import android.text.TextUtils;
import android.util.Log;
import android.util.SparseArray;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -1123,7 +1128,8 @@ public class UserSettings extends SettingsPreferenceFragment
                && WizardManagerHelper.isDeviceProvisioned(context)
                && mUserCaps.mUserSwitcherEnabled) {
            mAddGuest.setVisible(true);
            mAddGuest.setIcon(getEncircledDefaultIcon());
            Drawable icon = context.getDrawable(R.drawable.ic_account_circle);
            mAddGuest.setIcon(centerAndTint(icon));
            mAddGuest.setSelectable(true);
            if (mGuestUserAutoCreated && mGuestCreationScheduled.get()) {
                mAddGuest.setTitle(com.android.settingslib.R.string.user_guest);
@@ -1140,11 +1146,15 @@ public class UserSettings extends SettingsPreferenceFragment

    private void updateAddUser(Context context) {
        updateAddUserCommon(context, mAddUser, mUserCaps.mCanAddRestrictedProfile);
        Drawable icon = context.getDrawable(R.drawable.ic_account_circle_filled);
        mAddUser.setIcon(centerAndTint(icon));
    }

    private void updateAddSupervisedUser(Context context) {
        if (!TextUtils.isEmpty(mConfigSupervisedUserCreationPackage)) {
            updateAddUserCommon(context, mAddSupervisedUser, false);
            Drawable icon = context.getDrawable(R.drawable.ic_add_supervised_user);
            mAddSupervisedUser.setIcon(centerAndTint(icon));
        } else {
            mAddSupervisedUser.setVisible(false);
        }
@@ -1162,6 +1172,7 @@ public class UserSettings extends SettingsPreferenceFragment
                            || (canAddRestrictedProfile
                            && mUserManager.canAddMoreUsers(UserManager.USER_TYPE_FULL_RESTRICTED));
            addUser.setEnabled(canAddMoreUsers && !mAddingUser && canSwitchUserNow());

            if (!canAddMoreUsers) {
                addUser.setSummary(
                        getString(R.string.user_add_max_count, getRealUsersCount()));
@@ -1177,6 +1188,20 @@ public class UserSettings extends SettingsPreferenceFragment
        }
    }

    private Drawable centerAndTint(Drawable icon) {
        icon.setTintBlendMode(BlendMode.SRC_IN);
        icon.setTint(getColorAttrDefaultColor(getContext(), android.R.attr.textColorPrimary));

        Drawable bg = getContext().getDrawable(R.drawable.user_avatar_bg).mutate();
        LayerDrawable ld = new LayerDrawable(new Drawable[] {bg, icon});
        int size = getContext().getResources().getDimensionPixelSize(
                R.dimen.multiple_users_avatar_size);
        ld.setLayerSize(1, size, size);
        ld.setLayerGravity(1, Gravity.CENTER);

        return ld;
    }

    /**
     * @return number of non-guest non-managed users
     */