From c550964d167f429044dc86c32801e59634a04033 Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Fri, 1 Jul 2022 15:41:47 +0300 Subject: [PATCH] Include placeholder icon for checking for updates Signed-off-by: Janne Savolainen --- build/generate-tray-icons.ts | 23 ++++++++++++------ build/tray/trayIconCheckingForUpdates.png | Bin 0 -> 503 bytes build/tray/trayIconCheckingForUpdates@2x.png | Bin 0 -> 1193 bytes build/tray/trayIconCheckingForUpdates@3x.png | Bin 0 -> 1877 bytes build/tray/trayIconCheckingForUpdates@4x.png | Bin 0 -> 2729 bytes .../trayIconCheckingForUpdatesTemplate.png | Bin 0 -> 457 bytes .../trayIconCheckingForUpdatesTemplate@2x.png | Bin 0 -> 1010 bytes .../trayIconCheckingForUpdatesTemplate@3x.png | Bin 0 -> 1559 bytes .../trayIconCheckingForUpdatesTemplate@4x.png | Bin 0 -> 2181 bytes 9 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 build/tray/trayIconCheckingForUpdates.png create mode 100644 build/tray/trayIconCheckingForUpdates@2x.png create mode 100644 build/tray/trayIconCheckingForUpdates@3x.png create mode 100644 build/tray/trayIconCheckingForUpdates@4x.png create mode 100644 build/tray/trayIconCheckingForUpdatesTemplate.png create mode 100644 build/tray/trayIconCheckingForUpdatesTemplate@2x.png create mode 100644 build/tray/trayIconCheckingForUpdatesTemplate@3x.png create mode 100644 build/tray/trayIconCheckingForUpdatesTemplate@4x.png diff --git a/build/generate-tray-icons.ts b/build/generate-tray-icons.ts index ed90d27832..010a00989d 100644 --- a/build/generate-tray-icons.ts +++ b/build/generate-tray-icons.ts @@ -12,6 +12,7 @@ const size = Number(process.env.OUTPUT_SIZE || "16"); const outputFolder = process.env.OUTPUT_DIR || "./build/tray"; const inputFile = process.env.INPUT_SVG_PATH || "./src/renderer/components/icon/logo-lens.svg"; const noticeFile = process.env.NOTICE_SVG_PATH || "./src/renderer/components/icon/notice.svg"; +const spinnerFile = process.env.SPINNER_SVG_PATH || "./src/renderer/components/icon/ssh.svg"; async function ensureOutputFoler() { await ensureDir(outputFolder); @@ -58,8 +59,9 @@ async function generateImages(image: Buffer, size: number, name: string) { ]); } -async function generateUpdateAvailableImages(baseImage: Buffer, system: TargetSystems) { - const noticeIconImage = await getNoticeIconImage(system); +async function generateImageWithSvg(baseImage: Buffer, system: TargetSystems, filePath: string) { + const svgFile = await getIconImage(system, filePath); + const circleBuffer = await sharp(Buffer.from(` @@ -78,7 +80,7 @@ async function generateUpdateAvailableImages(baseImage: Buffer, system: TargetSy }, { input: ( - await sharp(noticeIconImage) + await sharp(svgFile) .resize({ width: 60, height: 60, @@ -92,8 +94,8 @@ async function generateUpdateAvailableImages(baseImage: Buffer, system: TargetSy .toBuffer(); } -async function getNoticeIconImage(system: TargetSystems) { - const svgData = await readFile(noticeFile, { encoding: "utf-8" }); +async function getIconImage(system: TargetSystems, filePath: string) { + const svgData = await readFile(filePath, { encoding: "utf-8" }); const root = new JSDOM(svgData).window.document.getElementsByTagName("svg")[0]; root.innerHTML += getSvgStyling(system === "macos" ? "light" : "dark"); @@ -107,18 +109,25 @@ async function generateTrayIcons() { await ensureOutputFoler(); const baseIconTemplateImage = await getBaseIconImage("macos"); - const updateAvailableTemplateImage = await generateUpdateAvailableImages(baseIconTemplateImage, "macos"); const baseIconImage = await getBaseIconImage("windows-or-linux"); - const updateAvailableImage = await generateUpdateAvailableImages(baseIconImage, "windows-or-linux"); + + const updateAvailableTemplateImage = await generateImageWithSvg(baseIconTemplateImage, "macos", noticeFile); + const updateAvailableImage = await generateImageWithSvg(baseIconImage, "windows-or-linux", noticeFile); + + const checkingForUpdatesTemplateImage = await generateImageWithSvg(baseIconTemplateImage, "macos", spinnerFile); + const checkingForUpdatesImage = await generateImageWithSvg(baseIconImage, "windows-or-linux", spinnerFile); await Promise.all([ // Templates are for macOS only generateImages(baseIconTemplateImage, size, "trayIconTemplate"), generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"), + generateImages(updateAvailableTemplateImage, size, "trayIconUpdateAvailableTemplate"), + generateImages(checkingForUpdatesTemplateImage, size, "trayIconCheckingForUpdatesTemplate"), // Non-templates are for windows and linux generateImages(baseIconImage, size, "trayIcon"), generateImages(updateAvailableImage, size, "trayIconUpdateAvailable"), + generateImages(checkingForUpdatesImage, size, "trayIconCheckingForUpdates"), ]); console.log("Generated all images"); diff --git a/build/tray/trayIconCheckingForUpdates.png b/build/tray/trayIconCheckingForUpdates.png new file mode 100644 index 0000000000000000000000000000000000000000..62115122ff1719d3069d9360bdf0cb7a54d56d9f GIT binary patch literal 503 zcmVT10R5E{C`0Mo>peJRLbP4p@ zzmyU@0p0^0z=ag?Rr?7vOWO7R%JVtU7VQ*Hu%NT3Z43fK_14VT(K2DzlegK=2z5z!e tGBXfKZZWw1q8ab;g+n+&^FZ#Cj~h2Hcq2(7*(?A6002ovPDHLkV1jbW(?$RQ literal 0 HcmV?d00001 diff --git a/build/tray/trayIconCheckingForUpdates@2x.png b/build/tray/trayIconCheckingForUpdates@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0be31d05ab3837cc00637a78be8323be0281f15c GIT binary patch literal 1193 zcmV;a1XlZrP)bW{k5CPu@@nlMpXZ3#hZG)=Lut!tTmyY}mT zr}wol?quhjdp`UBIXBA+fMmovk`2k4;e#Z%7y__)1|aS?0H}*=H32J`%v?zu!G|>8z z#@9rnOKY}Y3itbBOgX<0%=E6gqgjLsOr!IBU>XI5EEp}}yt35nFX-Sc01s*HQwiZ(MGe0c^Cpr% zrq&9sLRjyKJhKoOtt5X7OipTjFUfxjh?-XWB*5#5kbb5-SK!)shh&?(A`9BTsSA1V z0Qj5aZtcArGKwOunH&v=!h}!Y+#(Y)sQ~dN&ZyO7yb{f1R+*(e_RU36haW=tv>V(rmbY}p|jzuV9CeL@JKXeRLEx#N?T6a8I&nb(Y(FkL^ki$%x%285D*_m#O-A@$ zFj*-?ahLWFYww#R4da~!Y5hIPAN0dg3J;z7RDe{7gULIwSL>asaWejnTdI7-r(?K9@>RvL65 zMr(!1;UxFUI^U68P^FFI1`v_~FoxutBI$x@0Kud(9RJgS8H2l>sX~k9A3R2fU0Xq~ zlN{}Hh7K4+vhR@mStNf_#{U-_GUEyWGFPQL0l?p3aso8w{zmc==b-=*W>-rZRm5!K z@7vCCNUMtR0+oO@de@m4W_tj5C7BlF)n4(Xd8&z85Gfp%In)It3ui2`@iNIPQ&UAS zv;3y|i)vGW8_jc`>dmRdd8U)xuF;3&;}w!ClYY#3N=<>}j>IHNz}q@uPDjI>)Um6W z4{47A@S`tqhddt%V81L}%79DP=y#H1$KM6+>u@HFZ9XFPbO#j$nTdqbg2HTr1r=Bes40hDr)&s z1P%ZVThm$@G&&63XSwp6HSmcb)&)WWH^|)cNdA*F5gT17A^8etx>pXX z#skOlsy@-+XZ_9uaa;>kA)tK127ukJ!gy!BFdY)IP#f!xAo&ANKFxIigVlUCxyj|| zlB2=>!61O)5^f{hjT9}7B6%gr*(5LbF&n@fl2`e&jsrkk&n0;+$%*O%5&J)OM*BL% z_Pyf}<6`hVl{+@;WmSk25b9JK0APjiK``R*4 zOe*G0h%lTA8j3GQ?V%ZK%w3}|y_VQ&f?1aR27 zjc0Kd1dm1=R0A6t0#FdK&_kLhH31+dH_Aa=2VjyXjW#9&xW>;EOCN%wQ9ysMrGa~8 zLKE*&XFeoxxz2&r2O=U3E{R%s{%|+dUqn-Mvu^=dD$Hc3X&d5T=72_9ng9^{Z#2*j z<~b4K5(Qvk@VLosb)kYN0T9ez?9yA&aI6GiUB0_Xo^R)XZ+oeRQ9Bei`on=9EOr=e z25^h`LUC|O_bo!LG2eFrf;vLdd}R~KDeA2=S@&qkEv})Ez#Z2Q~_94+2xF%R06QqQ|dtpfYHk& z-^yK%icA0kx`;kuo>|paEYMXOhsS`5k5o&~@pVV|-<48V#Gdaf2&qMC0ho`qB7`{G z@+^_2Lz_~5xi!UoO<9bdkB5FS2E!s`s6qOr9tF;oX4ik+y~_NTH^ z!{{nEFFVoWy>$`=_sPE5zj~Vh(02NPhTUkSdCMdP7!&2E-wP8$V&-hgb=o)R@6+9F z04hvrnn+dsp{|vFYt$JW;Ds4WvxF`g{O(#?LKcsDS$cDTogy>&<_Q<;Q3T=rCZh<$_7W#=Endr(&05u?{MQ2$KH>0Dn@wxJzZE6%> zCyV-(22Ag4ZVIL&DEnK3`VA4}gwHmwa$7fD%pUrzZPKVz&Av zfWMe?N|Dr$1(`qYY*EAgfY)sY4t`U{w_H{oIu%8ihq9+>E4_!5*WB21k zfQ<9LVT%*y4>jv~6R3~8l)4&2L P00000NkvXXu0mjfqOx;x literal 0 HcmV?d00001 diff --git a/build/tray/trayIconCheckingForUpdates@4x.png b/build/tray/trayIconCheckingForUpdates@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..355509d638f9f7a6b58ceabc309f4320edb9f2de GIT binary patch literal 2729 zcmV;a3Rd-rP)wNGfvYsD#0P2h)t8kIy8V#Fa93WA6x zMgxgIG=dltMS}xz2yuviRDv;46clGeVsL1v16uln9|Fe26suS@)&ZwdDS|^^-}=lt zUEk?<*WLHrbMC#bu#%m9hkf?m>s!NKd+mLyYR+V46#y**0BZoO1+b9*Yl=L#5N-Xr z`nShCVU!u4{MrH-{C^R^Ishj`Sr5Q}D}gr_ut%LRIXmVUoAjrP|RfV~O8ZD#gD8E+w*$+2R*N~*Xm zR9k5|ib<)#$lyfnz&PCp;P~iwZAkvSK#|Y<5Wq`xF4^C#8US`=AWD5RfUk&{U6RW# z?!<6rI%|gs0I!KLYUZQd6AfKMTvJG2GBfuv^_<-K`m+RMu4IC6e7+38KgqaAy9?7p z(s$4(*@S5Ab9;;RebU zau((Xf+jug1^~a0Nzo?z0AT6ae*id1ZQsn!5YxzxbO?k1hT3p9fKAbd`-T1>U^Eh2 z6zS9BzFwqbQvyH+-!7`pF}F+qZ2;@<3c`AEj@<#UQD?`=T#@Y4%bhV`t%4oRATN7A z7nNt#s{h4_d9QazTY}W5 z-x`FF#V32M3<#;yftcAP$=Q7<$NXmY<&LVV|FP}2MMB&>UEQO$vhHqzDn#=iT77pG@<@o%*0jonW?YMu|Z;AeF4z+G|T7XjB|Vop$X?mM@^As>)a$c-`nq1 z0NUJmU0x@1BFGO4R@Hkr`exvn8*kY&5ft zUeBp)ijCaSs1Qf(;mJ&JOmakGUj*tBYC)KRZ=UXzM}8Mf4%wfUaVhlGD$NE7M^NG$x=EuY(Hzv)TB_5!*?#gk%qM7YU5nv|( zq;t|)vepm!9$ci;AFrP#&RL_=afN~@ZOEvtzv5YBCCkx18Ke(oE%>oAFioCb0ApUl zZPw{O6HJtcF)L%h&?vS}nQv3_Qs`T&3Lp)?={y7t~ z#R>#@bEkSjy&s4HmgJCQnvF=#^X-i-axeQIV+sWEq|2PIu6R^%q>zl;sf^a{IL=hyKf37m;q2V z`&Y#JowT43Ao1k6E@4iKG1tY2Uzkl=oBpHk@z3uPp)j|(XUGZK5p}ymBsj}bqlXlJ z*`ZSmFeVxti5gpOowRAh7SC!ok}{*Cu10czQ~H25;xYC@PYpOdj@`G;P|l6pDVt*x zzLQ3p_ z`+<4*f-%L@Uk{tvpJb`zwwwTv`9nN&C>)p14S+$^r}x+n&x7hTS*-C32>|9C-xwae zz9%G0Y*!FU04$W2pFz~O%CXW^@xX*QfkBCh7w;8Ru~W-&fM1S&gUso9k|91En&lTCZjY5ki|_e=5C=2p41iO?EWG23PVppuiLjR^#L_pA-| zcRHr<{?AU*KRK?)HWw|#^v+M<-5EPXw%1$f2POGBu59fMfKv*L)`%wTknQTo4oy5V zrF5M{eC+2l@gLt1xx4^?215KH-$-2!HQyd@lQhM@1Ne?)focF4e^gxvDw7D{y<82uaT9Z>oFL|q;b(+@AkCB#lZ+BIrnw(f^(7qj2mGv;9bOQ(vz4|b=8u=NhoQ*Qzx({m?6+}b z#T8;+OKn=pajn83bobXHgw-W*+Q3Cy&#oByDZtg1Np?hRJV`4&-F!+BkgKX=cBO z`@#oegY*YK{f!eFPk?+lOvnM`9mIuc%c{RziKJd_$V=3>US6JFH|FK()tmIOAR9jP j==A!0NNl9-YSI4zAWKh_vs6Tw00000NkvXXu0mjflAI+c literal 0 HcmV?d00001 diff --git a/build/tray/trayIconCheckingForUpdatesTemplate.png b/build/tray/trayIconCheckingForUpdatesTemplate.png new file mode 100644 index 0000000000000000000000000000000000000000..1f01764ffc8fb127accd5b3b01571c3928aa0bf6 GIT binary patch literal 457 zcmV;)0XF`LP)YeZsyzlRdbNomg%z zf5uik&H8J;A2HH0n90F$oM-}^!bC5fZqBxXeQD?oV*wwM+AYlCF79PM$fKJyFLXIi z;%L}(qtdv5X-vhP(&n%%3iutr@B_O89BP6*8<577MCu>B?E8!@*bz3zuoSFAvF}{y z*F2AH4fqD$M~mlirF1wbLd;~N1iBx==3?#UfL`=i&bRbt|6|peoWI3YTxrf;x8*;Q z;%JMdM61`!);9s)jJ=CVW3>{yavV<`bT5qI8cyR;K($|crO6X)>=<;7QH@fUt8w-R zu!4tphgT`Ga-f2&8T}Tm7Oui6t5($>)W&}SEbn_(3Y+c800000NkvXXu0mjf-38Na literal 0 HcmV?d00001 diff --git a/build/tray/trayIconCheckingForUpdatesTemplate@2x.png b/build/tray/trayIconCheckingForUpdatesTemplate@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..df55630b45eba564e97be95bff349821d696cda9 GIT binary patch literal 1010 zcmV)(oC{)hE zO(Ht1&{$+6K@e9EREUH`h&$1^kBBQouy()wR!064^F7{g-)}L=pqs{yB)5v~Q(Ds*xYv%gN@09nA`>@n7F@PNTcTag?Yb);e*kM9DK-PyX4^C5dhOG1e=Xb(wc?gfJMP=tAGu_dfm+W zt8>__Jt8VlAN-oW@hf57ZQud_hsq%OV#X6H1tk^)aGIPvrMi%eCI??<@i*X$&OGPB zZS$iH7kIx-{_m3mBtCYu$~brqboDIvJ`ot7k6U501UTxYQ?q>Ub zlx%vblZSYA=$J%UY5{Wx3fzf$DT9-W|fdqZ$J+BFCGZV5SMUm8n;lSr+Wj|WRMDqu%QfWM%a5&cCqLhurwU(D&1aAB$Tbxss$Q&D4dIK2JV zkZH>lh*p@FKyq3GxMFw16ROKlV5P<`S8!dK3rIRyiOH2HCS}+(U_ugvUd~-o|GwCg z*sV%In1acHaN}ZPdMiAA^RsZ<{hBwNIHR`xv<#7(3~`N4Dqr{+R8nGlQb2eV8>|{F z(cIO<0&!21ZhZr|sUMafq0p%<7yqXcvy(c}00jMnyba@XLrGT+8)CK#fHgt8-ugAW zs`@XwC>E$IWVJ?F!?_`W1D~HEDbHYod=%C$M2L_4BM@?td^=yVAcGdTaej0 g|C;qGaoKPCPwi^*Z4#z3y8r+H07*qoM6N<$f+RrKjsO4v literal 0 HcmV?d00001 diff --git a/build/tray/trayIconCheckingForUpdatesTemplate@3x.png b/build/tray/trayIconCheckingForUpdatesTemplate@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..db54ea1b77b628ffc8f2169f85cafec6fa43f5cf GIT binary patch literal 1559 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 Hu0mjf>J0#6 literal 0 HcmV?d00001