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

Commit 6e2d093d authored by Ioana Alexandru's avatar Ioana Alexandru Committed by Android (Google) Code Review
Browse files

Merge changes I51d4c34c,Ifa63ae58,Ice6fa50e into main

* changes:
  [Notif redesign] Update size and position of conversation icon badge
  [Notif redesign] Update Call/ConversationLayout alignment to new icon size
  [Notif redesign] Update conversation icon sizes
parents 5b127080 37507ae2
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import android.util.AttributeSet;
import android.view.RemotableViewMethod;
import android.widget.FrameLayout;
import android.widget.RemoteViews;
import android.widget.TextView;
import android.widget.flags.Flags;

import com.android.internal.R;
@@ -59,7 +58,6 @@ public class CallLayout extends FrameLayout {
    private CachingIconView mConversationIconView;
    private CachingIconView mIcon;
    private CachingIconView mConversationIconBadgeBg;
    private TextView mConversationText;

    public CallLayout(@NonNull Context context) {
        super(context);
@@ -83,7 +81,6 @@ public class CallLayout extends FrameLayout {
    protected void onFinishInflate() {
        super.onFinishInflate();
        mPeopleHelper.init(getContext());
        mConversationText = findViewById(R.id.conversation_text);
        mConversationIconView = findViewById(R.id.conversation_icon);
        mIcon = findViewById(R.id.icon);
        mConversationIconBadgeBg = findViewById(R.id.conversation_icon_badge_bg);
+41 −28
Original line number Diff line number Diff line
@@ -777,6 +777,8 @@ public class ConversationLayout extends FrameLayout

        }

        if (!notificationsRedesignTemplates()) {
            // We no longer need to update the size based on expansion state.
            int conversationAvatarSize;
            int facepileAvatarSize;
            int facePileBackgroundSize;
@@ -809,6 +811,7 @@ public class ConversationLayout extends FrameLayout
            layoutParams.height = facePileBackgroundSize;
            bottomBackground.setLayoutParams(layoutParams);
        }
    }

    /**
     * Binds group avatar drawables to face pile.
@@ -832,6 +835,11 @@ public class ConversationLayout extends FrameLayout
     * update the icon position and sizing
     */
    private void updateIconPositionAndSize() {
        if (notificationsRedesignTemplates()) {
            // Icon size is fixed in the redesign.
            return;
        }

        int badgeProtrusion;
        int conversationAvatarSize;
        if (mIsOneToOne || mIsCollapsed) {
@@ -864,6 +872,11 @@ public class ConversationLayout extends FrameLayout
    }

    private void updatePaddingsBasedOnContentAvailability() {
        if (notificationsRedesignTemplates()) {
            // group icons have the same size as 1:1 conversations
            return;
        }

        // groups have avatars that need more spacing
        mMessagingLinearLayout.setSpacing(
                mIsOneToOne ? mMessageSpacingStandard : mMessageSpacingGroup);
+6 −6
Original line number Diff line number Diff line
@@ -18,14 +18,14 @@
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/conversation_face_pile"
    android:layout_width="@dimen/conversation_avatar_size"
    android:layout_height="@dimen/conversation_avatar_size"
    android:layout_width="@dimen/notification_2025_icon_circle_size"
    android:layout_height="@dimen/notification_2025_icon_circle_size"
    android:forceHasOverlappingRendering="false"
    >
    <ImageView
        android:id="@+id/conversation_face_pile_top"
        android:layout_width="@dimen/messaging_avatar_size"
        android:layout_height="@dimen/messaging_avatar_size"
        android:layout_width="@dimen/notification_2025_face_pile_avatar_size"
        android:layout_height="@dimen/notification_2025_face_pile_avatar_size"
        android:scaleType="centerCrop"
        android:layout_gravity="end|top"
        android:background="@drawable/notification_icon_circle"
@@ -43,8 +43,8 @@
            />
        <ImageView
            android:id="@+id/conversation_face_pile_bottom"
            android:layout_width="@dimen/messaging_avatar_size"
            android:layout_height="@dimen/messaging_avatar_size"
            android:layout_width="@dimen/notification_2025_face_pile_avatar_size"
            android:layout_height="@dimen/notification_2025_face_pile_avatar_size"
            android:scaleType="centerCrop"
            android:layout_gravity="center"
            android:background="@drawable/notification_icon_circle"
+171 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2024 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License
  -->

<com.android.internal.widget.ConversationHeaderLinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/conversation_header"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingTop="@dimen/notification_2025_margin"
    >

    <TextView
        android:id="@+id/conversation_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Title"
        android:textSize="16sp"
        android:singleLine="true"
        android:layout_weight="1"
        />

    <TextView
        android:id="@+id/app_name_divider"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Info"
        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
        android:text="@string/notification_header_divider_symbol"
        android:singleLine="true"
        android:visibility="gone"
        />

    <!-- App Name -->
    <com.android.internal.widget.ObservableTextView
        android:id="@+id/app_name_text"
        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
        android:singleLine="true"
        android:visibility="gone"
        />

    <TextView
        android:id="@+id/time_divider"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Info"
        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
        android:text="@string/notification_header_divider_symbol"
        android:singleLine="true"
        android:visibility="gone"
        />

    <DateTimeView
        android:id="@+id/time"
        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
        android:showRelative="true"
        android:singleLine="true"
        android:visibility="gone"
        />

    <ViewStub
        android:id="@+id/chronometer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
        android:layout="@layout/notification_template_part_chronometer"
        android:visibility="gone"
        />

    <TextView
        android:id="@+id/verification_divider"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Info"
        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
        android:text="@string/notification_header_divider_symbol"
        android:singleLine="true"
        android:visibility="gone"
        />

    <ImageView
        android:id="@+id/verification_icon"
        android:layout_width="@dimen/notification_verification_icon_size"
        android:layout_height="@dimen/notification_verification_icon_size"
        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
        android:baseline="10dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_notifications_alerted"
        android:visibility="gone"
        />

    <TextView
        android:id="@+id/verification_text"
        android:textAppearance="@style/TextAppearance.DeviceDefault.Notification.Info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
        android:layout_weight="100"
        android:showRelative="true"
        android:singleLine="true"
        android:visibility="gone"
        />

    <ImageButton
        android:id="@+id/feedback"
        android:layout_width="@dimen/notification_feedback_size"
        android:layout_height="@dimen/notification_feedback_size"
        android:layout_marginStart="@dimen/notification_header_separating_margin"
        android:background="?android:selectableItemBackgroundBorderless"
        android:contentDescription="@string/notification_feedback_indicator"
        android:baseline="13dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_feedback_indicator"
        android:visibility="gone"
        />

    <ImageView
        android:id="@+id/phishing_alert"
        android:layout_width="@dimen/notification_phishing_alert_size"
        android:layout_height="@dimen/notification_phishing_alert_size"
        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
        android:baseline="10dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_dialog_alert_material"
        android:visibility="gone"
        android:contentDescription="@string/notification_phishing_alert_content_description"
        />

    <ImageView
        android:id="@+id/profile_badge"
        android:layout_width="@dimen/notification_badge_size"
        android:layout_height="@dimen/notification_badge_size"
        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
        android:baseline="10dp"
        android:scaleType="fitCenter"
        android:visibility="gone"
        android:contentDescription="@string/notification_work_profile_content_description"
        />

    <ImageView
        android:id="@+id/alerted_icon"
        android:layout_width="@dimen/notification_alerted_size"
        android:layout_height="@dimen/notification_alerted_size"
        android:layout_marginStart="@dimen/notification_conversation_header_separating_margin"
        android:baseline="10dp"
        android:contentDescription="@string/notification_alerted_content_description"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_notifications_alerted"
        android:visibility="gone"
        />
</com.android.internal.widget.ConversationHeaderLinearLayout>
+19 −18
Original line number Diff line number Diff line
@@ -18,32 +18,27 @@
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/conversation_icon_container"
    android:layout_width="@dimen/conversation_content_start"
    android:layout_width="@dimen/notification_2025_content_margin_start"
    android:layout_height="wrap_content"
    android:gravity="start|top"
    android:clipChildren="false"
    android:clipToPadding="false"
    android:paddingTop="20dp"
    android:paddingBottom="16dp"
    android:importantForAccessibility="no"
    >

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/notification_2025_margin"
        android:clipChildren="false"
        android:clipToPadding="false"
        android:layout_gravity="top|center_horizontal"
        >

        <!-- Big icon: 48x48, 12dp padding top, 16dp padding sides -->
        <com.android.internal.widget.CachingIconView
            android:id="@+id/conversation_icon"
            android:layout_width="@dimen/conversation_avatar_size"
            android:layout_height="@dimen/conversation_avatar_size"
            android:layout_marginLeft="@dimen/conversation_badge_protrusion"
            android:layout_marginRight="@dimen/conversation_badge_protrusion"
            android:layout_marginBottom="@dimen/conversation_badge_protrusion"
            android:layout_width="@dimen/notification_2025_icon_circle_size"
            android:layout_height="@dimen/notification_2025_icon_circle_size"
            android:background="@drawable/notification_icon_circle"
            android:clipToOutline="true"
            android:scaleType="centerCrop"
@@ -52,19 +47,25 @@

        <ViewStub
            android:layout="@layout/notification_2025_conversation_face_pile_layout"
            android:layout_width="@dimen/conversation_avatar_size"
            android:layout_height="@dimen/conversation_avatar_size"
            android:layout_marginLeft="@dimen/conversation_badge_protrusion"
            android:layout_marginRight="@dimen/conversation_badge_protrusion"
            android:layout_marginBottom="@dimen/conversation_badge_protrusion"
            android:layout_width="@dimen/notification_2025_icon_circle_size"
            android:layout_height="@dimen/notification_2025_icon_circle_size"
            android:id="@+id/conversation_face_pile"
            />

        <!-- The badge icon is visually aligned to the square containing the conversation icon,
        but it has a border in the color of the background that is meant to delimit it from the
        conversation icon. This border, although not visible due to the color, is technically
        outside these bounds.
        In order to align the badge properly to the bottom end of the square, we use a top/start
        margin that is equal to (size of the conversation icon - size of the badge - size of the
        border on one side).
        -->
        <FrameLayout
            android:id="@+id/conversation_icon_badge"
            android:layout_width="@dimen/conversation_icon_size_badged"
            android:layout_height="@dimen/conversation_icon_size_badged"
            android:layout_gravity="end|bottom"
            android:layout_width="@dimen/notification_2025_conversation_icon_badge_size"
            android:layout_height="@dimen/notification_2025_conversation_icon_badge_size"
            android:layout_marginTop="@dimen/notification_2025_conversation_icon_badge_position"
            android:layout_marginStart="@dimen/notification_2025_conversation_icon_badge_position"
            android:clipChildren="false"
            android:clipToPadding="false"
            >
@@ -83,7 +84,7 @@
                android:id="@+id/icon"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_margin="4dp"
                android:layout_margin="@dimen/notification_2025_conversation_icon_badge_padding"
                android:layout_gravity="center"
                android:forceHasOverlappingRendering="false"
                />
Loading