Page MenuHomePhabricator

D17430.id41986.diff
No OneTemporary

D17430.id41986.diff

diff --git a/resources/builtin/alphanumeric/Cd.png b/resources/builtin/alphanumeric/Cd.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Dd.png b/resources/builtin/alphanumeric/Dd.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Gd.png b/resources/builtin/alphanumeric/Gd.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/I.png b/resources/builtin/alphanumeric/I.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Id.png b/resources/builtin/alphanumeric/Id.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/L.png b/resources/builtin/alphanumeric/L.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/M.png b/resources/builtin/alphanumeric/M.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Md.png b/resources/builtin/alphanumeric/Md.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/R.png b/resources/builtin/alphanumeric/R.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Rd.png b/resources/builtin/alphanumeric/Rd.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Shrug.png b/resources/builtin/alphanumeric/Shrug.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Shrug2.png b/resources/builtin/alphanumeric/Shrug2.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Ud.png b/resources/builtin/alphanumeric/Ud.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/V.png b/resources/builtin/alphanumeric/V.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Vd.png b/resources/builtin/alphanumeric/Vd.png
deleted file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/0.png b/resources/builtin/alphanumeric/aleo-white/0.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/1.png b/resources/builtin/alphanumeric/aleo-white/1.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/2.png b/resources/builtin/alphanumeric/aleo-white/2.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/3.png b/resources/builtin/alphanumeric/aleo-white/3.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/4.png b/resources/builtin/alphanumeric/aleo-white/4.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/5.png b/resources/builtin/alphanumeric/aleo-white/5.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/6.png b/resources/builtin/alphanumeric/aleo-white/6.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/7.png b/resources/builtin/alphanumeric/aleo-white/7.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/8.png b/resources/builtin/alphanumeric/aleo-white/8.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/9.png b/resources/builtin/alphanumeric/aleo-white/9.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/A.png b/resources/builtin/alphanumeric/aleo-white/A.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/B.png b/resources/builtin/alphanumeric/aleo-white/B.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/C.png b/resources/builtin/alphanumeric/aleo-white/C.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/D.png b/resources/builtin/alphanumeric/aleo-white/D.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/E.png b/resources/builtin/alphanumeric/aleo-white/E.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/F.png b/resources/builtin/alphanumeric/aleo-white/F.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/G.png b/resources/builtin/alphanumeric/aleo-white/G.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/H.png b/resources/builtin/alphanumeric/aleo-white/H.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/I.png b/resources/builtin/alphanumeric/aleo-white/I.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/J.png b/resources/builtin/alphanumeric/aleo-white/J.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/K.png b/resources/builtin/alphanumeric/aleo-white/K.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/L.png b/resources/builtin/alphanumeric/aleo-white/L.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/M.png b/resources/builtin/alphanumeric/aleo-white/M.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/N.png b/resources/builtin/alphanumeric/aleo-white/N.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/O.png b/resources/builtin/alphanumeric/aleo-white/O.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/P.png b/resources/builtin/alphanumeric/aleo-white/P.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/Q.png b/resources/builtin/alphanumeric/aleo-white/Q.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/R.png b/resources/builtin/alphanumeric/aleo-white/R.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/S.png b/resources/builtin/alphanumeric/aleo-white/S.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/T.png b/resources/builtin/alphanumeric/aleo-white/T.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/U.png b/resources/builtin/alphanumeric/aleo-white/U.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/V.png b/resources/builtin/alphanumeric/aleo-white/V.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/W.png b/resources/builtin/alphanumeric/aleo-white/W.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/X.png b/resources/builtin/alphanumeric/aleo-white/X.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/Y.png b/resources/builtin/alphanumeric/aleo-white/Y.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/Z.png b/resources/builtin/alphanumeric/aleo-white/Z.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/aleo-white/_default.png b/resources/builtin/alphanumeric/aleo-white/_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/0d.png b/resources/builtin/alphanumeric/lato-dark/0.png
rename from resources/builtin/alphanumeric/0d.png
rename to resources/builtin/alphanumeric/lato-dark/0.png
diff --git a/resources/builtin/alphanumeric/1d.png b/resources/builtin/alphanumeric/lato-dark/1.png
rename from resources/builtin/alphanumeric/1d.png
rename to resources/builtin/alphanumeric/lato-dark/1.png
diff --git a/resources/builtin/alphanumeric/2d.png b/resources/builtin/alphanumeric/lato-dark/2.png
rename from resources/builtin/alphanumeric/2d.png
rename to resources/builtin/alphanumeric/lato-dark/2.png
diff --git a/resources/builtin/alphanumeric/3d.png b/resources/builtin/alphanumeric/lato-dark/3.png
rename from resources/builtin/alphanumeric/3d.png
rename to resources/builtin/alphanumeric/lato-dark/3.png
diff --git a/resources/builtin/alphanumeric/4d.png b/resources/builtin/alphanumeric/lato-dark/4.png
rename from resources/builtin/alphanumeric/4d.png
rename to resources/builtin/alphanumeric/lato-dark/4.png
diff --git a/resources/builtin/alphanumeric/5d.png b/resources/builtin/alphanumeric/lato-dark/5.png
rename from resources/builtin/alphanumeric/5d.png
rename to resources/builtin/alphanumeric/lato-dark/5.png
diff --git a/resources/builtin/alphanumeric/6d.png b/resources/builtin/alphanumeric/lato-dark/6.png
rename from resources/builtin/alphanumeric/6d.png
rename to resources/builtin/alphanumeric/lato-dark/6.png
diff --git a/resources/builtin/alphanumeric/7d.png b/resources/builtin/alphanumeric/lato-dark/7.png
rename from resources/builtin/alphanumeric/7d.png
rename to resources/builtin/alphanumeric/lato-dark/7.png
diff --git a/resources/builtin/alphanumeric/8d.png b/resources/builtin/alphanumeric/lato-dark/8.png
rename from resources/builtin/alphanumeric/8d.png
rename to resources/builtin/alphanumeric/lato-dark/8.png
diff --git a/resources/builtin/alphanumeric/9d.png b/resources/builtin/alphanumeric/lato-dark/9.png
rename from resources/builtin/alphanumeric/9d.png
rename to resources/builtin/alphanumeric/lato-dark/9.png
diff --git a/resources/builtin/alphanumeric/Ad.png b/resources/builtin/alphanumeric/lato-dark/A.png
rename from resources/builtin/alphanumeric/Ad.png
rename to resources/builtin/alphanumeric/lato-dark/A.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Bd.png b/resources/builtin/alphanumeric/lato-dark/B.png
rename from resources/builtin/alphanumeric/Bd.png
rename to resources/builtin/alphanumeric/lato-dark/B.png
diff --git a/resources/builtin/alphanumeric/lato-dark/C.png b/resources/builtin/alphanumeric/lato-dark/C.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/lato-dark/D.png b/resources/builtin/alphanumeric/lato-dark/D.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Ed.png b/resources/builtin/alphanumeric/lato-dark/E.png
rename from resources/builtin/alphanumeric/Ed.png
rename to resources/builtin/alphanumeric/lato-dark/E.png
diff --git a/resources/builtin/alphanumeric/Fd.png b/resources/builtin/alphanumeric/lato-dark/F.png
rename from resources/builtin/alphanumeric/Fd.png
rename to resources/builtin/alphanumeric/lato-dark/F.png
diff --git a/resources/builtin/alphanumeric/lato-dark/G.png b/resources/builtin/alphanumeric/lato-dark/G.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Hd.png b/resources/builtin/alphanumeric/lato-dark/H.png
rename from resources/builtin/alphanumeric/Hd.png
rename to resources/builtin/alphanumeric/lato-dark/H.png
diff --git a/resources/builtin/alphanumeric/lato-dark/I.png b/resources/builtin/alphanumeric/lato-dark/I.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Jd.png b/resources/builtin/alphanumeric/lato-dark/J.png
rename from resources/builtin/alphanumeric/Jd.png
rename to resources/builtin/alphanumeric/lato-dark/J.png
diff --git a/resources/builtin/alphanumeric/Kd.png b/resources/builtin/alphanumeric/lato-dark/K.png
rename from resources/builtin/alphanumeric/Kd.png
rename to resources/builtin/alphanumeric/lato-dark/K.png
diff --git a/resources/builtin/alphanumeric/Ld.png b/resources/builtin/alphanumeric/lato-dark/L.png
rename from resources/builtin/alphanumeric/Ld.png
rename to resources/builtin/alphanumeric/lato-dark/L.png
diff --git a/resources/builtin/alphanumeric/lato-dark/M.png b/resources/builtin/alphanumeric/lato-dark/M.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/N.png b/resources/builtin/alphanumeric/lato-dark/N.png
rename from resources/builtin/alphanumeric/N.png
rename to resources/builtin/alphanumeric/lato-dark/N.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Od.png b/resources/builtin/alphanumeric/lato-dark/O.png
rename from resources/builtin/alphanumeric/Od.png
rename to resources/builtin/alphanumeric/lato-dark/O.png
diff --git a/resources/builtin/alphanumeric/Pd.png b/resources/builtin/alphanumeric/lato-dark/P.png
rename from resources/builtin/alphanumeric/Pd.png
rename to resources/builtin/alphanumeric/lato-dark/P.png
diff --git a/resources/builtin/alphanumeric/Qd.png b/resources/builtin/alphanumeric/lato-dark/Q.png
rename from resources/builtin/alphanumeric/Qd.png
rename to resources/builtin/alphanumeric/lato-dark/Q.png
diff --git a/resources/builtin/alphanumeric/lato-dark/R.png b/resources/builtin/alphanumeric/lato-dark/R.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Sd.png b/resources/builtin/alphanumeric/lato-dark/S.png
rename from resources/builtin/alphanumeric/Sd.png
rename to resources/builtin/alphanumeric/lato-dark/S.png
diff --git a/resources/builtin/alphanumeric/Td.png b/resources/builtin/alphanumeric/lato-dark/T.png
rename from resources/builtin/alphanumeric/Td.png
rename to resources/builtin/alphanumeric/lato-dark/T.png
diff --git a/resources/builtin/alphanumeric/lato-dark/U.png b/resources/builtin/alphanumeric/lato-dark/U.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/lato-dark/V.png b/resources/builtin/alphanumeric/lato-dark/V.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Wd.png b/resources/builtin/alphanumeric/lato-dark/W.png
rename from resources/builtin/alphanumeric/Wd.png
rename to resources/builtin/alphanumeric/lato-dark/W.png
diff --git a/resources/builtin/alphanumeric/Xd.png b/resources/builtin/alphanumeric/lato-dark/X.png
rename from resources/builtin/alphanumeric/Xd.png
rename to resources/builtin/alphanumeric/lato-dark/X.png
diff --git a/resources/builtin/alphanumeric/Yd.png b/resources/builtin/alphanumeric/lato-dark/Y.png
rename from resources/builtin/alphanumeric/Yd.png
rename to resources/builtin/alphanumeric/lato-dark/Y.png
diff --git a/resources/builtin/alphanumeric/Zd.png b/resources/builtin/alphanumeric/lato-dark/Z.png
rename from resources/builtin/alphanumeric/Zd.png
rename to resources/builtin/alphanumeric/lato-dark/Z.png
diff --git a/resources/builtin/alphanumeric/lato-dark/_default.png b/resources/builtin/alphanumeric/lato-dark/_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/0.png b/resources/builtin/alphanumeric/lato-white/0.png
rename from resources/builtin/alphanumeric/0.png
rename to resources/builtin/alphanumeric/lato-white/0.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/1.png b/resources/builtin/alphanumeric/lato-white/1.png
rename from resources/builtin/alphanumeric/1.png
rename to resources/builtin/alphanumeric/lato-white/1.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/2.png b/resources/builtin/alphanumeric/lato-white/2.png
rename from resources/builtin/alphanumeric/2.png
rename to resources/builtin/alphanumeric/lato-white/2.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/3.png b/resources/builtin/alphanumeric/lato-white/3.png
rename from resources/builtin/alphanumeric/3.png
rename to resources/builtin/alphanumeric/lato-white/3.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/4.png b/resources/builtin/alphanumeric/lato-white/4.png
rename from resources/builtin/alphanumeric/4.png
rename to resources/builtin/alphanumeric/lato-white/4.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/5.png b/resources/builtin/alphanumeric/lato-white/5.png
rename from resources/builtin/alphanumeric/5.png
rename to resources/builtin/alphanumeric/lato-white/5.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/6.png b/resources/builtin/alphanumeric/lato-white/6.png
rename from resources/builtin/alphanumeric/6.png
rename to resources/builtin/alphanumeric/lato-white/6.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/7.png b/resources/builtin/alphanumeric/lato-white/7.png
rename from resources/builtin/alphanumeric/7.png
rename to resources/builtin/alphanumeric/lato-white/7.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/8.png b/resources/builtin/alphanumeric/lato-white/8.png
rename from resources/builtin/alphanumeric/8.png
rename to resources/builtin/alphanumeric/lato-white/8.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/9.png b/resources/builtin/alphanumeric/lato-white/9.png
rename from resources/builtin/alphanumeric/9.png
rename to resources/builtin/alphanumeric/lato-white/9.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/A.png b/resources/builtin/alphanumeric/lato-white/A.png
rename from resources/builtin/alphanumeric/A.png
rename to resources/builtin/alphanumeric/lato-white/A.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/B.png b/resources/builtin/alphanumeric/lato-white/B.png
rename from resources/builtin/alphanumeric/B.png
rename to resources/builtin/alphanumeric/lato-white/B.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/C.png b/resources/builtin/alphanumeric/lato-white/C.png
rename from resources/builtin/alphanumeric/C.png
rename to resources/builtin/alphanumeric/lato-white/C.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/D.png b/resources/builtin/alphanumeric/lato-white/D.png
rename from resources/builtin/alphanumeric/D.png
rename to resources/builtin/alphanumeric/lato-white/D.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/E.png b/resources/builtin/alphanumeric/lato-white/E.png
rename from resources/builtin/alphanumeric/E.png
rename to resources/builtin/alphanumeric/lato-white/E.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/F.png b/resources/builtin/alphanumeric/lato-white/F.png
rename from resources/builtin/alphanumeric/F.png
rename to resources/builtin/alphanumeric/lato-white/F.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/G.png b/resources/builtin/alphanumeric/lato-white/G.png
rename from resources/builtin/alphanumeric/G.png
rename to resources/builtin/alphanumeric/lato-white/G.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/H.png b/resources/builtin/alphanumeric/lato-white/H.png
rename from resources/builtin/alphanumeric/H.png
rename to resources/builtin/alphanumeric/lato-white/H.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/lato-white/I.png b/resources/builtin/alphanumeric/lato-white/I.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/J.png b/resources/builtin/alphanumeric/lato-white/J.png
rename from resources/builtin/alphanumeric/J.png
rename to resources/builtin/alphanumeric/lato-white/J.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/K.png b/resources/builtin/alphanumeric/lato-white/K.png
rename from resources/builtin/alphanumeric/K.png
rename to resources/builtin/alphanumeric/lato-white/K.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Ld.png b/resources/builtin/alphanumeric/lato-white/L.png
rename from resources/builtin/alphanumeric/Ld.png
rename to resources/builtin/alphanumeric/lato-white/L.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/lato-white/M.png b/resources/builtin/alphanumeric/lato-white/M.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Nd.png b/resources/builtin/alphanumeric/lato-white/N.png
rename from resources/builtin/alphanumeric/Nd.png
rename to resources/builtin/alphanumeric/lato-white/N.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/O.png b/resources/builtin/alphanumeric/lato-white/O.png
rename from resources/builtin/alphanumeric/O.png
rename to resources/builtin/alphanumeric/lato-white/O.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/P.png b/resources/builtin/alphanumeric/lato-white/P.png
rename from resources/builtin/alphanumeric/P.png
rename to resources/builtin/alphanumeric/lato-white/P.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Q.png b/resources/builtin/alphanumeric/lato-white/Q.png
rename from resources/builtin/alphanumeric/Q.png
rename to resources/builtin/alphanumeric/lato-white/Q.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/lato-white/R.png b/resources/builtin/alphanumeric/lato-white/R.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/S.png b/resources/builtin/alphanumeric/lato-white/S.png
rename from resources/builtin/alphanumeric/S.png
rename to resources/builtin/alphanumeric/lato-white/S.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/T.png b/resources/builtin/alphanumeric/lato-white/T.png
rename from resources/builtin/alphanumeric/T.png
rename to resources/builtin/alphanumeric/lato-white/T.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/U.png b/resources/builtin/alphanumeric/lato-white/U.png
rename from resources/builtin/alphanumeric/U.png
rename to resources/builtin/alphanumeric/lato-white/U.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/lato-white/V.png b/resources/builtin/alphanumeric/lato-white/V.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/W.png b/resources/builtin/alphanumeric/lato-white/W.png
rename from resources/builtin/alphanumeric/W.png
rename to resources/builtin/alphanumeric/lato-white/W.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/X.png b/resources/builtin/alphanumeric/lato-white/X.png
rename from resources/builtin/alphanumeric/X.png
rename to resources/builtin/alphanumeric/lato-white/X.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Y.png b/resources/builtin/alphanumeric/lato-white/Y.png
rename from resources/builtin/alphanumeric/Y.png
rename to resources/builtin/alphanumeric/lato-white/Y.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/Z.png b/resources/builtin/alphanumeric/lato-white/Z.png
rename from resources/builtin/alphanumeric/Z.png
rename to resources/builtin/alphanumeric/lato-white/Z.png
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/resources/builtin/alphanumeric/lato-white/_default.png b/resources/builtin/alphanumeric/lato-white/_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/src/applications/files/builtin/PhabricatorFilesComposeAvatarBuiltinFile.php b/src/applications/files/builtin/PhabricatorFilesComposeAvatarBuiltinFile.php
--- a/src/applications/files/builtin/PhabricatorFilesComposeAvatarBuiltinFile.php
+++ b/src/applications/files/builtin/PhabricatorFilesComposeAvatarBuiltinFile.php
@@ -37,7 +37,7 @@
public function getBuiltinFileKey() {
$icon = $this->getIcon();
$color = $this->getColor();
- $border = $this->getBorder();
+ $border = implode(',', $this->getBorder());
$desc = "compose(icon={$icon}, color={$color}, border={$border}";
$hash = PhabricatorHash::digestToLength($desc, 40);
return "builtin:{$hash}";
@@ -46,7 +46,7 @@
public function getBuiltinDisplayName() {
$icon = $this->getIcon();
$color = $this->getColor();
- $border = $this->getBorder();
+ $border = implode(',', $this->getBorder());
return "{$icon}-{$color}-{$border}.png";
}
@@ -55,8 +55,53 @@
$this->getColor(), $this->getIcon(), $this->getBorder());
}
- private function composeImage($color, $icon, $border) {
- // TODO
+ private function composeImage($color, $image, $border) {
+ $color_const = hexdec(trim($color, '#'));
+ $true_border = self::rgba2gd($border);
+ $image_map = self::getImageMap();
+ $data = Filesystem::readFile($image_map[$image]);
+
+ $img = imagecreatefromstring($data);
+
+ // 4 pixel border at 50x50, 32 pixel border at 400x400
+ $canvas = imagecreatetruecolor(400, 400);
+
+ $image_fill = imagefill($canvas, 0, 0, $color_const);
+ if (!$image_fill) {
+ throw new Exception(
+ pht('Failed to save builtin avatar image data (imagefill).'));
+ }
+
+ $border_thickness = imagesetthickness($canvas, 64);
+ if (!$border_thickness) {
+ throw new Exception(
+ pht('Failed to save builtin avatar image data (imagesetthickness).'));
+ }
+
+ $image_rectangle = imagerectangle($canvas, 0, 0, 400, 400, $true_border);
+ if (!$image_rectangle) {
+ throw new Exception(
+ pht('Failed to save builtin avatar image data (imagerectangle).'));
+ }
+
+ $image_copy = imagecopy($canvas, $img, 0, 0, 0, 0, 400, 400);
+ if (!$image_copy) {
+ throw new Exception(
+ pht('Failed to save builtin avatar image data (imagecopy).'));
+ }
+
+ return PhabricatorImageTransformer::saveImageDataInAnyFormat(
+ $canvas,
+ 'image/png');
+ }
+
+ private static function rgba2gd($rgba) {
+ $r = $rgba[0];
+ $g = $rgba[1];
+ $b = $rgba[2];
+ $a = $rgba[3];
+ $a = (1 - $a) * 255;
+ return ($a << 24) | ($r << 16) | ($g << 8) | $b;
}
public static function getImageMap() {
@@ -64,21 +109,106 @@
$root = $root.'/resources/builtin/alphanumeric/';
$map = array();
- $list = Filesystem::listDirectory($root, $include_hidden = false);
+ $list = id(new FileFinder($root))
+ ->withType('f')
+ ->withFollowSymlinks(true)
+ ->find();
+
foreach ($list as $file) {
- $key = 'alphanumeric/'.$file;
- $map[$key] = $root.$file;
+ $map['alphanumeric/'.$file] = $root.$file;
+ }
+ return $map;
+ }
+
+ public function getUniqueProfileImage($username) {
+ $pack_map = $this->getImagePackMap();
+ $image_map = $this->getImageMap();
+ $color_map = $this->getColorMap();
+ $border_map = $this->getBorderMap();
+ $file = phutil_utf8_strtoupper(substr($username, 0, 1));
+
+ $pack_count = count($pack_map);
+ $color_count = count($color_map);
+ $border_count = count($border_map);
+
+ $pack_seed = $username.'_pack';
+ $color_seed = $username.'_color';
+ $border_seed = $username.'_border';
+
+ $pack_key =
+ PhabricatorHash::digestToRange($pack_seed, 1, $pack_count);
+ $color_key =
+ PhabricatorHash::digestToRange($color_seed, 1, $color_count);
+ $border_key =
+ PhabricatorHash::digestToRange($border_seed, 1, $border_count);
+
+ $pack = $pack_map[$pack_key];
+ $icon = 'alphanumeric/'.$pack.'/'.$file.'.png';
+ $color = $color_map[$color_key];
+ $border = $border_map[$border_key];
+
+ if (!isset($image_map[$icon])) {
+ $icon = 'alphanumeric/'.$pack.'/_default.png';
}
+ return array('color' => $color, 'icon' => $icon, 'border' => $border);
+ }
+
+ public function getUserProfileImageFile($username) {
+ $unique = $this->getUniqueProfileImage($username);
+
+ $composer = id(new self())
+ ->setIcon($unique['icon'])
+ ->setColor($unique['color'])
+ ->setBorder($unique['border']);
+
+ $data = $composer->loadBuiltinFileData();
+
+ $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites();
+ $file = PhabricatorFile::newFromFileData(
+ $data,
+ array(
+ 'name' => $composer->getBuiltinDisplayName(),
+ 'profile' => true,
+ 'canCDN' => true,
+ ));
+ unset($unguarded);
+
+ return $file;
+ }
+
+ public static function getImagePackMap() {
+ $root = dirname(phutil_get_library_root('phabricator'));
+ $root = $root.'/resources/builtin/alphanumeric/';
+
+ $map = id(new FileFinder($root))
+ ->withType('d')
+ ->withFollowSymlinks(false)
+ ->find();
+
+ return $map;
+ }
+
+ public static function getBorderMap() {
+
+ $map = array(
+ array(0, 0, 0, 0),
+ array(0, 0, 0, 0.3),
+ array(255, 255, 255, 0.4),
+ array(255, 255, 255, 0.7),
+ );
+
return $map;
}
public static function getColorMap() {
+ //
+ // Generated Colors
+ // http://tools.medialab.sciences-po.fr/iwanthue/
+ //
$map = array(
'#335862',
- '#dfc47b',
'#2d5192',
- '#c0bc6e',
'#3c5da0',
'#99cd86',
'#704889',
@@ -91,19 +221,14 @@
'#4bd0e3',
'#a25542',
'#4eb4f3',
- '#705412',
'#6da8ec',
'#545608',
'#829ce5',
'#68681d',
'#607bc2',
- '#d1b66e',
'#4b69ad',
- '#a4a154',
'#236ead',
- '#daa969',
'#31a0de',
- '#996f31',
'#4f8ed0',
'#846f2a',
'#bdb0f0',
@@ -121,13 +246,11 @@
'#7f4c7f',
'#a1bb7a',
'#65558f',
- '#c2a962',
'#445082',
'#c9ca8e',
'#265582',
'#f4b189',
'#265582',
- '#bd8f50',
'#40b8e1',
'#814a28',
'#80c8f6',
@@ -142,7 +265,6 @@
'#b888c9',
'#476025',
'#9987c5',
- '#828136',
'#7867a3',
'#769b5a',
'#c46e9d',
@@ -161,7 +283,6 @@
'#45a998',
'#faa38c',
'#265582',
- '#ad954f',
'#265582',
'#e4b788',
'#265582',
@@ -187,7 +308,6 @@
'#ae78ad',
'#569160',
'#d898be',
- '#525620',
'#8eb4e8',
'#5e622c',
'#929ad3',
@@ -209,13 +329,9 @@
'#63acda',
'#7b5d30',
'#66bed6',
- '#a66c4e',
'#3585b0',
- '#ba865c',
'#5880b0',
- '#9b864d',
'#739acc',
- '#9d764a',
'#48a3ba',
'#9d565b',
'#7fc4ca',
@@ -232,15 +348,11 @@
'#6bafb6',
'#8c5744',
'#84b9d6',
- '#725238',
'#9db3d6',
- '#816f3e',
'#777cad',
- '#a6a86e',
'#826693',
'#86a779',
'#9d7fad',
- '#8b8e55',
'#b193c2',
'#547348',
'#d5adcb',
@@ -250,11 +362,9 @@
'#b2add6',
'#5a623d',
'#9793bb',
- '#bea975',
'#3c5472',
'#d5c5a1',
'#5e5a7f',
- '#b09c68',
'#2c647e',
'#d8b194',
'#49607f',
@@ -269,7 +379,6 @@
'#ad697e',
'#799a6d',
'#916b88',
- '#aeb68d',
'#69536b',
'#b4c4ad',
'#845865',
@@ -291,20 +400,16 @@
'#50959b',
'#b27d7a',
'#335862',
- '#b2a381',
'#335862',
'#bcadc4',
'#706343',
'#749ebc',
'#8c6a50',
'#92b8c4',
- '#a07d62',
'#758cad',
'#868e67',
'#335862',
- '#b6978c',
'#335862',
- '#9e8f6e',
'#335862',
'#ac7e8b',
'#77a185',
@@ -314,7 +419,6 @@
'#467a70',
'#9b7d73',
'#335862',
- '#8a7c5b',
'#335862',
'#8c9c85',
'#335862',
@@ -335,12 +439,4 @@
return $map;
}
- public static function getBorderMap() {
- $map = array(
- 'rgba(0,0,0,.3);', // Darker
- 'rgba(255,255,255,.5);', // Lighter
- );
- return $map;
- }
-
}
diff --git a/src/applications/people/controller/PhabricatorPeopleProfilePictureController.php b/src/applications/people/controller/PhabricatorPeopleProfilePictureController.php
--- a/src/applications/people/controller/PhabricatorPeopleProfilePictureController.php
+++ b/src/applications/people/controller/PhabricatorPeopleProfilePictureController.php
@@ -30,12 +30,22 @@
$e_file = true;
$errors = array();
+ // Verify install has GD extension, otherwise default to avatar.png
+ $gd = function_exists('imagecreatefromstring');
+
if ($request->isFormPost()) {
$phid = $request->getStr('phid');
$is_default = false;
if ($phid == PhabricatorPHIDConstants::PHID_VOID) {
- $phid = null;
- $is_default = true;
+ // Compose the builtin unique image
+ if ($gd) {
+ $file = id(new PhabricatorFilesComposeAvatarBuiltinFile())
+ ->getUserProfileImageFile($name);
+ } else {
+ $phid = null;
+ $is_default = true;
+ }
+
} else if ($phid) {
$file = id(new PhabricatorFileQuery())
->setViewer($viewer)
@@ -86,7 +96,15 @@
$form = id(new PHUIFormLayoutView())
->setUser($viewer);
- $default_image = PhabricatorFile::loadBuiltin($viewer, 'profile.png');
+ if ($gd) {
+ $unique_default = id(new PhabricatorFilesComposeAvatarBuiltinFile())
+ ->getUniqueProfileImage($name);
+ $default_image = PhabricatorFile::loadBuiltin(
+ $viewer, $unique_default['icon']);
+ } else {
+ $unique_default = null;
+ $default_image = PhabricatorFile::loadBuiltin($viewer, 'profile.png');
+ }
$images = array();
@@ -163,9 +181,21 @@
}
}
+ $default_style = array();
+ if ($unique_default) {
+ $border_color = implode(', ', $unique_default['border']);
+ $default_style = array(
+ 'background-color: '.$unique_default['color'].';',
+ 'border: 4px solid rgba('.$border_color.');',
+ 'height: 42px;',
+ 'width: 42px',
+ );
+ }
+
$images[PhabricatorPHIDConstants::PHID_VOID] = array(
'uri' => $default_image->getBestURI(),
'tip' => pht('Default Picture'),
+ 'style' => implode(' ', $default_style),
);
require_celerity_resource('people-profile-css');
@@ -173,6 +203,10 @@
$buttons = array();
foreach ($images as $phid => $spec) {
+ $style = null;
+ if (isset($spec['style'])) {
+ $style = $spec['style'];
+ }
$button = javelin_tag(
'button',
array(
@@ -189,6 +223,7 @@
'height' => 50,
'width' => 50,
'src' => $spec['uri'],
+ 'style' => $style,
)));
$button = array(
diff --git a/src/applications/uiexample/examples/PhabricatorFilesComposeAvatarExample.php b/src/applications/uiexample/examples/PhabricatorFilesComposeAvatarExample.php
--- a/src/applications/uiexample/examples/PhabricatorFilesComposeAvatarExample.php
+++ b/src/applications/uiexample/examples/PhabricatorFilesComposeAvatarExample.php
@@ -15,10 +15,10 @@
$viewer = $request->getUser();
$colors = PhabricatorFilesComposeAvatarBuiltinFile::getColorMap();
+ $packs = PhabricatorFilesComposeAvatarBuiltinFile::getImagePackMap();
$builtins = PhabricatorFilesComposeAvatarBuiltinFile::getImageMap();
$borders = PhabricatorFilesComposeAvatarBuiltinFile::getBorderMap();
- shuffle($colors);
$images = array();
foreach ($builtins as $builtin => $raw_file) {
$file = PhabricatorFile::loadBuiltin($viewer, $builtin);
@@ -26,17 +26,20 @@
}
$content = array();
+ shuffle($colors);
foreach ($colors as $color) {
shuffle($borders);
+ $color_const = hexdec(trim($color, '#'));
$border = head($borders);
+ $border_color = implode(', ', $border);
$styles = array();
$styles[] = 'background-color: '.$color.';';
$styles[] = 'display: inline-block;';
- $styles[] = 'height: 46px;';
- $styles[] = 'width: 46px;';
+ $styles[] = 'height: 42px;';
+ $styles[] = 'width: 42px;';
$styles[] = 'border-radius: 3px;';
- $styles[] = 'border: 4px solid '.$border.';';
+ $styles[] = 'border: 4px solid rgba('.$border_color.');';
shuffle($images);
$png = head($images);
@@ -45,8 +48,8 @@
'img',
array(
'src' => $png,
- 'height' => 46,
- 'width' => 46,
+ 'height' => 42,
+ 'width' => 42,
));
$tag = phutil_tag(
@@ -65,12 +68,23 @@
$tag);
}
+ $count = new PhutilNumber(
+ count($colors) * count($builtins) * count($borders));
+
+ $infoview = id(new PHUIInfoView())
+ ->setSeverity(PHUIInfoView::SEVERITY_NOTICE)
+ ->appendChild(pht('This installation can generate %s unique '.
+ 'avatars. You can add additional image packs in '.
+ 'resources/builtins/alphanumeric/.', $count));
+
+ $info = phutil_tag_div('pmb', $infoview);
$view = phutil_tag_div('ml', $content);
return phutil_tag(
'div',
array(),
array(
+ $info,
$view,
));
}
diff --git a/src/infrastructure/util/PhabricatorHash.php b/src/infrastructure/util/PhabricatorHash.php
--- a/src/infrastructure/util/PhabricatorHash.php
+++ b/src/infrastructure/util/PhabricatorHash.php
@@ -78,6 +78,21 @@
return $result;
}
+ public static function digestToRange($string, $min, $max) {
+ if ($min > $max) {
+ throw new Exception(pht('Maximum must be larger than minimum.'));
+ }
+
+ if ($min == $max) {
+ return $min;
+ }
+
+ $hash = sha1($string, $raw_output = true);
+ $value = head(unpack('L', $hash));
+
+ return $min + ($value % ($max - $min));
+ }
+
/**
* Shorten a string to a maximum byte length in a collision-resistant way

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 21, 11:15 AM (4 d, 2 h ago)
Storage Engine
amazon-s3
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
phabricator/secure/3p/hr/g6efow47ea7ddqsb
Default Alt Text
D17430.id41986.diff (49 KB)

Event Timeline