From 9342705e6bfc4f0e4f999bd3c1bb70d425fcb598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Miko=C5=82ajczak?= <me@mkljczk.pl> Date: Tue, 15 Dec 2020 02:04:56 +0100 Subject: [PATCH] Add app shortcuts (#15234) * Add app shortcuts Signed-off-by: mkljczk <me@mkljczk.pl> * Fix codeclimate issues Signed-off-by: mkljczk <me@mkljczk.pl> * Change shortcuts Signed-off-by: mkljczk <me@mkljczk.pl> * More consistent new-status icon Signed-off-by: mkljczk <me@mkljczk.pl> --- app/serializers/manifest_serializer.rb | 40 ++++++++++++++++++++++++- public/shortcuts/direct.png | Bin 0 -> 3045 bytes public/shortcuts/new-status.png | Bin 0 -> 3031 bytes public/shortcuts/notifications.png | Bin 0 -> 3067 bytes public/shortcuts/profile.png | Bin 0 -> 4190 bytes 5 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 public/shortcuts/direct.png create mode 100644 public/shortcuts/new-status.png create mode 100644 public/shortcuts/notifications.png create mode 100644 public/shortcuts/profile.png diff --git a/app/serializers/manifest_serializer.rb b/app/serializers/manifest_serializer.rb index 21ec0d4bed..dafe8f55b9 100644 --- a/app/serializers/manifest_serializer.rb +++ b/app/serializers/manifest_serializer.rb @@ -7,7 +7,7 @@ class ManifestSerializer < ActiveModel::Serializer attributes :name, :short_name, :description, :icons, :theme_color, :background_color, :display, :start_url, :scope, - :share_target + :share_target, :shortcuts def name object.site_title @@ -64,4 +64,42 @@ class ManifestSerializer < ActiveModel::Serializer }, } end + + def shortcuts + [ + { + name: 'New toot', + url: '/web/statuses/new', + icons: [ + { + src: '/shortcuts/new-status.png', + type: 'image/png', + sizes: '192x192', + }, + ], + }, + { + name: 'Notifications', + url: '/web/notifications', + icons: [ + { + src: '/shortcuts/notifications.png', + type: 'image/png', + sizes: '192x192', + }, + ], + }, + { + name: 'Direct messages', + url: '/web/timelines/direct', + icons: [ + { + src: '/shortcuts/direct.png', + type: 'image/png', + sizes: '192x192', + }, + ], + }, + ] + end end diff --git a/public/shortcuts/direct.png b/public/shortcuts/direct.png new file mode 100644 index 0000000000000000000000000000000000000000..e8772c00e664042779abc16be73407e3e2cb0e89 GIT binary patch literal 3045 zcmd_s`9Bkm9|!Pl%#}0o5h~Zm{mF_*2sIx^LJ?9#jtQBoP_dEZKIT4h)Z~ayCK{0; zl<VWpwZjfG=WJ9~vhO~B$M^AgzTfZ1`}f!5@qVW|IarH{$cq2~05Mw|=yl%g`LBfd zc-<dVehvTtbvxO+Sn*co?zjI>Iynoca~B{G$eG*)1Jr^cYQZ>f(IjutEPv5FfALbm zBD8S9s&LV^Xz5Dv($$hBhms|y68!bjCFjy5*RrLX<#>-5_}ee=o)vhn3cPnE-lr0O zw+bKlk`Vlgcpps+ts%l|h+(gZ;jf7iwWO#zVst$zrh)jRkrdZRLNt+(P0I=YEGP23 zU4GU~PHrZrV92R0<g}LM^mmkucjU}g9!gdlCA*E1`<{ZrQu45r{B|B{K?k+4gIe@~ zTKs`p(n&4vqE&pPRdmy;a4Xfgm6tp{G<5F@x|d$lxAMA=UiXP!*H5n>puZWQzx}e> zGQ?;ZX1p6_w2m;^Mj6;KM*G-W$G>Zx<7*!$*SjazaXeEz8$Ht-z0>Qx(;Iy=>z`&f z`e!!=zHSWi%x!*|-yB)o8e7^P!*BhI-x?=uP4E!6CyCorr0tny=Ik=_E1CI~!knY* z%u|>PROSMWxwNuFptA_8EaEDQw8~m$u$R}^<TW;RolV_f(>B;En{4{#E`4ivm1ldG z@t?i5?Y)hiy-n8M77u%GoBdyCW0a@ayac;MU3YK>@PP$|#HEkRE1Xi%(9}8&F*Gv0 zWMk`i&BgVmr<aefpMSu;kZ{Da<mVZgS=qU$ywb`lbZtXxTjxhy@4(>a(dn;Ccmi>m zOrg?Nx0yTN_c;e{wS_$ZfKZ|>)Y2tpk>JU>lW(OMzv2Y7lmvrqowk2<GktR-|By3( z86Z>`YY~*|;p%#_z|-}id(hq5`kE4t#j9R21#Us8RLiqmE94jP=FTosEbJjHCO+{8 zAvX5p_c#*AYxjhekGQqbTjWGLt+8t=;_|t{*<|)qS0k-`0-$GPZ51-#@yoiV(EEs{ zZ6-S!D~;;Pi-rcsxISwb6@qJE4tFbjjO9|wA&!>asgvEQGQ}b?sok&cj}eI)^+$s( z{88B-#nvA8=lhIlrn8#G9t+~4Mupbm#a(Neis(<G)kh-UYsbxnnFWZ(wZEBVbVB7J zf^sUJjh7H1DJLTnFZ$_5|9k~{P^=o2@M@o3iApe5^%b%HN%h6ZNSajq!7X_<udP`= z^z1N+KjfU6z4tic(Z%;F>{|WT=IZjdj!*i!vn%tHo3dJMH}}Ui2MsM)qOJij$a|^8 z61jRR1v4gT?qI@A)tXPXDXA;q(n3O<{T#mzB7#o8KNC?KL^f{%EGdGg8647$B(TM# z=ga}jM;VfSy|-0GS17G+`(-`YUGA8Z=}=xI#^MVYcU2?6w>n3xd~&eHyEg~aqOC~5 zgrz)pf7t78!Oype&{cE!C772saLlQ3%32{W8EjR0!Q5E>NP6H6mb5O!1$s-JmaeOW z*iUf-$;u0V8Z^f&%c+N6=yr+%J}dN{!??%vdyL-k7WP)=JF9(J0C=4K&MCoNguism ze4Qp)rC&56+KW=^w?FjIO9y;h%ZO1c6v$QII3>y!f)qEr5&C>o84vxP;iV4zSv_lP z>8{N$CX8m#j#eos`mvs7gf4Mu?2Z&Ix}j+_TDq?no&&J?y+ppy57u$yvq4KVnDdJg zvSX_0I)KcCwyZPjf)y_^_qEQ~S6GiCf8Mb8y&BXnr88qL=<hesnEmLmR?1D$b-e$% zWDYvsUH=Ynybgwf&cONBE9Y1;6IB(qHJAweA3HmGWF7C5$TT<(3GJzieFD}MaI)RJ zg9Fraag}e8&w(!5+l^H_N%rJymduW9QaY>>3Hef$%@IM44xDdv1O)ybsWCR?%n_5q zhSqK&`1Sp;tYgi5gDc-XG~x4ABW(x!dR+ok3PDE+#JHkJ(^v-N*g@YS?dy#8RP+uN zI+6BgAHx!~>yU_3lutN}*f6>QrXKd(1nnjtvx8%rmZv_(0uUlaKl`qW{|(gvOL0Si z*9<HZM&7vZB9=|Xvg<;D^)5b{3ghoqaBFaF`FaA#PE%FCatsy-Wp2Dwz4lTwt4Ddz z<Qv|@^`Pt!5+3^?%mt5BU60@5Vs`n|foThmFJv5SBt+ql=`9Pn{77dN>FdaK{Z0*Y z4K@Q!v95!vKof+|892fdXC1E5Vy2r(H^36iuUYL46uNH|zq;Q!;K3mMYGT=Ox7Lk8 zXz7OjYeE*m<Hsd#KX&~zva5GDqU!_`FqP_zy2oF|5ls0(T+J8wp7<1<*$J2wvT<#x z<5$|7k?FhgDk6W*6XHc)A2hK}h-%3<wFA~=h24Q~foqQhUHss$$o-}Q)lzcQs*yoX zT$#&!j({h!?pTew8+oZZ0M_!gSN1>?Q>QXNo0KZQTXdk9eV>ki>Q&u76DWzCIGy-K zYu2j|KxT@Y3XaL?%$D+32_p0>f)Ji3xJ5&^;LXv3Xy+#H`=AN@$No?IV=u{Tc@l`Z zZe<Dc{OkarklCRI>jEC4$gNGCV-|e7JpL5y5-f|9jki5;G;d?5ixva2%Z48&!j+#s z1QMdZnGZ^o-}0^C%J=c#Lk!TYdnCe*j{pNXT2ze-(PdPUJ$mO~0~J}&aGSj!Ul;0! za0IE$UPYIa&}?dMU=)nhXfZVeNj^$~++VbJue+7fJUd`L<|Pnf=Z86p+*Wo*-<gpx zy@|*_A3KxC5iz8rN`x7PS)r1leMrcGp~@!yu%RXxIkt8_8RSI0Ny&p%wnxU8#qPsK z;tl4jh5fYvvzveNnKpI0&3*mnp8DlKJu7FF3PG2&${&r)d!OmY8*bW*JzW1Ncf{g~ z$EZZ;@rzf*#ox4JWRU?l*lQX(GF!x1MsYsE?=+x#R-G@YsiE93EKo`wf5V?O9{X#3 zIou8VW_P})*E2B2vu64nV)f66nStn;!4@+4o91cIhf~k4YWy^PyP;v&@S}(<ERJvh zJu)!3Pr&#FOKT>JIiBg*mA2rEK}i$`$k<uHOJ#}~vUV2gR`m%^AQjCtv!tWTSFeSt z<^wd+5;b!9X%qS7scK3YuNjVNzzPHZB9JgcuajS<TSQGMw_&e1a^<w=+8OkIXTn?L z-{0(0C~zCjZ`p2;m(#dfYACS(S~n=G9!9y0<*$hZJ09w26;)Zt0$((eKUY4Ik_<fl zRVs9LIx-6o7&D=l6nu}iClCb8v6*W*hM`W-{WIX`QvWiE2Nvh|Gg}9$ru04+AS_$= zu1u}KMU>)h32+pAZAhiiLpo#%yPAu$MD6|6K!YDuN0b?^DXa{U8k`OTa;LBx`8c13 zgTI1n;PSeNr2visY=rdT_D?#Cjb#=g_`n=&a}GjUih~W$MW~+OV9%lu`dS?9E(&q^ z90%K)hj6y!U>_&~6@rIxZS@CbBU#9;xD}FjEPqINlMQaDU4?7NH0v0Z4CVO6eQ_U< z4@;$8FYr!@y4DDu3!{?~FXC@t)XSe1Up(?b2{y18wsQq$Wlk8k#0Z<-9d3Q6m(Fqu z5qw;Uw)<;SC-2FojDl|~{4V&!uQVuWGEK61S9BzyWn6f-)ft+|JK3*?&n4U_ks>;z zr8GzW$hK>1zu2L6ZkR-HkW$DB^#WFh58aHdSxFAccq6t_6MJ(gyc*~gnzhMY<hlx! WEJzr{dGNj+fUT7S^q))KiT?w`Yn!?N literal 0 HcmV?d00001 diff --git a/public/shortcuts/new-status.png b/public/shortcuts/new-status.png new file mode 100644 index 0000000000000000000000000000000000000000..b7095f3c457071547153ab5b99255d37d26b6457 GIT binary patch literal 3031 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 Z`ai>UH@>A_0vG@Q002ovPDHLkV1n|Rqn-c& literal 0 HcmV?d00001 diff --git a/public/shortcuts/notifications.png b/public/shortcuts/notifications.png new file mode 100644 index 0000000000000000000000000000000000000000..6b9d45718c82784e5c3380dcc9e4cd3fadb9e9b2 GIT binary patch literal 3067 zcmd_s`#;nF7Xa}0=AK(a5k8EP3b`Z_G5fei5-Pe=Nh!BVH*Dm7$tBEvZZVf!L#}hb z3%NCBo6C%0wz=oB?>>LW_wjh1*E#3+a~|gvW^H9Ectr9D004sKW=1yb-27kga<Jd0 z;IxYX06ws`v@>S6YwMf;pOj*7=VNhdYHI4SIL$bmRvb>}>!j}2$t&@b2Jw^dgh``B zoN?l$IcmxxY3f??lyx%RCS~eo>eQ{&Df=|MLmK{0I{scd{(c7jK?eR28t;h4J7waZ zW=%V1O+U+?cFCT8l}m8@MsWW|@W>;0<r80H2yZZiw-};#0r6b{@qHoTLm}y75%E(I z(WjW`TTDcJC;FF=0!m1MrKF&;nc%XSkn)+(@|m!TneYlyMCEK`<xJEMw%O>a*_i5? znCiK>n%VfDY;%dVbEvwxq`JA}`nlAG`LxFQ^v3xNwx;<^EIA8H&c>2+TITcH$e6YT zO#4CsTgO6S$3ju(LUAYMJ6ji}q>ED8O)2}&VtEgxqGz$9cd?SKkMg5$v8sQudSLPA zz|zlOOSQk2>IRqU2bUU$sZGOF>@c-?WVvO8+A^}-I!bLDTW%j)?igS0WSdy&npo-n zv(k%O?VDWfpIRN5qW!|J4zf+J4zUqv!vxxIB5j078zrrc&#aBlu1(C+|IE>G^J`P{ z^eHkOzd)a+FbEU|k-{J?GD%C!nI+~d8<jc7w#=MgW|CK!3oGjjtLqdt+WI1GeTlZQ zw6;NIqi-zJH&z%Mt8B~-8uP!I4>WPP$zA}vH#Szb00$QjuaM{oNhw)*#WQEmt7&QL z!OhIC->|#oaQ}hh<0ns@pTG1(1O<mgMtzBnjr*E{&dkj({83fkh;8ZU?CKvGpTbWQ zNHeo@^Ay?|eQRfT|8{<2GXU^9m>U_|y`P*;f9E4+EY=mG35Uwb#lYZD{|&FD#)pyx z@63a*$7E;OLt^CRZz<cuj!J29+9`)-|B=FkX2XoQj-A!Y=FUN8nL*dpQC_)tg_?B& zfkxj$*I-p^r=PDi%5mP`D#<vMQx7{aIcwvq@HpY`Z>Lu#PL`qA{Guy2YF^^^HG7PU zd5$T#?&DwDJtqt+=`{v8<c4o}sG7b#82l9ItRB{TWYfCmVQY(GQ>15sGNH@x`F1sd zk1UYM<aEEwwOVhQpjLJ@8=v6mPD$;JiKn_gd%I`lzbkNK*Wc<^)tX4&<L=)<we|x| zuLCoBpuT~XH&?d#$JLW_`Du#v2l}90OA|8BM(hM@Nb_{%@8Dh+1WdCsAe*O~jCdnc z8O}86b3#0lu1uNbp52p8ZY##5#ddG)nP?~}RjB5%TF&-UubzmcAnfF9VL>@%dFh6h za$H%KHhWzf9b!|mG=#N?t+n~*%)^i;8pa7aoC^qhEn9nB8}u-QqS29{n?_`Xg7d(~ zB1u~Y!3FTgm-vFk)e<ns<=dLdr~;E(X?JGK%RKp~7KbT9y-x~l^4cNa5hAw9ai<2( ztvDr9#gv{pi?`chpnU6yysHik`V#jrR!BJigp03j($xef+-04(f?Ki2SJ7(6`U0jC z{dHb&cQ5&NDSaup<Jm|<Xe1P&d`CbZUhs4;e^|SmQt)8-O2$Jq&}bW<8Cnwp{O(7? zxu6Dxjt6OcBNO9}qMS)r5JvjgqWWM-%}qc9)>K>B{|HafoVL9Cw!{2Mz@rP4iEaw^ zlS{omoO>u)9}*4o>rXX7c9jzYc)#un|Jmgzl?2Ija1W*S7V)<E^`cCW6GH~y98WW! zc@UAorCKWLVCBiOb@%z2%un7{(1q>w>AOWP;sZpw(rLp-HBn*>>ZJN_qd(kmV}aVo z-%LMYbcFlRwO%|}_s)Urc!OZQ2;Hibtzt3@3d;5FF=!9_=%TfH4doYQG^8`3eni1} z;M8P&p?*6klp2q{698e3l#j|cMuM$>t3Mu>Iyvjje_&h37t~zO0RzJue8q1>Z0c~s z;34~~UhjX_Jx|=r7Zs8N;?aZB+lEQ|s(Ch=6iu*yGz2Omv%+!i+MqnpF10M)+g$#| zDv{TE^MZ6{abrL$hm7k#35DNy5#VSoq_s!x<FBVUhR`G+>lNTYGFvm>zCO_ms+gok zlVXp10G2u&2sc-icyS+rOufG{LZmV9Q6aRE2k2!WM_>(*`*}{Ui_6168rt|&3<GpI zv~Z~j3t2l#@Zm|G$2~!oChRH&v`=zecnz|X19mQQxR4y3UxS7!>58r?ptu=FXF3Qf zz}YhZ7}M2mGeOXmI&p|oG~FVtlZUR_nzI_F1dnI<020rxm$Zw@%nP6qfBC^kMMemZ zPA^}XET|bB*!)>~fwTF~89_O9Ua50wz+DL7WG1iIEo6n9fB+)q!JF?+O>Sy}Vcf&# z%Cp_a8hL>`HUh$4vWm^hoJc2|Bf=UXqM3z|!xbB_!9V&J63=PJEtxA^>XduH+Tgzg zQ}FNl(<w+7X|+HCbOG(=X$gRi9)i0esiy<cM|TwT?{^3y>BpC6(8KP#2O}!H=o@s{ zmL5O?1^Nr<B_s(07;fRGcj!+_65$(yJ{mmfR#*<Oy&&4^UvbUXhQL^UGruG$&Pz3D z=`lS{<R=Ef%UcFCU_xFMjYe~Thh(#+&Xq-d-?V0J7%p}mcX2KE6Olm5aJs1kXuX?g zJ!s3zH7;A-ob==c-Uxeqx}Sqr#N6Z`Wathdza)9vN`vAS_n{#^iqGUh_n3;>NU8ax z&9mX(>fhgXR_Q8k;F+#JlR;SEG~>yY9JMmxl-TBwg<V2abTMkhY)AYkVEU|8jgF^i z$Czaa#|2YDVE#yr?aP4@6wM$)n_N626kb}3FyrPWTmIGcQc3t1W$`O}on%>`W=y`Z z>G@ng@;S;z^kHctAM#Lfz*Ntj$`IAq#Tw75c86&1?jbFKsc*Y$G5abP5B$=V4^if6 z5Cyt8EbXqsXO@CZO=yFh!WrF?W!yk-f{p2{iVf;w`c>;o;m9v5MAthi3h~(FUqQaa zek|^`lCQ*<xEz7L%+AE=43n>>sHCw_T7_8a3C$|pl4Ac8L!x>^es1s0@a{iX2CQzE zeLuZF2;1k_>Afvbhbx2Y_|UjNP^~6Mze|XfOV|AJpw>kGlYHK^>0>>ZtQ`7aBqj9$ z@$GP##2_{-z@<HI<8OqZ_rsS?7lp5{mA%v6g37>>8m@uv6fLc3O1Rx~<9yFQi0#P( zl3tzAs(vNe#B_*a99>s$ziu745~WU9+ya+giP+)3)JIIob-t>&C#rq2Q)?oHvqs0V zjbC&S+f;Pey5U}}BjEKZLsS>tz$j#(?z6h9b1<F*H53TeFpjQL*zPWJ+AmdWMv5Fp zEVSNtj%}@37Q;Fg?x?s1xl1bhO*u29o<$Jr?(HlvW^2~OSzs<kY1vVh2!v7U31P|q z!zk4dVQHLYl&*`g;1?OCKSWtJhK$m;4Z!(vG1d!PhAOHNDA_*73Lx{7!d>O}73Pfg zT?vBEl3Om<t}F-aL0r3a;Hn|MzJV9Y6YsSSv5wTKi921>;mU5}XCJ@z$%=L3zDkSD zs*~Z}SB_+nKbXhs-mqdH&&<3jG9RJZ$Wdpf9mS|sjo9{t7RE%GV&*TW6<Z5SWuMmh z7?gk4UerEThDJ6UJtL)UaLp@vv&Xnc(m-1(+YML$@oz}`DQA}mi_L_{n^cR4suN-A ia)%iuTRYeHWWD@;pH!0fP+)&z0CQt2qZ0U|fd2tVJih7x literal 0 HcmV?d00001 diff --git a/public/shortcuts/profile.png b/public/shortcuts/profile.png new file mode 100644 index 0000000000000000000000000000000000000000..0b3bf517ddaa5d49281a6f2ad32d3e6f49e8bb6f GIT binary patch literal 4190 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 literal 0 HcmV?d00001 -- GitLab