From 7ab832e854f4a349e11feb580b8204ec458aabb1 Mon Sep 17 00:00:00 2001 From: djmaze Date: Wed, 21 Jul 2021 11:19:52 +0200 Subject: [PATCH] Custom new mail notification sounds --- assets/sounds/alert.mp3 | Bin 0 -> 9364 bytes assets/sounds/alert.ogg | Bin 0 -> 9958 bytes assets/sounds/ping.mp3 | Bin 0 -> 12072 bytes assets/sounds/ping.ogg | Bin 0 -> 12344 bytes dev/Common/Audio.js | 10 +++++----- dev/Settings/User/General.js | 6 ++++++ .../v/0.0.0/app/libraries/RainLoop/Actions.php | 6 ++++++ .../app/libraries/RainLoop/Actions/User.php | 1 + .../templates/Views/User/SettingsGeneral.html | 2 ++ 9 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 assets/sounds/alert.mp3 create mode 100644 assets/sounds/alert.ogg create mode 100644 assets/sounds/ping.mp3 create mode 100644 assets/sounds/ping.ogg diff --git a/assets/sounds/alert.mp3 b/assets/sounds/alert.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f1779dfe99e7b9c4b206fc10dbfc9eb4c17e5024 GIT binary patch literal 9364 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 literal 0 HcmV?d00001 diff --git a/assets/sounds/ping.mp3 b/assets/sounds/ping.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..52885ece878db24f65b763b947d26a6b0cdd05db GIT binary patch literal 12072 zcmd^Ed011|w>_6IBqA6E1Q8@4Lqvfvic=G&VuT1)D2@f|Y!$GIf<<#9AjH}NPT)u! zfq+U8t3@0uf5O7h3)C6 z3RnOD8}u2D(bPuRFQAMLm^W`8I@U*@xnV0dZeH^Ja^SmU(+X!NTZbvO_6#T3lT?B( z_TT2M4qb`Pj6k0d0Bqj?O&!B=W)>4{7*4L!neLw6Y@gZwa|44GEL!x;{U007BA}qSE8^_BLjf$aq3LW-tdNgyDHaCD>BF0h3(U0xB@c-p6 z>=Bdz5({7o#F(}UUrs16nSKW*J*Tv_7{|PP+;xX0{|2J%;>-33q4}>*c1}5&JTmQ% zWpwJM$31r}^*NWvI_Cef^v8+WVQpR0f__+cXI9Kfi}P*s&xeG+S$0f&mob0EnZi33 zqe?d|`og8$r)86VK~Adg(#ya7Ao@dHCn7o6dgYkv2jh&$vA?T{SJhVqFWZ?oc|`Fr zSHYb<4|kZ6M^;FBZhETV2aU4UoaV1O&0fCO#zX_#ty1)K|2}Wh)n`dt7LYdM*Kwnp zdtDYu$P1s}OLxl}!>Io=q26ZVF%nbD+3WN{8Lw-n`S?j;qXoG-rk7;PFR0` zbyLDSy7h=M+1EinUX@+5m#{#nWwUzFs|_ZT7SuqVWU@@*y%iW)YxyoIm}!h$YY%lqNXo_BV0HeBckj<_&6 zn~}cb^-U|Y)VdedDY?;1Xqta1Yt6;A4h%3Y4oqmSGF7pdx4UCa?j*Jw%SR>ba6{x3 zLvxpcZ!YBCVtpC8Fl)lfwgW1D#Y8RUY_s!Vq1pQ(^0~6YV1YZ zmzTv{Tz=FgrzZ}(aD9_SXLI0BhnYPYr=}-M!$)aPw7ybM$3MR#_qFco<(v16iVAf& z5Ks>5(^MocZF{S8bvv7ZI=L^0J3e@ta7L z$b}s{rpPC?|DIWyOUX1}Y^T%AskwQ23zUi0eyhiY?~x>m3X3!-g8OTYOU$v;TbV{S zje1j#hZ^uV-*oRzNL%}**QVLK+2!x%^E0%H&DncSXT10FJ9n3(cYf8$`0hQhBi@oT zmJ4AcQwD2@c<9r;XY?asOACB`i4khb(l?Jg{9DDMCCC2wPQ^rB<$j8B#Z{|*#&kQoG^&I10v~6D*Hhsz@C^uev>$u!#v-URpKiQTB+palx+f zusiKml>(jUzQNl+wc>SInfyWcWGukC=f%~sgd-dDw}(1}w$CfGJ?7J~eOlfx^7d-j z6JGKbjJcf>+;tdW0roGsX;kcx+pd&NUJFks65+MAN5hb()+y$hg_Vs%#yXDRAaodO zbL2{ueA6-36%&m^<<XK3O zMcqtzPT~Etc~`Po4Sb+jPehW(KRW+s>8)G0t3sGG2PfwzcJs3XQ*|i12LkF^UgO)Q zb(@Gf4!2J*zkDVlaBg?$EBL3X;D!&(f<17LN6dq-!r=4Z(%X=WLamBVFD)o7y}@EG zqiOw^GJ4&yIj1a&&qp~jEW(@3zvDv3HCgTzQSX~=n2J1=CaOpwg77U?{M?TV&(*u2 z(FDW&8YJs@auS}vVgjnEM$#9TZ-p3i>%X3(p|M&%GNs#QQ~kqCUCwIQ!$QIh(@I|Q z{Ko7;Cx^Au3vZ+@zF^X!Q=|A+ZS8tPkzyVSXs7W6PPz!Yye=otMMLc1wrdq{ojWau zG~E?*1z5i0S<&0}@n>eyMO{Blo1yV?1m@%JdCz&P^ViirCx2?pf81=-{l_fWBnSqx z#`?fF4{9L%<5BFL(uojGI*PKZR*z8Z;hRn51G&x#sW?brxB{TZ*X;=IY0U3#ei7~( zt}))72H#(V3NA6~cARgV9NeHD?#9TSG=1+^=JguzxytaxY*E`%2xa8~3y+|pI@-4A zLIs3P-1Zwh6PxNHOibHB_N`g|u!|GP44Um4YNrwNljuP@gwGXW@Ii= zU@V;d#l{E-kG@g!MgbqfYl20~6?f4@D`2Ix7*AdZ;lrTCGgv<7NA$==@+G5UxNXlN z?Ah6ZzRSinTaXc@7TA=s$PA1#-KDJpdl)6%IK?e_v9vzVl$tv++WxD<<{G|RM3u4m zhtEy<{`i_(A#FAbt0?)w!b%Z*3tixQH9U9@B*bYp^e&06g0g23lwZ){JJ_}=IRf9j z@?ac5O3~9yG>r?4R?}=jc>A8X8=fb7p6||Nmu1`f0_(|gWd71^iEzG{u`>*ora{fMDAY> zTv>p+dpT#>j%QK!_DLG7fQ>#%k~v%ZvtBSVdt&Zap7_AZmuHdj1z2& zM~^Srwr#x#Ry2?DK*1WIV&hSVZ;u~A2C4M~Btp>+kPwy3k%l^%YB)@YH2yXA#UFs? zuU=~~*`(Tnzw(ulfq~bLMn|r+*c8dOZaOw^ztj}CW+&-;T~9I2{Ihn^9Mz0PbI;Aawp;Jlyq6Q2 zi{9CqY^gZ7jU%!Y={EV``Z_D+Yapz93pe+U4OizUu5934TB7GLp}@u^7Cyk~T3p#y z1kM+vT%6wmJEHim`w+Dtn4SMHVsq4_5!`R_K+=ncb-v4Z@pT2;J?qnrmRwn?s^*$Vt$^qn6TKlYo}qo%eCZFUW!y z<6OU+Sn@V+v*wrgjm?gOJYsAzKv|c}u3ML9s{P9g*#V(1_g*FH-suo#({3Mv2M|j3 z+E5YfzB=m=>=Kmfl;t~!VNXvyu@ej%lgO@nl{X9KbqT1dx?{i7G3!He zosPUwUyW2;^&Y$H9Ai4neF)*RCS;k*uxkSvN7EftiggcQn`jROEy!|0fIQck3tuSC zh7T9Uc*d{nJdB!#|MWZ13V~=>!D2@i0N6T1vx6u()$A>~sbka{_}cId8I2;fMu9@h z)zPgrf9%Ub0Rb`U4qTIy?DPCpo~fQybHQO@EJDelAK;>9@*sziImY9>Y_>gwMR!oS zK`1>7Wd#TXxbX^E*zYG&mR(rzBky>_%!BdcYEB{Nqb5`X@1Uo%4a2~}ymnbwTV8w?Mjn^d79OMq@rr&}Qx!iwV<`Rn6;at|gtAbN<~7Uh~< zNNj`;-T|_ghY#`rO`hH?TXt`+Fds$G3;`W9gL*DhoNj+HQ={?mvWwk2xD{PtP=~8{ zEJk2_C065%r@LW&;H^=&@F= z;vj(|%-00NFNXt(K=-TQ4NzWrZTFc=x0_Y=M~z2!brsjZcigT!@a#!*VEsr;3OHg@ zq2O)(G5vP)ndG1dd`+dtYEhhu097kjUIPOU9LN+#Ff;_fC^5+k_E1qyV_&HSHG|F& z)H$xOOosnP3rOBnT%sCAbyOdDbqupv|Mk+fSX>rZfKqk@($SxnXtgH0Q2$_Y9ZQ9& z3VZ`qmi=f-kI9T)#BSQXS^p$E%IJ4S;fgu=bEh#EX@?~eIPY-P3XNWzBCDq85dV$A z*_G_HGv`!7*Kif_+!9jVocG*rt~?kX%Mxe`FR?VFfNn{BD=&KW9i3%hn6Ib3_a^Dy zlOt%N2$D%r11>}SU+hd049i(Uig{=g(_l~Fw1ZfCjm1s)ypTwmu#2TX+>soO>&+Et z2%|jbBco1Kgm*0zDHg&%`(^PmN_Z*Gk^-aak0Ipv{P1FB2bkBkQmz3Zf`k>vZ~(?) zypj-y(k;DwKndfgpeFoM$QD}G6o&rrE74=u*>NG77({YCW$eID->T6N0LH4t4athJ zsjr|Sjlk&yu?hEjakd&x+)C3N4m*B`2j z_`>ig@*u4Q;_7*ces%Q$rqtcm(`DmgVfO|A#`sBn@2A20N}NxZP0>n_!T~TcGaP+W z=9s8xL?>1WNO5KtAM)0&?-!C_+6Ch9#6al|2U<$9Fp_b-;M1`J1GP|Wa1Ws|5*xy8 ze%~qqWWBKu@l9s^Q$gUo1*%4gL5*Nu$hVa2=~Sm|r7Zul^Q1RE3;ncSzdu_+a+OQa z2^ApmXZ`vxW5hn&sHsXmL=*z2KBg#^vsA)6C81NYSyZQjkA_dcQJ@gCkQ#m{P`)3G z3vQc41whAoMBA?;pxFsi{>Xh1z&2p~tt%(*ec!`{4>yIZh)AF^e*t8(+cOB9#_dJr zoTXCCOE8(A9m$|apWbz5W_`J%?wk1=Pn$k{mLlDHZ`eW(ex)jmy9CI#8vpG7bGdNp ztjJv*-v=fiaU{v^U#b>XbWgoNuFcC@lA{lP{C3I(g~b8tccDD zCiqzMvpNxW1vB`h*Il%!6^q zU-$OTVHgW(P2fDk3R^kBQp`ha$&!=|#(vUfnrf9~@ z>_K@!*at%A?)ZfP)P@0C<5StNXU$3+Vz>m3lvj9{vsi-Hi^ma;H@ftxJcNkCupA71 z>yA!@GOc(u0MyjgM?V%xo{#NsVFIU?=XRa5kienyvkDMSKR!J;Fo_cbj5PO4zb*IY zHmb#0&yH|i6zP~V?Q$VsTsLKZ(fxRuYqmLgUD{W^!>peC*lsel9uKe{z~>p}_6Ru< zoDxsq3k#_9PvH}e)FOv;A~y%z^huY5Mvdt*Zj1!rw93|TIg<+#Uq8(sfP?syaOQvD z^Qk!hkTyRDVG`mE)3THLITEad|?jN==(tg7Yb7lmtNU)4MaR&(@vlcOp9Azc=j(z!f$Q3dppPb z*mkv$?V63Uk%fB)g(DOao-hDvHz!KcM?GbsR`#`>)Ws}N$)_(r&v``xKeiM*CUK!O zxiXxh|C=m){4_Gz2R`GCYQSOravaQDYzf7a$Vwby*uC|GxxMt8F9r1yGfGn{m7YH| zJ|UJ0mGyS5$PgizOn=$H`jPP5Hgf!Up#H8oMHr3zHYl7As;T582V-^=sTie)HQbL? zYB)p5r%$)1nD_~2c8E~`Fz07pV*E!x__$hspH1!4jcnB!tUp-{7#O(INsipD#8K+T zbCYm5waC|&luV~j>j(WQOAwYe%95r`LozJ{3|BPOIy%?r?8IWgM1*iqGWa^=?=b52_(b^cb32-Gj_>XiPPr;)JHQo-h|(5 z_>D3eebD_)f&d6Q#WHpAeh@OfXxpf7Ob6x%;gtLNq5dYBK*?wye0~D+5C%b}gcfZz z-B+N3B_vA977ySf;T0m?j-fg=<~QE`&w1`|2mkvX18AwNn9Kzj(5A7sskF^f;`I3% z<>xTRTY!9RLCMHNeEydG6ZXpg5^cPnWW0vc0zd*rbFIW$g6;u0y?nd~oN<&4g3l*J z?|(}xTA-m>L9=_i`V1;i151NdE9VTrsflsR=Jev|Q8I>;cH;em{Le>3eoz4crxD__ zOaZVR8^?{wUaiFG^P3cN+ePShN<5yQVNRpx|9c_^UPW}o0NZZ5O>=z#4(Omkv(q+8 z?PEA%j+=nzB{rd?*P(trFw(!CNkUW%fXa?h%p#u~9q70DFuk$TwcC|AgdoJc@RY~8 z?#E)$%c*pJ#>T<=fQXXwmvDlrH`Vf&OoER&CH-!aQ6zC;&>Ia^Xo-pBkTnC)XbqiuXFh_1=2H(-)ZeW5=|r6l z8l(4tBm~6YrY3A9sZbT#Q3K}%)DJQ^Q_%b)w%}(t4aEn9ZUhYYu~GF#JWeH>$;ka* ziV!|P`AOw4QGXND_~~>spAL;rU?7XE?swPWI1U)5qS&SZy47HAs+_6f-ucHW+~4T8 zq2MqG8@MV|O$>qOl>6mam$edyVEdtd3SHS#Xn6f~L%tPlsD2}&^={`R_6wZV)(*_i zQ=Xdvdm4s(K%-cN4>dmsLx57WtEM>U8+H9o&cOBPQ_KypCj;bbBfgb6b!fT~TH|C@ z@74|900U}`*s@Tm8*%A_Zf;I&N5J#CZcHI?hUx=?4zAOxGh3D4jalmrz^TSqkJwH` zA4NE=v?2WdK?C;hZKl|~ZTh}AjZxld&^Q1G`HjJzO!#0N-!gEErn-gcH6V6L+zYYYRfmOe7i~)2&dK?Tm25x)jTDs?lKQ zA0p4hMnlr&#CPhiGELq_&aW822j!=n?S%TlT_e6_9Zh#gb@~B{`2MpK8xt({8Ca*) zJjBNl)sJ{I-!fn@b&8{Rm?2t6rcf7C87HU==Ovpu46k0P@RrUXuyY_AEa3lN)hhU%6l$T`xu`>f3~wJ zsK0JRu@roEekAq}VlA1m%}PE**CYA?$`7?SKN5Y4Mfni=8!zMB_IUIk%D%1Lv$XZ# zz&=_@5=XNcsK2#pQ7pt%qmRFF?(N0@`b9&o0G5TV6nEW+;thdHK7$|LLVJyq#18}N&tkw@cK>48!;r9#T$r@@BQ+1{i zr!PNGutGB1o~WPUt5g?JB8~?76aec*Fo4DXGZZ+ZsdbosoPCe8}r6G-{km!kJPBs%l6u7+62mJU5!R zBbpZ^y1jj8Q2((}=7s1%KwDRY>rmA^(=${C`no#CZ8)1DM)QIJ-y)VqAF8i=Gv`9J z#o0L3(KmEp((mLB_0G}s3R=GC=&2tj{ zga(7p$MGQ96&FPe><3SIg`RACGn5|#asyh2{4en7NA7Rk#Hrqsh(4-EZlF=gL!IXa z1pmj0-hMz5?_yh{z9Z2h*Q0*@IX?JD=zhBdPE`ym&zm72e9gDG{`vXo2k_Scf%AwY n_V;!G_^DPk#0UJJ>Gn8Ae3xww@ZYZkz!U?Z`mq6h=DGg@nyX@$ literal 0 HcmV?d00001 diff --git a/assets/sounds/ping.ogg b/assets/sounds/ping.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6620ded87486177f99e69bf6ee6509e0827a7ca3 GIT binary patch literal 12344 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 o7Oh1&4)~jMhqNh>Mv^$m(&!YqNIujGg5Zx&n Remote.saveSetting('DesktopNotifications', value ? 1 : 0), enableSoundNotification: value => Remote.saveSetting('SoundNotification', value ? 1 : 0), + notificationSound: value => { + Remote.saveSetting('NotificationSound', value); + rl.settings.set('NotificationSound', value); + }, replySameFolder: value => Remote.saveSetting('ReplySameFolder', value ? 1 : 0), diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php index c73a6404c..c0b8e42a2 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions.php @@ -1060,6 +1060,7 @@ class Actions 'RemoveColors' => (bool) $oConfig->Get('defaults', 'remove_colors', false), 'MPP' => (int) $oConfig->Get('webmail', 'messages_per_page', 25), 'SoundNotification' => false, + 'NotificationSound' => 'new-mail', 'DesktopNotifications' => false, 'Layout' => (int) $oConfig->Get('defaults', 'view_layout', Enumerations\Layout::SIDE_PREVIEW), 'EditorDefaultType' => (string) $oConfig->Get('defaults', 'view_editor_type', ''), @@ -1165,6 +1166,7 @@ class Actions $aResult['ContactsAutosave'] = (bool)$oSettings->GetConf('ContactsAutosave', $aResult['ContactsAutosave']); $aResult['MPP'] = (int)$oSettings->GetConf('MPP', $aResult['MPP']); $aResult['SoundNotification'] = (bool)$oSettings->GetConf('SoundNotification', $aResult['SoundNotification']); + $aResult['NotificationSound'] = (string)$oSettings->GetConf('NotificationSound', $aResult['NotificationSound']); $aResult['DesktopNotifications'] = (bool)$oSettings->GetConf('DesktopNotifications', $aResult['DesktopNotifications']); $aResult['UseCheckboxesInList'] = (bool)$oSettings->GetConf('UseCheckboxesInList', $aResult['UseCheckboxesInList']); $aResult['AllowDraftAutosave'] = (bool)$oSettings->GetConf('AllowDraftAutosave', $aResult['AllowDraftAutosave']); @@ -1186,6 +1188,10 @@ class Actions $aResult['ReplySameFolder'] = (bool)$oSettingsLocal->GetConf('ReplySameFolder', $aResult['ReplySameFolder']); } } + $aResult['NewMailSounds'] = []; + foreach (\glob(APP_VERSION_ROOT_PATH.'static/sounds/*.mp3') as $file) { + $aResult['NewMailSounds'][] = \basename($file, '.mp3'); + } } else { if ($oConfig->Get('login', 'allow_languages_on_login', true) diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/User.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/User.php index dfcd1bd5c..05f4e98b5 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/User.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/User.php @@ -347,6 +347,7 @@ trait User $this->setSettingsFromParams($oSettings, 'ContactsAutosave', 'bool'); $this->setSettingsFromParams($oSettings, 'DesktopNotifications', 'bool'); $this->setSettingsFromParams($oSettings, 'SoundNotification', 'bool'); + $this->setSettingsFromParams($oSettings, 'NotificationSound', 'string'); $this->setSettingsFromParams($oSettings, 'UseCheckboxesInList', 'bool'); $this->setSettingsFromParams($oSettings, 'AllowDraftAutosave', 'bool'); $this->setSettingsFromParams($oSettings, 'AutoLogout', 'int'); diff --git a/snappymail/v/0.0.0/app/templates/Views/User/SettingsGeneral.html b/snappymail/v/0.0.0/app/templates/Views/User/SettingsGeneral.html index c3aa316dc..02f169b0c 100644 --- a/snappymail/v/0.0.0/app/templates/Views/User/SettingsGeneral.html +++ b/snappymail/v/0.0.0/app/templates/Views/User/SettingsGeneral.html @@ -132,6 +132,8 @@ } }">   + +   ▶️