resolve merge conflicts of 696ce1c4a44be6f3c3c340dba2a16c3e8ea628ba to master

Test: I solemnly swear I tested this conflict resolution.
Bug: None
Change-Id: Iab1e8ba7453b3c40421c4ee0fdbf9d8ad70989ce
diff --git a/src/com/android/phone/EmergencyInfoGroup.java b/src/com/android/phone/EmergencyInfoGroup.java
index 73fa92a..898af32 100644
--- a/src/com/android/phone/EmergencyInfoGroup.java
+++ b/src/com/android/phone/EmergencyInfoGroup.java
@@ -30,6 +30,7 @@
 import android.view.View;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import androidx.core.graphics.drawable.RoundedBitmapDrawable;
@@ -46,6 +47,7 @@
 public class EmergencyInfoGroup extends FrameLayout {
     private ImageView mEmergencyInfoImage;
     private TextView mEmergencyInfoName;
+    private TextView mEmergencyInfoHint;
     private View mEmergencyInfoButton;
 
     public EmergencyInfoGroup(Context context, @Nullable AttributeSet attrs) {
@@ -58,6 +60,7 @@
         mEmergencyInfoButton = findViewById(R.id.emergency_info_button);
         mEmergencyInfoImage = (ImageView) findViewById(R.id.emergency_info_image);
         mEmergencyInfoName = (TextView) findViewById(R.id.emergency_info_name);
+        mEmergencyInfoHint = (TextView) findViewById(R.id.emergency_info_hint);
     }
 
     @Override
@@ -68,6 +71,12 @@
         }
     }
 
+    @Override
+    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+        super.onLayout(changed, left, top, right, bottom);
+        updateLayoutHeight();
+    }
+
     private void setupButtonInfo() {
         List<ResolveInfo> infos;
 
@@ -88,6 +97,7 @@
 
             visible = true;
         }
+        mEmergencyInfoName.setText(getUserName());
 
         setVisibility(visible ? View.VISIBLE : View.GONE);
     }
@@ -95,34 +105,19 @@
     /**
      * Get user icon.
      *
-     * @return user icon, or anonymous avatar if user do not set photo.
+     * @return user icon, or default user icon if user do not set photo.
      */
     private Drawable getCircularUserIcon() {
-        final int userId = UserHandle.getCallingUserId();
-
         final UserManager userManager = (UserManager) getContext().getSystemService(
                 Context.USER_SERVICE);
-
-        // get user icon.
-        Bitmap bitmapUserIcon = userManager.getUserIcon(userId);
+        Bitmap bitmapUserIcon = userManager.getUserIcon(UserHandle.getCallingUserId());
 
         if (bitmapUserIcon == null) {
-            // use anonymous avatar.
-            return getContext().getDrawable(R.drawable.logo_avatar_anonymous_120);
+            // get default user icon.
+            final Drawable defaultUserIcon = UserIcons.getDefaultUserIcon(
+                    getContext().getResources(), UserHandle.myUserId(), false);
+            bitmapUserIcon = UserIcons.convertToBitmap(defaultUserIcon);
         }
-
-        // get default user icon.
-        Drawable drawableDefaultUserIcon = UserIcons.getDefaultUserIcon(
-                getContext().getResources(), userId, false);
-        Bitmap bitmapDefaultUserIcon = UserIcons.convertToBitmap(drawableDefaultUserIcon);
-
-        // User icon is default icon that means user do not set photo, replacing default icon
-        // with anonymous avatar on emergency info button.
-        if (bitmapUserIcon.sameAs(bitmapDefaultUserIcon)) {
-            return getContext().getDrawable(R.drawable.logo_avatar_anonymous_120);
-        }
-
-        // set user icon circular.
         RoundedBitmapDrawable drawableUserIcon = RoundedBitmapDrawableFactory.create(
                 getContext().getResources(), bitmapUserIcon);
         drawableUserIcon.setCircular(true);
@@ -130,14 +125,24 @@
         return drawableUserIcon;
     }
 
-    void updateEmergencyInfo(String emergencyInfoName) {
-        if (TextUtils.isEmpty(emergencyInfoName)) {
-            emergencyInfoName = getContext().getString(R.string.emergency_information_owner_hint);
-        }
-        mEmergencyInfoName.setText(emergencyInfoName);
+    private CharSequence getUserName() {
+        final UserManager userManager = (UserManager) getContext().getSystemService(
+                Context.USER_SERVICE);
+        final String userName = userManager.getUserName();
 
-        final String infoNameDescription = getContext().getString(
-                R.string.emergency_information_owner_content_description, emergencyInfoName);
-        mEmergencyInfoName.setContentDescription(infoNameDescription);
+        return TextUtils.isEmpty(userName) ? getContext().getText(
+                R.string.emergency_information_owner_hint) : userName;
     }
-}
\ No newline at end of file
+
+    private void updateLayoutHeight() {
+        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) getLayoutParams();
+        // Update height if mEmergencyInfoHint text line more than 1.
+        // EmergencyInfoGroup max line is 2, eclipse type "end" will be adopt if string too long.
+        params.height =
+                mEmergencyInfoHint.getLineCount() > 1 ? getResources().getDimensionPixelSize(
+                        R.dimen.emergency_info_button_multiline_height)
+                        : getResources().getDimensionPixelSize(
+                                R.dimen.emergency_info_button_singleline_height);
+        setLayoutParams(params);
+    }
+}