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

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

Merge "Fix bug when pressing the add user cancel button results in a black...

Merge "Fix bug when pressing the add user cancel button results in a black screen Test: Tested on Mojave Bug: 80187163 Change-Id: Ie46c228dea9de71b97a276f7e4f2d60fe98649b6"
parents 5b674f6a a7096003
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -23,15 +23,13 @@
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    >
    android:gravity="center">

    <ImageView android:id="@+id/user_avatar"
        android:layout_width="@dimen/car_user_switcher_image_avatar_size"
        android:layout_height="@dimen/car_user_switcher_image_avatar_size"
        android:background="@drawable/car_button_ripple_background_inverse"
        android:gravity="center"
        />
        android:gravity="center"/>

    <TextView android:id="@+id/user_name"
        android:layout_width="match_parent"
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@
            android:id="@+id/user_grid"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="@dimen/car_user_switcher_margin_top"
            app:verticallyCenterListContent="true"
            app:dayNightStyle="force_night"
            app:showPagedListViewDivider="false"
+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
    <dimen name="car_user_switcher_image_avatar_size">@dimen/car_large_avatar_size</dimen>
    <dimen name="car_user_switcher_vertical_spacing_between_users">@dimen/car_padding_5</dimen>
    <dimen name="car_user_switcher_vertical_spacing_between_name_and_avatar">@dimen/car_padding_4</dimen>
    <dimen name="car_user_switcher_margin_top">@dimen/car_padding_4</dimen>

    <dimen name="car_navigation_button_width">64dp</dimen>
    <dimen name="car_navigation_bar_width">760dp</dimen>
+23 −10
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.statusbar.car;

import static android.content.DialogInterface.BUTTON_NEGATIVE;
import static android.content.DialogInterface.BUTTON_POSITIVE;

import android.app.AlertDialog;
@@ -28,7 +29,6 @@ import android.content.res.Resources;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.UserHandle;
import androidx.recyclerview.widget.RecyclerView;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
@@ -37,9 +37,10 @@ import android.widget.ImageView;
import android.widget.TextView;

import androidx.car.widget.PagedListView;

import androidx.core.graphics.drawable.RoundedBitmapDrawable;
import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
import androidx.recyclerview.widget.RecyclerView;

import com.android.internal.util.UserIcons;
import com.android.settingslib.users.UserManagerHelper;
import com.android.systemui.R;
@@ -166,6 +167,9 @@ public class UserGridRecyclerView extends PagedListView implements
        private AlertDialog mDialog;
        // View that holds the add user button.  Used to enable/disable the view
        private View mAddUserView;
        // User record for the add user.  Need to call notifyUserSelected only if the user
        // confirms adding a user
        private UserRecord mAddUserRecord;

        public UserAdapter(Context context, List<UserRecord> users) {
            mRes = context.getResources();
@@ -200,18 +204,16 @@ public class UserGridRecyclerView extends PagedListView implements
            circleIcon.setCircular(true);
            holder.mUserAvatarImageView.setImageDrawable(circleIcon);
            holder.mUserNameTextView.setText(userRecord.mInfo.name);

            holder.mView.setOnClickListener(v -> {
                if (userRecord == null) {
                    return;
                }

                // Notify the listener which user was selected
                if (mUserSelectionListener != null) {
                    mUserSelectionListener.onUserSelected(userRecord);
                }

                // If the user selects Guest, start the guest session.
                if (userRecord.mIsStartGuestSession) {
                    notifyUserSelected(userRecord);
                    mUserManagerHelper.startNewGuestSession(mGuestName);
                    return;
                }
@@ -227,6 +229,7 @@ public class UserGridRecyclerView extends PagedListView implements
                        .concat(System.getProperty("line.separator"))
                        .concat(mRes.getString(R.string.user_add_user_message_update));

                    mAddUserRecord = userRecord;
                    mDialog = new Builder(mContext, R.style.Theme_Car_Dark_Dialog_Alert)
                        .setTitle(R.string.user_add_user_title)
                        .setMessage(message)
@@ -239,11 +242,19 @@ public class UserGridRecyclerView extends PagedListView implements
                    return;
                }
                // If the user doesn't want to be a guest or add a user, switch to the user selected
                notifyUserSelected(userRecord);
                mUserManagerHelper.switchToUser(userRecord.mInfo);
            });

        }

        private void notifyUserSelected(UserRecord userRecord) {
            // Notify the listener which user was selected
            if (mUserSelectionListener != null) {
                mUserSelectionListener.onUserSelected(userRecord);
            }
        }

        private Bitmap getUserRecordIcon(UserRecord userRecord) {
            if (userRecord.mIsStartGuestSession) {
                return mUserManagerHelper.getGuestDefaultIcon();
@@ -259,12 +270,14 @@ public class UserGridRecyclerView extends PagedListView implements

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // Enable the add button
            if (which == BUTTON_POSITIVE) {
                notifyUserSelected(mAddUserRecord);
                new AddNewUserTask().execute(mNewUserName);
            } else if (which == BUTTON_NEGATIVE) {
                // Enable the add button only if cancel
                if (mAddUserView != null) {
                    mAddUserView.setEnabled(true);
                }
            if (which == BUTTON_POSITIVE) {
                new AddNewUserTask().execute(mNewUserName);
            }
        }