Ответ 1
От Google ContactsCommon исходный код:
Идентификатор - это уникальная и детерминированная строка, которая может использоваться для идентификации этого контакта. Обычно это ключ поиска контактов, но также могут использоваться другие контактные данные, особенно для нелокальных или временных контактов, у которых может отсутствовать ключ поиска. Это используется для определения цвета плитки. Из ContactPhotoManager.
Идентификатор используется LetterTileDrawable класс, чтобы выбрать цвет плитки (идентификатор поступает из запроса на контакт).
/**
* Returns a deterministic color based on the provided contact identifier string.
*/
private int pickColor(final String identifier) {
if (TextUtils.isEmpty(identifier) || mContactType == TYPE_VOICEMAIL) {
return sDefaultColor;
}
// String.hashCode() implementation is not supposed to change across java versions, so
// this should guarantee the same email address always maps to the same color.
// The email should already have been normalized by the ContactRequest.
final int color = Math.abs(identifier.hashCode()) % sColors.length();
return sColors.getColor(color, sDefaultColor);
}
Палитты определены в colors.xml файле:
<!-- Background colors for LetterTileDrawables. This set of colors is a subset of
https://spec.googleplex.com/quantumpalette#extended which passes Google Accessibility
Requirements for the color in question on white with >= 3.0 contrast. We used
http://leaverou.github.io/contrast-ratio/#white-on-%23db4437 to double-check the contrast.
These colors are also used by MaterialColorMapUtils to generate primary activity colors.
-->
<array name="letter_tile_colors">
<item>#DB4437</item>
<item>#E91E63</item>
<item>#9C27B0</item>
<item>#673AB7</item>
<item>#3F51B5</item>
<item>#4285F4</item>
<item>#039BE5</item>
<item>#0097A7</item>
<item>#009688</item>
<item>#0F9D58</item>
<item>#689F38</item>
<item>#EF6C00</item>
<item>#FF5722</item>
<item>#757575</item>
</array>
<!-- Darker versions of letter_tile_colors, two shades darker. These colors are used
for settings secondary activity colors. -->
<array name="letter_tile_colors_dark">
<item>#C53929</item>
<item>#C2185B</item>
<item>#7B1FA2</item>
<item>#512DA8</item>
<item>#303F9F</item>
<item>#3367D6</item>
<item>#0277BD</item>
<item>#006064</item>
<item>#00796B</item>
<item>#0B8043</item>
<item>#33691E</item>
<item>#E65100</item>
<item>#E64A19</item>
<item>#424242</item>
</array>
<!-- The default color used for tinting photos when no color can be extracted via Palette,
this is Blue Grey 500 -->
<color name="quickcontact_default_photo_tint_color">#607D8B</color>
<!-- The default secondary color when no color can be extracted via Palette,
this is Blue Grey 700 -->
<color name="quickcontact_default_photo_tint_color_dark">#455A64</color>
<color name="letter_tile_default_color">#cccccc</color>
<color name="letter_tile_font_color">#ffffff</color>