Fix solid circle show on message notification

am: 1250cd1407

Change-Id: I805908a107f7e082a0f5c3294a777235efa74b16
This commit is contained in:
Tony Huang
2018-06-14 20:13:30 -07:00
committed by android-build-merger

View File

@@ -60,6 +60,13 @@ import java.util.regex.Pattern;
public class MessagingLayout extends FrameLayout {
private static final float COLOR_SHIFT_AMOUNT = 60;
/**
* Pattren for filter some ingonable characters.
* p{Z} for any kind of whitespace or invisible separator.
* p{C} for any kind of punctuation character.
*/
private static final Pattern IGNORABLE_CHAR_PATTERN
= Pattern.compile("[\\p{C}\\p{Z}]");
private static final Pattern SPECIAL_CHAR_PATTERN
= Pattern.compile ("[!@#$%&*()_+=|<>?{}\\[\\]~-]");
private static final Consumer<MessagingMessage> REMOVE_MESSAGE
@@ -233,7 +240,10 @@ public class MessagingLayout extends FrameLayout {
continue;
}
if (!uniqueNames.containsKey(senderName)) {
char c = senderName.charAt(0);
// Only use visible characters to get uniqueNames
String pureSenderName = IGNORABLE_CHAR_PATTERN
.matcher(senderName).replaceAll("" /* replacement */);
char c = pureSenderName.charAt(0);
if (uniqueCharacters.containsKey(c)) {
// this character was already used, lets make it more unique. We first need to
// resolve the existing character if it exists
@@ -245,7 +255,7 @@ public class MessagingLayout extends FrameLayout {
uniqueNames.put(senderName, findNameSplit((String) senderName));
} else {
uniqueNames.put(senderName, Character.toString(c));
uniqueCharacters.put(c, senderName);
uniqueCharacters.put(c, pureSenderName);
}
}
}