mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-24 10:51:27 +01:00
Add avatar picker and defaults.
This commit is contained in:
committed by
Greyson Parrelli
parent
0093e1d3eb
commit
ed23c3fe7c
@@ -1129,6 +1129,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
|
||||
updateReminders();
|
||||
}
|
||||
|
||||
@SuppressLint("MissingSuperCall")
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
Permissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
|
||||
@@ -1302,7 +1303,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
|
||||
GlideApp.with(this)
|
||||
.asBitmap()
|
||||
.load(recipient.getContactPhoto())
|
||||
.error(recipient.getFallbackContactPhoto().asDrawable(this, recipient.getAvatarColor().colorInt(), false))
|
||||
.error(recipient.getFallbackContactPhoto().asDrawable(this, recipient.getAvatarColor(), false))
|
||||
.into(new CustomTarget<Bitmap>() {
|
||||
@Override
|
||||
public void onLoadFailed(@Nullable Drawable errorDrawable) {
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.conversation.colors;
|
||||
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -11,56 +12,20 @@ import java.util.Objects;
|
||||
* A serializable set of color constants that can be used for avatars.
|
||||
*/
|
||||
public enum AvatarColor {
|
||||
C000("C000", 0xFFD00B0B),
|
||||
C010("C010", 0xFFC72A0A),
|
||||
C020("C020", 0xFFB34209),
|
||||
C030("C030", 0xFF9C5711),
|
||||
C040("C040", 0xFF866118),
|
||||
C050("C050", 0xFF76681E),
|
||||
C060("C060", 0xFF6C6C13),
|
||||
C070("C070", 0xFF5E6E0C),
|
||||
C080("C080", 0xFF507406),
|
||||
C090("C090", 0xFF3D7406),
|
||||
C100("C100", 0xFF2D7906),
|
||||
C110("C110", 0xFF1A7906),
|
||||
C120("C120", 0xFF067906),
|
||||
C130("C130", 0xFF067919),
|
||||
C140("C140", 0xFF06792D),
|
||||
C150("C150", 0xFF067940),
|
||||
C160("C160", 0xFF067953),
|
||||
C170("C170", 0xFF067462),
|
||||
C180("C180", 0xFF067474),
|
||||
C190("C190", 0xFF077288),
|
||||
C200("C200", 0xFF086DA0),
|
||||
C210("C210", 0xFF0A69C7),
|
||||
C220("C220", 0xFF0D59F2),
|
||||
C230("C230", 0xFF3454F4),
|
||||
C240("C240", 0xFF5151F6),
|
||||
C250("C250", 0xFF6447F5),
|
||||
C260("C260", 0xFF7A3DF5),
|
||||
C270("C270", 0xFF8F2AF4),
|
||||
C280("C280", 0xFFA20CED),
|
||||
C290("C290", 0xFFAF0BD0),
|
||||
C300("C300", 0xFFB80AB8),
|
||||
C310("C310", 0xFFC20AA3),
|
||||
C320("C320", 0xFFC70A88),
|
||||
C330("C330", 0xFFCB0B6B),
|
||||
C340("C340", 0xFFD00B4D),
|
||||
C350("C350", 0xFFD00B2C),
|
||||
CRIMSON("crimson", ChatColorsPalette.Bubbles.CRIMSON.asSingleColor()),
|
||||
VERMILLION("vermillion", ChatColorsPalette.Bubbles.VERMILION.asSingleColor()),
|
||||
BURLAP("burlap", ChatColorsPalette.Bubbles.BURLAP.asSingleColor()),
|
||||
FOREST("forest", ChatColorsPalette.Bubbles.FOREST.asSingleColor()),
|
||||
WINTERGREEN("wintergreen", ChatColorsPalette.Bubbles.WINTERGREEN.asSingleColor()),
|
||||
TEAL("teal", ChatColorsPalette.Bubbles.TEAL.asSingleColor()),
|
||||
BLUE("blue", ChatColorsPalette.Bubbles.BLUE.asSingleColor()),
|
||||
INDIGO("indigo", ChatColorsPalette.Bubbles.INDIGO.asSingleColor()),
|
||||
VIOLET("violet", ChatColorsPalette.Bubbles.VIOLET.asSingleColor()),
|
||||
PLUM("plum", ChatColorsPalette.Bubbles.PLUM.asSingleColor()),
|
||||
TAUPE("taupe", ChatColorsPalette.Bubbles.TAUPE.asSingleColor()),
|
||||
STEEL("steel", ChatColorsPalette.Bubbles.STEEL.asSingleColor()),
|
||||
ULTRAMARINE("ultramarine", ChatColorsPalette.Bubbles.ULTRAMARINE.asSingleColor()),
|
||||
UNKNOWN("unknown", ChatColorsPalette.Bubbles.STEEL.asSingleColor());
|
||||
A100("A100", 0xFFE3E3FE),
|
||||
A110("A110", 0xFFDDE7FC),
|
||||
A120("A120", 0xFFD8E8F0),
|
||||
A130("A130", 0xFFCDE4CD),
|
||||
A140("A140", 0xFFEAE0F8),
|
||||
A150("A150", 0xFFF5E3FE),
|
||||
A160("A160", 0xFFF6D8EC),
|
||||
A170("A170", 0xFFF5D7D7),
|
||||
A180("A180", 0xFFFEF5D0),
|
||||
A190("A190", 0xFFEAE6D5),
|
||||
A200("A200", 0xFFD2D2DC),
|
||||
A210("A210", 0xFFD7D7D9);
|
||||
|
||||
public static final AvatarColor UNKNOWN = A210;
|
||||
|
||||
/** Fast map of name to enum, while also giving us a location to map old colors to new ones. */
|
||||
private static final Map<String, AvatarColor> NAME_MAP = new HashMap<>();
|
||||
@@ -69,61 +34,83 @@ public enum AvatarColor {
|
||||
NAME_MAP.put(color.serialize(), color);
|
||||
}
|
||||
|
||||
NAME_MAP.put("red", CRIMSON);
|
||||
NAME_MAP.put("orange", VERMILLION);
|
||||
NAME_MAP.put("deep_orange", VERMILLION);
|
||||
NAME_MAP.put("brown", BURLAP);
|
||||
NAME_MAP.put("green", FOREST);
|
||||
NAME_MAP.put("light_green", WINTERGREEN);
|
||||
NAME_MAP.put("teal", TEAL);
|
||||
NAME_MAP.put("blue", BLUE);
|
||||
NAME_MAP.put("indigo", INDIGO);
|
||||
NAME_MAP.put("purple", VIOLET);
|
||||
NAME_MAP.put("deep_purple", VIOLET);
|
||||
NAME_MAP.put("pink", PLUM);
|
||||
NAME_MAP.put("blue_grey", TAUPE);
|
||||
NAME_MAP.put("grey", STEEL);
|
||||
NAME_MAP.put("ultramarine", ULTRAMARINE);
|
||||
NAME_MAP.put("C020", A170);
|
||||
NAME_MAP.put("C030", A170);
|
||||
NAME_MAP.put("C040", A180);
|
||||
NAME_MAP.put("C050", A180);
|
||||
NAME_MAP.put("C000", A190);
|
||||
NAME_MAP.put("C060", A190);
|
||||
NAME_MAP.put("C070", A190);
|
||||
NAME_MAP.put("C080", A130);
|
||||
NAME_MAP.put("C090", A130);
|
||||
NAME_MAP.put("C100", A130);
|
||||
NAME_MAP.put("C110", A130);
|
||||
NAME_MAP.put("C120", A130);
|
||||
NAME_MAP.put("C130", A130);
|
||||
NAME_MAP.put("C140", A130);
|
||||
NAME_MAP.put("C150", A130);
|
||||
NAME_MAP.put("C160", A130);
|
||||
NAME_MAP.put("C170", A120);
|
||||
NAME_MAP.put("C180", A120);
|
||||
NAME_MAP.put("C190", A120);
|
||||
NAME_MAP.put("C200", A110);
|
||||
NAME_MAP.put("C210", A110);
|
||||
NAME_MAP.put("C220", A110);
|
||||
NAME_MAP.put("C230", A100);
|
||||
NAME_MAP.put("C240", A100);
|
||||
NAME_MAP.put("C250", A100);
|
||||
NAME_MAP.put("C260", A100);
|
||||
NAME_MAP.put("C270", A140);
|
||||
NAME_MAP.put("C280", A140);
|
||||
NAME_MAP.put("C290", A140);
|
||||
NAME_MAP.put("C300", A150);
|
||||
NAME_MAP.put("C010", A170);
|
||||
NAME_MAP.put("C310", A150);
|
||||
NAME_MAP.put("C320", A150);
|
||||
NAME_MAP.put("C330", A160);
|
||||
NAME_MAP.put("C340", A160);
|
||||
NAME_MAP.put("C350", A160);
|
||||
NAME_MAP.put("crimson", A170);
|
||||
NAME_MAP.put("vermillion", A170);
|
||||
NAME_MAP.put("burlap", A190);
|
||||
NAME_MAP.put("forest", A130);
|
||||
NAME_MAP.put("wintergreen", A130);
|
||||
NAME_MAP.put("teal", A120);
|
||||
NAME_MAP.put("blue", A110);
|
||||
NAME_MAP.put("indigo", A100);
|
||||
NAME_MAP.put("violet", A140);
|
||||
NAME_MAP.put("plum", A150);
|
||||
NAME_MAP.put("taupe", A190);
|
||||
NAME_MAP.put("steel", A210);
|
||||
NAME_MAP.put("ultramarine", A100);
|
||||
NAME_MAP.put("unknown", A210);
|
||||
NAME_MAP.put("red", A170);
|
||||
NAME_MAP.put("orange", A170);
|
||||
NAME_MAP.put("deep_orange", A170);
|
||||
NAME_MAP.put("brown", A190);
|
||||
NAME_MAP.put("green", A130);
|
||||
NAME_MAP.put("light_green", A130);
|
||||
NAME_MAP.put("purple", A140);
|
||||
NAME_MAP.put("deep_purple", A140);
|
||||
NAME_MAP.put("pink", A150);
|
||||
NAME_MAP.put("blue_grey", A190);
|
||||
NAME_MAP.put("grey", A210);
|
||||
}
|
||||
|
||||
/** Colors that can be assigned via {@link #random()}. */
|
||||
private static final AvatarColor[] RANDOM_OPTIONS = new AvatarColor[] {
|
||||
C000,
|
||||
C010,
|
||||
C020,
|
||||
C030,
|
||||
C040,
|
||||
C050,
|
||||
C060,
|
||||
C070,
|
||||
C080,
|
||||
C090,
|
||||
C100,
|
||||
C110,
|
||||
C120,
|
||||
C130,
|
||||
C140,
|
||||
C150,
|
||||
C160,
|
||||
C170,
|
||||
C180,
|
||||
C190,
|
||||
C200,
|
||||
C210,
|
||||
C220,
|
||||
C230,
|
||||
C240,
|
||||
C250,
|
||||
C260,
|
||||
C270,
|
||||
C280,
|
||||
C290,
|
||||
C300,
|
||||
C310,
|
||||
C320,
|
||||
C330,
|
||||
C340,
|
||||
C350,
|
||||
A100,
|
||||
A110,
|
||||
A120,
|
||||
A130,
|
||||
A140,
|
||||
A150,
|
||||
A160,
|
||||
A170,
|
||||
A180,
|
||||
A190,
|
||||
A200,
|
||||
A210
|
||||
};
|
||||
|
||||
private final String name;
|
||||
@@ -148,6 +135,6 @@ public enum AvatarColor {
|
||||
}
|
||||
|
||||
public static @NonNull AvatarColor deserialize(@NonNull String name) {
|
||||
return Objects.requireNonNull(NAME_MAP.getOrDefault(name, C000));
|
||||
return Objects.requireNonNull(NAME_MAP.getOrDefault(name, A210));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user