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

Commit 0c1e1892 authored by Flavio Fiszman's avatar Flavio Fiszman Committed by Android (Google) Code Review
Browse files

Merge "Add messages count to all layouts" into sc-dev

parents 1cdf7f30 f2c2ef43
Loading
Loading
Loading
Loading
+39 −16
Original line number Diff line number Diff line
@@ -22,9 +22,15 @@
    android:padding="16dp"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="start|top">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:gravity="start|top"
            android:orientation="horizontal">

@@ -44,6 +50,23 @@
                android:background="@drawable/circle_green_10dp" />
        </LinearLayout>

        <TextView
            android:id="@+id/messages_count"
            android:layout_alignParentEnd="true"
            android:paddingStart="8dp"
            android:paddingEnd="8dp"
            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.ListItem"
            android:textColor="?android:attr/textColorPrimary"
            android:background="@drawable/people_space_messages_count_background"
            android:textSize="14sp"
            android:maxLines="1"
            android:ellipsize="end"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            />
    </RelativeLayout>

    <TextView
        android:layout_gravity="center"
        android:id="@+id/name"
+19 −3
Original line number Diff line number Diff line
@@ -33,20 +33,36 @@
            android:layout_gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
            android:layout_weight="1"
            android:paddingBottom="4dp"/>

        <ImageView
            android:id="@+id/predefined_icon"
            android:layout_gravity="center"
            android:paddingTop="4dp"
            android:layout_width="18dp"
            android:layout_height="22dp"
            android:layout_weight="1" />

        <TextView
            android:id="@+id/messages_count"
            android:layout_gravity="center"
            android:paddingStart="8dp"
            android:paddingEnd="8dp"
            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.ListItem"
            android:textColor="?android:attr/textColorPrimary"
            android:background="@drawable/people_space_messages_count_background"
            android:textSize="14sp"
            android:maxLines="1"
            android:ellipsize="end"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:layout_weight="1"
            />

        <TextView
            android:id="@+id/name"
            android:layout_gravity="center"
            android:paddingTop="4dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
+4 −1
Original line number Diff line number Diff line
@@ -361,10 +361,13 @@ class PeopleTileViewHelper {
            views.setViewVisibility(R.id.image, View.GONE);
            views.setImageViewResource(R.id.predefined_icon, R.drawable.ic_message);
        }
        if (mTile.getMessagesCount() > 1 && mLayoutSize == LAYOUT_MEDIUM) {
        if (mTile.getMessagesCount() > 1) {
            views.setViewVisibility(R.id.messages_count, View.VISIBLE);
            views.setTextViewText(R.id.messages_count,
                    getMessagesCountText(mTile.getMessagesCount()));
            if (mLayoutSize == LAYOUT_SMALL) {
                views.setViewVisibility(R.id.predefined_icon, View.GONE);
            }
        }
        // TODO: Set subtext as Group Sender name once storing the name in PeopleSpaceTile and
        //  subtract 1 from maxLines when present.
+57 −7
Original line number Diff line number Diff line
@@ -453,6 +453,9 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
        assertEquals(statusContent.getText(), NOTIFICATION_CONTENT);
        assertThat(statusContent.getMaxLines()).isEqualTo(3);

        // Has a single message, no count shown.
        assertEquals(View.GONE, result.findViewById(R.id.messages_count).getVisibility());

        mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
                getSizeInDp(R.dimen.required_width_for_medium) - 1);
        RemoteViews smallView = new PeopleTileViewHelper(mContext,
@@ -492,6 +495,10 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
        assertEquals(View.VISIBLE, statusContent.getVisibility());
        assertEquals(statusContent.getText(), NOTIFICATION_CONTENT);
        assertThat(statusContent.getMaxLines()).isEqualTo(3);

        // Has a single message, no count shown.
        assertEquals(View.GONE, result.findViewById(R.id.messages_count).getVisibility());

    }

    @Test
@@ -507,19 +514,62 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {

        TextView name = (TextView) result.findViewById(R.id.name);
        assertEquals(name.getText(), NAME);
        TextView subtext = (TextView) result.findViewById(R.id.subtext);
        assertEquals(View.GONE, subtext.getVisibility());
        assertEquals(View.GONE, result.findViewById(R.id.subtext).getVisibility());
        assertEquals(View.GONE, result.findViewById(R.id.predefined_icon).getVisibility());
        // Has availability.
        View availability = result.findViewById(R.id.availability);
        assertEquals(View.VISIBLE, availability.getVisibility());
        assertEquals(View.VISIBLE, result.findViewById(R.id.availability).getVisibility());
        // Has person icon.
        View personIcon = result.findViewById(R.id.person_icon);
        assertEquals(View.VISIBLE, personIcon.getVisibility());
        assertEquals(View.VISIBLE, result.findViewById(R.id.person_icon).getVisibility());
        // Has notification content.
        TextView statusContent = (TextView) result.findViewById(R.id.text_content);
        assertEquals(View.VISIBLE, statusContent.getVisibility());
        assertEquals(statusContent.getText(), NOTIFICATION_CONTENT);
        assertThat(statusContent.getMaxLines()).isEqualTo(3);

        // Has two messages, show count.
        assertEquals(View.VISIBLE, result.findViewById(R.id.messages_count).getVisibility());

        mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
                getSizeInDp(R.dimen.required_width_for_medium) - 1);
        RemoteViews smallView = new PeopleTileViewHelper(mContext,
                tileWithStatusAndNotification, 0, mOptions).getViews();
        View smallResult = smallView.apply(mContext, null);

        // Show icon instead of name.
        assertEquals(View.GONE, smallResult.findViewById(R.id.name).getVisibility());
        assertEquals(View.GONE,
                smallResult.findViewById(R.id.predefined_icon).getVisibility());
        // Has person icon.
        assertEquals(View.VISIBLE,
                smallResult.findViewById(R.id.person_icon).getVisibility());

        // Has two messages, show count.
        assertEquals(View.VISIBLE, result.findViewById(R.id.messages_count).getVisibility());

        mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
                getSizeInDp(R.dimen.required_width_for_large));
        mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
                getSizeInDp(R.dimen.required_height_for_large));
        RemoteViews largeView = new PeopleTileViewHelper(mContext,
                tileWithStatusAndNotification, 0, mOptions).getViews();
        View largeResult = largeView.apply(mContext, null);

        name = (TextView) largeResult.findViewById(R.id.name);
        assertEquals(name.getText(), NAME);
        assertEquals(View.GONE, largeResult.findViewById(R.id.subtext).getVisibility());
        assertEquals(View.GONE, largeResult.findViewById(R.id.predefined_icon).getVisibility());
        // Has availability.
        assertEquals(View.VISIBLE, largeResult.findViewById(R.id.availability).getVisibility());
        // Has person icon.
        View personIcon = largeResult.findViewById(R.id.person_icon);
        assertEquals(View.VISIBLE, personIcon.getVisibility());
        // Has notification content.
        statusContent = (TextView) largeResult.findViewById(R.id.text_content);
        assertEquals(View.VISIBLE, statusContent.getVisibility());
        assertEquals(statusContent.getText(), NOTIFICATION_CONTENT);
        assertThat(statusContent.getMaxLines()).isEqualTo(3);

        // Has 2 messages, show count.
        // Has two messages, show count.
        assertEquals(View.VISIBLE, result.findViewById(R.id.messages_count).getVisibility());
    }