Fix notification count showing on 1x1

Change-Id: I0a57c6311fdc6a93efb3ff8ba459a7ebce981321
Test: manual and PeopleTileViewHelperTest
Bug: 184229123
This commit is contained in:
Flavio Fiszman
2021-04-07 11:01:28 +01:00
parent e4e799c79e
commit e52c761620
4 changed files with 21 additions and 6 deletions

View File

@@ -319,6 +319,7 @@ public class PeopleSpaceUtils {
CharSequence content = (isMissedCall && !hasMessageText)
? context.getString(R.string.missed_call) : message.getText();
Uri dataUri = message != null ? message.getDataUri() : null;
if (DEBUG) Log.d(TAG, "Notification message has text: " + hasMessageText);
return tile
.toBuilder()

View File

@@ -391,6 +391,7 @@ class PeopleTileViewHelper {
statusText = getStatusTextByType(status.getActivity());
}
views.setViewVisibility(R.id.predefined_icon, View.VISIBLE);
views.setViewVisibility(R.id.messages_count, View.GONE);
setMaxLines(views);
// Secondary text color for statuses.
TypedValue typedValue = new TypedValue();
@@ -530,6 +531,7 @@ class PeopleTileViewHelper {
if (mLayoutSize == LAYOUT_SMALL) {
views.setViewVisibility(R.id.predefined_icon, View.VISIBLE);
views.setViewVisibility(R.id.name, View.GONE);
views.setViewVisibility(R.id.messages_count, View.GONE);
} else {
views.setViewVisibility(R.id.predefined_icon, View.GONE);
views.setViewVisibility(R.id.name, View.VISIBLE);
@@ -544,6 +546,7 @@ class PeopleTileViewHelper {
if (mLayoutSize == LAYOUT_SMALL) {
views.setViewVisibility(R.id.name, View.VISIBLE);
views.setViewVisibility(R.id.predefined_icon, View.GONE);
views.setViewVisibility(R.id.messages_count, View.GONE);
}
String status = PeopleSpaceUtils.getLastInteractionString(mContext,
mTile.getLastInteractionTimestamp());

View File

@@ -285,7 +285,7 @@ public class PeopleSpaceWidgetManager {
updateTilesByUri(key, sbn, action);
}
} catch (Exception e) {
Log.e(TAG, "Exception: " + e);
Log.e(TAG, "Throwing exception: " + e);
}
}
@@ -498,7 +498,7 @@ public class PeopleSpaceWidgetManager {
if (notificationAction == PeopleSpaceUtils.NotificationAction.POSTED) {
if (DEBUG) Log.i(TAG, "Adding notification to storage, appWidgetId: " + appWidgetId);
storedTile = augmentTileFromNotification(mContext, storedTile, sbn);
} else if (storedTile.getNotificationKey().equals(sbn.getKey())) {
} else if (Objects.equals(storedTile.getNotificationKey(), sbn.getKey())) {
if (DEBUG) {
Log.i(TAG, "Removing notification from storage, appWidgetId: " + appWidgetId);
}

View File

@@ -162,6 +162,9 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
assertEquals(View.GONE, smallResult.findViewById(R.id.predefined_icon).getVisibility());
// Shows person icon.
assertEquals(View.VISIBLE, smallResult.findViewById(R.id.person_icon).getVisibility());
// No messages count.
assertEquals(View.GONE, smallResult.findViewById(R.id.messages_count).getVisibility());
mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
getSizeInDp(R.dimen.required_width_for_large));
@@ -220,6 +223,8 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// Has person icon.
assertEquals(View.VISIBLE,
smallResult.findViewById(R.id.person_icon).getVisibility());
// No messages count.
assertEquals(View.GONE, smallResult.findViewById(R.id.messages_count).getVisibility());
mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
getSizeInDp(R.dimen.required_width_for_large));
@@ -281,6 +286,8 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// Has person icon.
assertEquals(View.VISIBLE,
smallResult.findViewById(R.id.person_icon).getVisibility());
// No messages count.
assertEquals(View.GONE, smallResult.findViewById(R.id.messages_count).getVisibility());
mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
getSizeInDp(R.dimen.required_width_for_large));
@@ -342,6 +349,8 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
// Has person icon.
assertEquals(View.VISIBLE,
smallResult.findViewById(R.id.person_icon).getVisibility());
// No messages count.
assertEquals(View.GONE, smallResult.findViewById(R.id.messages_count).getVisibility());
mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
getSizeInDp(R.dimen.required_width_for_large));
@@ -404,6 +413,8 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
smallResult.findViewById(R.id.predefined_icon).getVisibility());
// Has person icon.
assertEquals(View.VISIBLE, smallResult.findViewById(R.id.person_icon).getVisibility());
// No messages count.
assertEquals(View.GONE, smallResult.findViewById(R.id.messages_count).getVisibility());
mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
getSizeInDp(R.dimen.required_width_for_large));
@@ -471,7 +482,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
smallResult.findViewById(R.id.person_icon).getVisibility());
// Has a single message, no count shown.
assertEquals(View.GONE, result.findViewById(R.id.messages_count).getVisibility());
assertEquals(View.GONE, smallResult.findViewById(R.id.messages_count).getVisibility());
mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
getSizeInDp(R.dimen.required_width_for_large));
@@ -497,7 +508,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
assertThat(statusContent.getMaxLines()).isEqualTo(3);
// Has a single message, no count shown.
assertEquals(View.GONE, result.findViewById(R.id.messages_count).getVisibility());
assertEquals(View.GONE, largeResult.findViewById(R.id.messages_count).getVisibility());
}
@@ -544,7 +555,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
smallResult.findViewById(R.id.person_icon).getVisibility());
// Has two messages, show count.
assertEquals(View.VISIBLE, result.findViewById(R.id.messages_count).getVisibility());
assertEquals(View.VISIBLE, smallResult.findViewById(R.id.messages_count).getVisibility());
mOptions.putInt(OPTION_APPWIDGET_MIN_WIDTH,
getSizeInDp(R.dimen.required_width_for_large));
@@ -570,7 +581,7 @@ public class PeopleTileViewHelperTest extends SysuiTestCase {
assertThat(statusContent.getMaxLines()).isEqualTo(3);
// Has two messages, show count.
assertEquals(View.VISIBLE, result.findViewById(R.id.messages_count).getVisibility());
assertEquals(View.VISIBLE, largeResult.findViewById(R.id.messages_count).getVisibility());
}