From c4a0b3c6cb4340cb507f16a008ec1fedc059c0a6 Mon Sep 17 00:00:00 2001 From: Vincent Lucas Date: Mon, 10 Dec 2012 17:57:12 +0000 Subject: [PATCH] Changes sequence of audio configuration modification events in order to aggregate pop-up notification events. --- lib/installer-exclude/libjitsi.jar | Bin 1309491 -> 1309487 bytes .../AbstractDeviceConfigurationListener.java | 11 ++- .../AudioDeviceConfigurationListener.java | 78 ++++++++++++++---- .../VideoDeviceConfigurationListener.java | 8 +- 4 files changed, 74 insertions(+), 23 deletions(-) diff --git a/lib/installer-exclude/libjitsi.jar b/lib/installer-exclude/libjitsi.jar index 32d87d12c5c9c6eacbddc1a8dc125df2f7a69433..987766e070694e106d9c7ae6f701a4bbda55b3e7 100644 GIT binary patch delta 31344 zcmZua2RxPE`|iE&;O_UeLUuzWO_efQB1NS=(4NxXw1-NHoTm6TXed%{8lpj|L`#Fx z)S$G`(*JqSIq3HLe}A8TPS1Xx^PJ~BQ)yLx$E*D0{(S_x`Z_ui9UZ6Gh%NHwf|l^3 zW2C?leq6J}Ki=DMKcX34bNsU_uRZ=bm)Dsijy}Qbj{jc6^Tt1W@cl46mLI_VOsn7z z7IKKRUXnsSZkS51i!kXM^&kxJV73V`;DKR346rvkz{8C~W3?`ByfQ1oBxx5cr(#HS zT+>d-Ifap{~ot&^TMQ4V1W7|cdzz`=N0|M#kTcg1GJVvy@ zKc|oAh$)gryqDlc?6^c5-0)btm!|-eJY@knnI3!{okCqyDH0e)2d!14sn$;+0+(*k zBT-ntd96Uf*?VWrm)|BpZlQ|`Pbx7v+H;ywrS*?)L3qNpJ;OetkV|T_Xs2j4I%+$% zDlK7qG6`k>-BLmu7^5fZ>C++|o%=H6 z-j`>%^^z%4o?}F5-LG5}VP_>b+Tz%{-4KXzqsN_i0mWFMP&2+>w5muSV;UDdB7XgN zyjFyzdp?o8T&~d3X=RCc)1($@$-!+=cwwZqS)bRAv~pxT327B7 zc!P8?hds+PC$QdzyksW~tLe^*C$L?;czv;Fn)lwkUZmBoFRz$jS%2Pv9$f4+XJdG+ zaiBFHV|fQjYx@pfk|B0T=TvCsb#Uk>KRWo61@gGe2+^%8@PA9LFcMAJao#^L5Dov76Qw=&MOdN*q%b(QPT1);_*n!znE7^I&FCj6L$sD#a)C_4~Q&KD~2ya z)2}j8&B~{|B4W{~=e#&QY;Wy*UJ!u=f8b?_amTFPeBEX%6berx6uc1PjwKXaWn`N1 zRlNUjcWU%`{ClJy?&M#-ei)L3RUkFPZ=o^Pd7n=26}FQ8?)}m0o;4X?^qM z4-=XJv9;yg&u5`C9gSoA@-f^Dx!-5h z8gzqyh4f`$5q}u&1(fnoZH5Y_N)@QIoG(QmAM**tug83vaYvr<&ycWBddv64wMC;T z=c`FJUH``aDo}HM|5uIGu|S1J0&5h1NsVi_ruI93f&}|CkuO+G`u~+k;Dk$v#z-MJ zEWxHL4nI-b$aHj8n{z(dp}vn9bBzLeM#eFtuC@Yq+z7W7^uXeBYy|;CT;t|~&qT=2 zicN#6V8|^Kpx_G%3*>)NAVbGW7^P-#Yk>&~r811?a5ERLWF1X zxDSXODqSa#YId&`Fr-qXt`lSsfzvk%dwlRsdg9&OKRzK#yQe z5(VpsD^i2NU}vF@&T$EGrR12vi`1HCCj}bPdX^zrOnNOaTQHbNJ$*^gUW%nw<_qEo zY)hd)YJg#TUkNS~*n~HN52Q8Zz2GAWsduH|DUs(;BN!~hA$`31+Ra1VbaYOK5<4<= zb+fu*S8TKC_qN(t4SE!N|Pi##Y)7=&&{ z3R@wLP7}01cPR-@=_1{EBol_M)KwDL)YZEGk$|Zpbn{7GKHIJP%L9j{v_!W_8{Cqp zgezQdYm=AI3wJOVi|!cIxS#MgPAro2&4voem$TDQp({za`N6^qL}90KLVu!W<2+#` zc8_p{W(bAGb(1GNR6LKL-a7OMBk7GQ--^S^G>?`EZL!ViD}|Ry8s0R<#IFk&f{_lj1iTau4!e=CSNuKdF{XxARvi>b@tpQ&b5uNf+!s|r9 z<8MNkLvYd0trlJ?XOGuVO ztj(N6^!u@+waAD>_~O|cIu0-?dn!fF`}NwPSOsgM(d!^;Prm_OMAam&t{$R+q_w5H z=ngStVsFtcVo0ZcB01sk4iFWP_?r(AH79glBSc$Ct2j_3BsJsZB++L=_i(Cc1d-x0 zQ`Cg$2%IBoOkm*)MgD5+SnjB1JLj9iEUFFiH7@<3tBNFLiI)_2#u zjV0|gTu~#Tmp$KL_!9((39Y zzD{B$?Ia#dCdA8cotbw=s-xp#_ScBX>LZqDj<}2OkZQcVk9Y}|kls(+p5#Kuf#M{R zwr5wZEIJ1txC-l#I#0!QDY~BJ&Lz@%gKBWJbof3B=J+12m(4APy+FWuaXaML zl9g+=ToH>2%dT8;SJHZXP3%Qjk~{y|m<_g#k&tlu>xopFaW}-Uy~345w*qk-NtvgG zVn&IR;8`=j@)p3dT7*KqU^Jd@#ae0xJQKGgEbCv2?-*g`z@Oq%gxUCaUF%kDo#;b+ ziHOX<`C~uHe?hHJmXn;YYRy6gYr~2)-}NPiq`0Wnk~XB(%UJS@M7^iE#GT~V+NKgi z;@RHj5-Tz(w2Er(b^4hl-O!i?Ijn9-`l54e?I^xzKF0+jjE&MH?d#U zMbe1Kcl3~~C-$HAl)zGr3rOD{5<@~a-b+Hi2j6@pWUCv2bO%zs z9||@SwMPD(SSwBB0ErO0kr+EvLQ;FjC<(0z=Yk~mWCXmKDoH1r6Q)Zlh~_P!k`Pko zeY3uO_zd0LO@IpWMD5VZF07emERxWfbpNFiOELiUZF75$fUx8U z$gC-9fkdiFTPc}ESembqoFRn!iW|@D33FSql3TRXYGm%t4YW-XKa%6iVk919ScWWk z`LYZqV?%f(^~&8@Ia2PBe8M9DX_UX-0d_2UCVMBV)2wPtP z`2=}XOT?O_(fYkfI?awtaN~++7XkM%b=7nV)>l&}#_EqJ!+U<<8PAEZR$XPvO-9=x z7jKr)h$iaKBx}`0v-Lk?r8DN})55-elXTe;kot^|vg3uVG{@)ZU%@7#`3v-a;=wrm z-TmJwK=Og#FbUQiU#NeRxDvitA2#(ManYuw`aLm6YU;hP4|+N}jTkcGosS5`$f++Y z(Xe6qLNcDr*6E)lj?Gy;&-*iV^b2)Hg&P{w%9WKCK^0I@c;w-<_<$rdix~xCddXAoH&%zCeV9qpO$n z8O@<={W3BM+rM^J?Om9Jb3vr}jC^jcmFOSFpIWX5h(~C104tW!op!Q$kXfnEBgOE-g3nGrVKc_rfD5>@ z=68+0AyL_L(<{3S*bE(FMlk-m(mQ0i+LV=AktBjxQys0kN&gLal%+I+BxPe8>1r~y z3h1T^DTN~CXT+r#aTo!w1hp6pACHf1rSC{dDt4Ee5#}GB(q&}gwREJEESBnbg=}#K zS51{RB@~uxq;m-uS|_z9DdqT^=P>|E?{N`ol@Hr3S?i=tHOvMnozJd`ln%4SF|O4Q zb{z;YE;1ss4IpGS7AK^ONMv`Nl{P0{=j2Ms&^dcm8ccf1@}~4DNiN=9=>}X`(DELz zb@e1dszyOCr9zZdBqf_oH;bg7NbSjfES*jGT}q|<$q;(-OgfMl{(EuNYXnI&PQdM{ zSZM-ZN-vXSZTebTjXk$2lkOw_=Dd|2z%3L~F71rB1&@?V4ft|yzur!~q0L@Mv$;sc z@L@Ud1>&6<1m!^ZQF@#hp!p(QN7VLgF{kVb48eP*h-VCi7^uxOYpSI8@K(HLv_STY zcsfd7)|4n;Ba_jL4Oh#S6PUn2CLp6*&q8*QgfPFEYzD!4w2)1e<88U$lOwL20(CMl1KwKd*hSIPFiSso7k zwtAa9D9Fb^p<&^r{n&exAI)@6p*uAJ6aD zF! zQe!=_+SVnkyr*H<^K8HGzYHwHa@HoEUl1;GpZ~&m^wEp0N@})=FH}8uscC5$mb>=p z;{F@lLr=P&`P6L9)|-8wrB~fQxMx$})CG2hm$PhSJ>_o$21gHkG`Lfz_y^YpbPxq9 zP91voUrqj+(4z_VrgBZs=dB}4gOYAoUw%G)%gx5Fmr`@~v@8tGJs5h)=)Vi?Zx_Ur zCRwZz7KShAe!At8Gie9fKQWrI&TIaf$7Z&l?jKyUV5)8R$#XR4hA5i63YgJ6Vf@{I zk0NE<`0Xwq9$k5s{H({huJ_+$@AbYsv+Pss!J#&fVk%2B)*sVc9`RUrqO$g)bNH`? zi`x~Bv+8oI)aT&h#oJ_;c2DYj$Lvw^lws}L#UHxnA7DPM^q@3cBeCra4@Yi_nx zBcs;UCf!pfo2Fhb{V=%d@F<_ygehxRpLPY6aW953d-Fb^&GcCl2RsY&o`3CH@~mF3 zQc{OCAMtR=-lh(nqKD=9w>=P^v#@BZPsFi@0j54%?P6l{Pma4i{EWjMyV)b`Y-T&1 zSoSzz`jB>(7sefxzxBE5eoC3+)2_SbjD>8<;C(H1LUIAKx0_V&kiPcYbS9C7ql z@AVJIo^StP@0X!Vb4 zHYVg};@;wkb%-$KvKU*pT&$W2g{_xR_t<4g*BrJc}Q+MfSZpQfJDfBZ;RC`b?d2EB@NpR|anu+IwGI92$LDzxV8OW-dNAHjF4a z>OY2Yn3XnW{kD`wb0)}JhllKm*>y7})YajD#hY)IrkCE`2^-DqRPP(y@z0eRrvA|- z`qeU*#RpdR>bZH{v4}Z-tJmd49F<(xU%xGN*plYx!L$h54qjts@7NstaL(w%tIj^? z(*06#pTb7Ny6>Fg(~g;{uQ~H@$@-Q-(kAKa#J9(U+;QvG#xc0h+s1Ldu5at(7~bfB z!=ASXt8X+>o%kH^==lB<-XGrckDc?_pLo|j>P8EZe}^fZHrVFfm~XBrj~#H#q)3zh zdB~<)ny)>+R8Q)YF~+0c1l#lWThl%BTST7>39v_-{N@}~@BDt%%scP;^CRmf-g#R( z`_PSfdDHwgKN9CJJoB{sgk~eVq-P}9InJM77Jg{A!}7-q_eME<`C9S*{%xDS{S&G_ zZr2H4(RIzHJ9o!ztGrk9Nh1Z>DGP2FZ@=E}{qM0K1Nv${&Aj$I=KP!NyS`3W zYgS#bR=QUQjTS%McVKp-!%Hr@2QetK^Hga zx(qA5sT(+Hc`KWaW0tpSx?qDa^5S&|_vEGPM%0{CEm{iSZv|MYzq(H9vZ49P{j;N%IBmV!XF!0eXv%XVn~+nwdsn&yy9STy zG19?5qOtDTB)z1ZT{9b%+wHM*^$ro|rI@2TdDjlC^zEQiam=gPvqFdL;d2T{nSI)C z6h5?QO{euMHdLPZu>6I|?h*XN(%{0C51jc!yh>}FiwiwwfBUrP=OV9+vCsA-9d(+2 z_kO3P`Cg@+mTir{wUCJu`v+Z0f8Th2$(`(hp=m3dD@B&e(6ivM;gf8Sc#oWZw&(O6 z1_S)pSq$*J(xp7dr`&pG^vl|k{ULb)XV-n0%UHAz|8M*1(d9OV#u7o&{`@fkdV&Y3 zG0g*=e4jP#IscCRx{%AK&#sMsxa#=8KDQ&oa)v0Lgxzj5zw-N>kbMsuOCGK5Kj-e( z*df!N`c|Fkxvs+qukJgydmbI9p8xye2iXwGiAF1@#aPt_9(M6KsBkjrHPh{tGHO@| z8{;s?H~K_T{EZ>u!v+*gc$Qt`vMPID+=N}FGcA2y7b${sCLPVV{M&E1o#ysa2b(`W z%g=8fyz+G3x@zfqWvyKF)gRB*yXbh`wumR+85T_08n*-}Ae4{T?~UPyA2^`w7K53PnS5`pKg93OL%=MZC)Kf&0R7b?d~5q z>|!^sa&y=2JDY8CY@~d!Hld044YC1;!r4{Ig-@6twPs#smnUTZ0JsCTzy7YIi`=9(n&h+h(D7M_cZO^VSE=Yg0F_%uU&y_v~}$X08Lu&WUT)0dr-x z{yu*DA9=O*9CIxEYk#X%Ndb?X*S1-@u8r&7qNugWwZ$T{_f`WxWSQUht_=t^dc1l{ ztmnFl>?!xxws+h#w_JbZ#dc|NN1K{j8r6>QDx58Lv$+xHZ0J|IuiH$s_7clWxs&Jh z-%_jF#Lv|`RlWD(o^gjq>esgW{o&$7+3bny+`=E#mf8-TD_;G0OKG_GQPYd>UaRlU zi#e7MG<0!W`TIATFq4U!Ul$Ar37gll(F}L}2XnVy3rR5$T(I9`x%Z0a^A6GDI<2}i z=kdy0JCrjHg_?BI$l}I!EE`>uacM`BK3t=fh?^PH_F_| zg^4%OvKX=w4M(!AWFKyS%X0f-*m?RQjQuQYf~qF7hMHkA$m3y z&_kzy18Wjw*<@MgvtLFQznTY$GMN%9E=!lu`$uLOGAm-1+gaHy(o$v0ev&ISiY(d7 z)_7I>?UU>dSqxwQB0El6OTWoZ5fe_Umd@(}CfMq7r|+;)ID?fS)eJb?np-35OYFGv zLpGQ2b^Rp^B3pFvO8Ftb>uDrGH5DAOhPkwAh8njQ)pz{P6$79t_kK>mQV`WVam z7-GA2ILe2SrSG>k^5+EmsJ+~n1kNpDT5$xN6x>u2siFPkGL3x~c_KNxcPmfsBm<>g zQU88&H{?DW)Y0aA^xV1d?bN+^^;R~kiUEahNTabdy@|H9W0+h7&3;- zcRFJG2CtPD6Kwkpaw*>7;&ubvPzfwP(qe0G3y>5c0Bbmb@JA&7w$erTt$wA~{9jSLLlp zFQi_RcOsFixFs*f%CTk9&Mm~~*IhX_42uAW9J$}45Z`;?FDGjIJ$VP>THymZJr5B- zmOm!@wXfdG1Mn7HVwX>H;+p$6`54kKABU}bxDEop8@AquN-U7`V>n4F35R1!-Y+@b zW{<6v(-XvOzQUMT`dFecAu6k+im@b2BNYl5Se!x2Rf@+%Q=p-ujCkp7tVqVZC}ftx z9r>?f<B-0WvotX9p9xS_nZf}TSSbuOC9M?? zh~U$06-~+J<}(k)V64BhXPr&)-4!Fr{^OtCiab2T(TxDbK)k2*OQ=d+20gb$$?a*i zLxJm|(-sd>M34=2$tXoN*)6_jq_c>p*3r3O%bl{|C>e3o`snF;7+S-F6>5Cu$+;GQ zFNiGa;5`02a+|9N(m2dk=o9BU&Q;7Kt5sdQgYvz?1B!ypiq#>qoveN_R9vq5NlK^;DUHX6O62icX|kntfC(Cy8|Avm%3> zRZY}WE+vkXNtL}w%UPjpM9c-@ez=$8Y?LyBOtw?9#KKE0lxwiKL|-Q*&I*m6tC9>D zO<+%@BN<*W9?9jKLT@E09-7X+K+nk~RUySsDMpL@l%y)G^;7O70WF(n^W+lj7P`r} zD=-!a=&Us%1C)2j(My{w`#$TTcRC5Vvj>c}LdSNq3eBz|%4lM3>*31xB*QGnC@+)E zzt>Zhn+SGZh%%Clli;_oMVgtRRHC>zR*JgJRg(VjnyaiNSLZJI)?71Yz0w$u7<}!R6KsNxM<|K@vk}S=BGYlRasja6-Ewr4=bA$^*)kgl^j*PRLf)kU#}rQ&y5osw?l0pRpA-tn<)JzQ7Uz zFRO_vP@W`)dfip}5mR>DSK1SGk`4Z2FTmWQEsr}(hfiV>+X^*)q`ZdBdizKzBYJC| zD1AsL7OEcgMxdj=9-5i0Y=%M(!Itaq!z_c=9){Dslo!ebBD!Q-l|NYLRv)vRU^{+qN{pNDhW=Uehw-VB$ca3ewfHr^tgGbQblgqYvR=^ zdWw+As&)_|!wpsR;!<;C)eHjLX`;GE<_4!*q(#I+Zk^|&LR*+!6m(SSqqQgCT1=*? zDxOdWo2wQPf1g;WniH6wmFgvdRobZ3q@~*gw3FkT7lFD*Al&Em$k75wWsye{m9b`S zGu2rV>4B3=GsnXGL5Csp2SSt1icr`}R-{?%pqfqw$NRP_a-mG4?x6A_>PNV!yh$su zql#w5{nN#LzJV)i1of`SG?FeVI_0o-Q_jL?qyw)-{0H|U$sxlRw@Q!?^YDN^SsZjZl&j-$r zr+F~Bm48){!C~@Mr6jhs5UAG?*G~!6Kgj65eXY@v-cXlci&6X`I7SV+$*Rx?p_#+S+D0?VUcCepl0G-fXXXDK8CyE3>9>8avzpw4 zLyg<1TjGxe916k=tDTx$7TC~E-IX|X-9_DpWM`vp>h5Gk6xdyDiCf%JqAO0!3q90y zxpcmlx)UM$?xh}zvp#zI2s1RJkGe4?-P}j*OdcUj9gM!NfkGe^Aj_d@6U{4M^$8;P z@es9b>|IvxFAunsz0*%kF3%w#=zyge3{^iRqq=IOdO1i)R2Xi`_Ip?YwJHD9Av5Gy)GsLRM>q|OVc`CSI@1_}^wl-gPYLSGX5Iz*}Ai_h^T z#;8w_IFH=US;`G5;VyM8DHfu=>bK+`O;NYP1+`$`E0EU;wT@IT$x-U5vho>5DILALdRR6&8KRi-* zAhtIvR@;(R-x75$X&FCN)4RmiOVz8%ENI{xwUihMpQ5fz z0s>bY(Xwi_2<@sMZ#hs>h58#uh2lS`|KM_ab>wdWccs}F=f5?fU-TC4Zj^mg?;^&m z{-h?CCQ;!R^-rwj)>kzwU%3GAs?`2Ge3E{2$EJ3_K$HMkKULdkKr?)bIb{dGtG{69 z!EQ(N`=`2L!HtT4s6S&lg+JB(Np1vAzhe{uasou?(?Yd1$H1Ve6>tS2v{oI1O*$oJ z;PnJ28`lhX9%F)q4CgVh^5@LT6*8|#4;_~7>X#P%{tkfZ&n=lj)(ShKvdy$+sz(v9KE?!%C=q-BGq7V~280;H^PBBZjWNwwW+6 zi{NZKX3Dr=W8RoDWCDb4HD=o5?iX7y&xtMNmJE(gvi^9F>RS<#Lr9@rWKj?Rk|_Gn8DVasU~ENdoW34Kws^}940=^^4mZvx0U?L4Nn(29hQ}es2eWQE#0x5t@dxsj#venZCmH-q7mYm0^v95tlZ+ph z^YjY@pz$fj693Kp6w@2yBTg}6aij7SGXXb-rBkEMr8AQ-q?rb+;}k|~D5O?HeF{De zk>Jds z;yiS?`#GjL)-mNAGYB^>o@4N{VFdW@7&7iWwf^RLW)zmuGLxDRnMt``XVOmZeF11V zqmwQ$BXC2MMH}Pl8W*!DjZHR1Evsuh$)?&nU!-QDy2jVKM*m9`b?g!|6x*YB8MJee zn0lEe#^cLWh3ge+Ve}QqR?e`uS18Imhw3_zL(LH6GQpT;VlF^9fmd>AAX{9ef!uVJ zS&C8eYs_NY*l>+^~t>2*MHD!gvco;i2}@{@y@ z+@y_&y2h`%Mo2z071I>gHGFO{AsBM@7R{t)1$8M^K;;MvA!3~5F@?+kY?!7H!ooq6 zw`mZj-ljcx^ENXX&-n3UO*Hd1V~7IoFg-Bet~-?K_Z=F=QFm$Z&fbO5$vNHP9&`)W zSbYx$H`l1RM@L@Zed_(pqma_2_nEdBZ&U=i&k-&!qCt66L`@(5fc9wK0~%$ghYWsl zj}|?owiG{v5OC~$A5l4{AJJY{J*Fo3`hmje$57Qc!qy)k_g_6`I^n-r7ej(`;D};M z{ka$l6$hDGLOT$1RFqH-`zO?xO;6|;{ZI!P@RVA0@+qY;DW#1ib&b-xMvrF{l~mV| zJ*O37#&hb+qvw!h7ml2zBRdrKv+dP`An-creZ-ciW$cND_Br}n_d!VE>er(d0G z@2S15%PC<@U8B03`V?G28`mpn(m)>sV0YJjpzM_&D9!MX6msz+HKA!G<=R+DQC}-* zL<2w3KwhnDwEj$EjLl5_OwBC++@Kl0uU}~IANoR*LiLpjTKJVhO21NnJ-<;~w|}ED zYQHg4NKRGJ#)B$qeYa{D)m%TOR8w0`YA9+&4TZd`p(^@+r|g;E>40nbgR<}X!OX;R zls_rg{GSx{>L(o|gMYz*;&kQwq7awgw2}0inU7I6wY0IjmJ-YUP&te08gKrPF}-a# ziwEDf>nzdj&SQy!<8=*7K1(V?B%hsy6$k`uC~nLXu(NTaTtHF5x-1!bk8~+bUm-gO z(_9u(Ic-H0a#%!(ZN(I_Q_PZyfRTg>+#q2|75XA!$@hP}9!o}4o*p|FOYWx6k_vD{ zpDMMGvSii}A*Ct=vO1e(R9A(J+A~s4y|^u>C~pOg#(4#$aa2+{2b2`mNX3$`%~BP$ z@Rf=Z2dJs3Ich4o3qu2ETMej#)dnodxp9URa?Ox>+Qx{Y z_8L(+M#dDf(wIVi7*no56Kebe6H3#w5$Sf6Ue{=5O1a`pY2;Zm>epg38q6{?8pGk{ z6p~|3U2fl)8h@ZMMX4=Vl8zfJsLfw3DEmZ9N?c?~b@^IRnp0LZP!86#bN5+On^iU} z8D?QNRL-Y5NT4k>Bj1)vcC(|#AGD+PFimKutZG7aRn$QOn^J+dn^HNR%_vuLGb+ch zIn}nyYi#vE&2)v>i!E(msvoNKt}LH2K3j zQFp#~qU@oasi{vpQ^^BdDJ0vKn%bcYB~I=_9klF9O^xVU=S5cl(fR6oPHN6+ms34x))MZ&2NE8$@mGHJCz<52g^KA+&)fy4#1aWTKltge6P5 zRzvGXPhG=s7#oHyiycM>gm^fuWJ`zBUi~ti+(fIH;5&xlh__soIxKFU;O6^#|?epc7&T2QBgD}&l;J;$ShHd zJB-YV6Z%}5C-MNH2C)6o#cH@Y0*?Fy!ExJRX<(@u+C5J%|YYLzvPqv;gz zqICj+!i_2`3|-7YJMBlj>8vB#70luj1N4-G<|Yzo^Qo*64xHyyfZk8%ply-cY}Np~ z7`w{c{RV6@t_L?eX_=s(K}bhs$Rx4TSbXybDW`#umS+iO*;%-HW-$kx;eurmbZ=}t zNOA&69$J$AoG0`-z>Glva2B|WRDN z=#$=gYF0;QLGypR#_?A@sS-7vz>=4A88bl2W+h6P1zAy`l$#)BC^gF>6i_SG^(ZxW zkBr4yIu>~su7SPBSFnq!oiKq0gg)K?L_Gvin7--bAjwa-$D(rjH)}f^*UMKmSk-4H zs9xttQ0r&X5GHfbmu(32{Y+Z#tY-oAT6+QwoW;&tLpO(`fIsoCBy1{U~Y< z+Y~eG;Gk>#|6=$!hbnBdb!%lMgft4qq4t>lh^*&Qg)`>@zw6+?_;cs77C6MaGUlJ{ z?g&?f#=-H0RvIS_ucv2_f0j&yo{XdY(#6b9JPz{yD;(I4(qihlmM~e(XAM#OTDcu& z!cLUT10(D<)Z?3BC|AAtZK6^Cg{%$oDTim2TxDtI;+7ZzVJw8oqCHG!U{Y(85-m4H zALrAYtDO(B{kL;ctWi(}+}Y^2fL4de3jnol=U=GDJLUSw;UW|1=4AYoF0P@Ej2QwHd_go__bASJtMxjhB>FJyhOLwgs3zRwp3D_jU9J-Fp2Kpn1f z&YO}efvwh3+lMUzR0u^yEn=Opm~0Lje~mBz)EpTshRVi``<9CVReb9&S+)goW3=fT z7088@cQ$qjYoqkLT6vxV$!K(oj*=yo<$N8@JP(m2%jMm4~-p!r2rdJ-M z)HulD{#tIX#iSk4(|d9=bQm1KowZmV^E4MKVH4;uZThSSoM=pMfEF*MIlg5nXsvow zk7ALfKp{eZmQwo_VSvB;z8)_^lfzgO+yfg94^u=z;%x($25Fh*fa1g0ao8Rso_F|H zIJDEi-MxWYL{8s0p?(eeFnz;qNcgovTJ+IBIr?sB*CEyflcp`y%{>kJh45ZiTmR}> zjcWPemN+bk90-4Wugtv^qqK!tpT zCvwzN$WZBU8lYv%Su?>a`2BCs9>`r#SDC^NYsA9x$GUzx4xLdBRu0v2rjLR$j9Ni+ zEOG_N2~{=7QDRSVlF3&BuAgB8PK=Tb6=t}Xup-{eEDL`qI{Gj~yJ;!vXpFg9q0*J~ zyA8)JX1q7ZauwSf3!kzIdf43}b~W1*-B<FKCNNN0h8NW2#>v|0)6sObV23a6>xvkQz1c?aA^#?n86Wj z?%qJ4iao%}aO6G~_Q)6u33S}(-~Rs4o6>Jw$2P`dj;;eSX9E-{d%nUM1+8cGS~iSn z@~gZW?z6&g&Z)PTo7$-dHSjgTs^6PGpSKAz;{l|ab||VxHqgSk=X%x_2czK*td34! zE#WXxiJ+?=u6qTeW?=!H(Sr!;C%z2}srVM^!bmONlZ18<8omMMvRq-BxdHraHW!N+ zg!asZP;&i;aX&d+{CtcXflAI%@!MvF&wBs~cn5y(fp)%BM_}3>=*NCm1*4BsfCJfK zE6q&q!tGzh5eE_lZ2~m0#`#Q!093DLkR8}9G^8}+n9|8S8n(_hj3Cuhsi)6Fzz9iw1`^t^yd zH?v*Qnkd#B_ptFqn-o6?V?S_FyN8FN>?qp9R@{ez%_pp(`3e)XXC3Vw?i(UtUMf)k zSh!*NVG9NS=D?%tz{g%Hj8M>4ii2ZVGr@o|%EH|kR@8r|NLLhY1@8TSQHYT9JB1-q zzJbJW+D7I0M+4QPw+(VI72KYUrUW-R0;7)&1Y$J(BN)#~z=4j>Y+pJMhT&RASoQoB z#Qn>6e*T9`g)Cwrn}~hcF%XZz@GH%B!sk3nPuZctsIJ=pbze$QDjA>-*V&uFp)3^y zRk@Az!0F9JgXaprkc4${_;+l(#fDzuu3lb-F*`!bzD*nh*+8{GAa=JM77K3$nxlAE zC5xgEYlpvC!M~?mtAfwVeV7Bx)sk_d#XmeLPD)eMeLGFl;oCv3tJD9|SfTRmG{QeQ z8aG!hnnoz8kggD~8dL|I2ipfiy$R6L-LGc@PfAav!C#~Cuc^vXWVMrRhx7Dg*{>Ki zxSn`jB>+F3wP0cvGIkMbEQFz|j$qyUBUFQ~~ zX?3W@yMSw61Iivfu0y@!Q0#zuE^7prz(uHF3jNeHTm;wA>7`|4+adK#_-eQ*?)&Sz zL7vs{dXy!SjA0qvZ6}AO#mt1sW)Ac3?to%UJ-rMq+(W;yyZ3;od$3W!r6hL9BMyGO z&-*>F^5s6S>pL`d?+W8Q5yp83Ez`z_XfxSj)6Sm;c~x`Jmc48f2kqhMxuwgX9ebc3 zZa_+D?_6}4iy6@3xk^JM-%EpSz87TKFCwVXd+E|8Hfx$g79>X`B!_m7zC}@cS#NAc zF~`bV&#|^d{njfDP-mE@Vib4xfIk(!9s5|@hS}>ir-VC=z_vXQJ8h|lDQQK7vJv`t zkVuJ503l|Zi4czj)&YwS;h?cw>Y*kmCxIn#Dd$j+W9m`Hs3M$p*@{xTgC?L_1+!Cs ztq|AlC-mF@V_k7?yciI+()9l&U3I9Q)EGTEq%`5?4R{1}?v=Fg0~CW&;L{#V@G4;+ zI~EJp+t|ULTMwE;P~Ej`n3lo`cEvZ3&1MBPw zNd%(q1%DC2TY|sreahiG+^xrxoambb&~^9gp~kTrKxkbap$rav@*zRP+W|{ta)?e% zoelx&!J~Q<*>bsY=v?JHNdHX8mY!O!l|88^g@+69u%JHv_V5yc-|j^{y5WHWSxu*M z`0i!ecsrauhFgBChCyOHg9(v#PkSMcBXo+e=?L(D|AIV^uy!c_2-^WKkuNyUi#Y^C zy#;I#Y3~u(R}odys+4A6q&}T&aXZU=$3NVlh2K=24EOCGM$nc0p1Ch0v%p(DNMsK! zuctTA%aJ&lE}Wf{LDU8vWPOq~h367VG%uO8#Hm|6Yo>(;B=A9!wpBZM4dhRfS!+x_ ztEO>}OduBnx%R*~!mlGYME#Dj7C4b+90R@Z8``MeX6WWIn$5)==DBViMvknG(}^Ef zGI_bE|8cf84*7|MD3=OQr-EMA-gFhCgyXR3%GKqNPZFN|50RIW(_x1;rob<9 zTXd2t>5~HLH>>MWBstG;&}5cCf2Pn{Wt|F8Z$kpzWT;|L{0Ta+zKq#As|l#R3x8T^ z^@Fi7p}%RO5~J&>RBb6IYQ0H4$_Rx&prRVyhy0sa!KQ?M?FqICj_UCfAjRLDKr2tM z1SLfkp+I$k^e}M_oN!AwyHc=U%W2Yfk$yCnl6d={jIAjmB

#x3kS7v;GnHg$tl(d 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 WF5#eMQ3R^|$y$gmC&Fo(&i?_g2P8EB delta 31723 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

!Sr ztm4C;`cm%n!%}R}pnFWf_k!n$@7{-v`vhArv+0 zJ}jcK$ty5aJ(@y0j)tZfW5oup-E*^_SwQFJ1e*u2A6oqbTk>Nmec4#87P&uwy79!g z^#c%PIhmq*Ook?D2eT%E+Ko}#@M@G41%zuYYVbx60snY5#Ro3ait%$sXWCpCRcG#B zsN)Y=7-eHr;Cy|Q5wdv1b{O0r0e;`&zwl2N!-F%t-^2Qmm6*b6Sv3WRCS}9&2pr?H z)-c$87bN697?t#`hco)eycbc<`!VpFt*PdhK*tDwz2*G|ff%iL%+%O{iCkm;C4%Ra z@RhSw4fh)pZGlZ3+|n_*yiwx@!zYAJoA&q6jkDHo{K!T@khO`>AL-v(=&`AqnLct! z$pw*Lw^T!6zbucbWSa-5Z#$}065~gjwTMZxG3v!0iqho6qwRug@Eq?|Aq>CRFDtL7 zt?CGVnF!qmoHSJb?2Gi+SIuNcNMl=%-kt%ZhoRqeuO`Ghj2915(h2!6qsCzvoe#A> zNT5*p5iO4_Q(02J#;Eus6jhK2&w$|_s1@Pr3I*Ze#A=iZjqA=5VHZYSKZa4Z=+`lb zYuM?fS^k}%k}%2zc|T>Hyi>z`5BwD#922P zr)gDfPit+EaRIBURsm?S^Gr1gzTqQWD_)G8q>^NZ{Q@;)USP_Fa=ejbiwx&)NA^ zHD?2&1X(i&y{3&H@m4EE6GB)Zm%jx4Hq@Xv)VhTAB|S?3)$MIHmmNA>!nn?2RL9b4 zloY{bB@QWGF+7Q@L1n1o4aC*JD(JXZz_pb@55MAFNbD@iiHyT`7=ml{w+3QS#Vfu& z@%@cKzeM=&IGIEI>tA2n_@361{T}+3)o`eO^nX4=FP&Ba zvxN7rnbyBwgML>&R^u(n)PvN|FPyjkJ}7C0+aErwe)dIP`h@B0px>XMf51}}V$>yr ztZX6BUV(r5Mtwr%Z(zRzXU&n#(M^8>fe129UrE@UcnkX}I4ZZk1*JBBqe{V(YPx-j zTU4+XzCw&|L}rc&o%_Gr2}(VOfBK@b;Lo%%QRhmreLqm`Qoas+?V6TeA;Ohdl>x@$ zcNIpCZ!t;Hq%yWLt9gw5uk`PK2oJt-q(RGOlkCL;@kCIh7I5&*ESw3-l5r~J`i_^A zx%!uv!;h)KH52t52%WBP+h1|$iV6vuJ!B`f8i9G+j{Y!MwWB`62v zUBSTJD**h0f*T_bGmb;Yt8i%;x7>oTbU^kWn3)Yf0C=}02iGDY8{k1Yy%IVbgY*6Z zlXvQFWPS3t*_PG6;7RT!8z$%YM_z`kJ~FlHeFS0O|H7%!xR20fU`rw}uE4H_k4{+N z&9Rl>KKk;Jw{_$hX@`{=>Bp#Ne}TaaNBK?+p46Rz zH~VpFRPu$npXlEym_zG=L4S|0%q`wufn^p2JE7&@tF9kl@aiFqI%Np3{J-6XX?X>d zV{%NGp70YmK2nz;!~ve90v9#&4PMn709U?90#l17iq|5i$NvWnj|bNvD~RY1u_{}+&dYP$C?VGD4mu{ZuXnG7rtV}My5HPl@Dg{H^# e3#lQu@oxfkGryhymJpxL_gh$+?Zk3Ww;2G%%?)t? diff --git a/src/net/java/sip/communicator/impl/neomedia/AbstractDeviceConfigurationListener.java b/src/net/java/sip/communicator/impl/neomedia/AbstractDeviceConfigurationListener.java index 4823ad8bc..2d841f435 100644 --- a/src/net/java/sip/communicator/impl/neomedia/AbstractDeviceConfigurationListener.java +++ b/src/net/java/sip/communicator/impl/neomedia/AbstractDeviceConfigurationListener.java @@ -102,18 +102,17 @@ public void managePopupMessageListenerRegistration(boolean enable) * change. * * @param title The title of the pop-up notification. - * @param device The device which has been connected, disconnected or - * selected as default device. + * @param body A body text describing the device modifications. * @param popUpEvent The event for a device which has fired this * notification: connected, disconnected or selected. */ public void showPopUpNotification( String title, - CaptureDeviceInfo device, + String body, String popUpEvent) { // Shows the pop-up notification. - if(title != null && device != null && popUpEvent != null) + if(title != null && body != null && popUpEvent != null) { NotificationService notificationService = NeomediaActivator.getNotificationService(); @@ -140,8 +139,8 @@ public void showPopUpNotification( notificationService.fireNotification( popUpEvent, title, - device.getName() - + "\r\n" + body + + "\r\n\r\n" + resources.getI18NString( "impl.media.configform" + ".AUDIO_DEVICE_CONFIG_MANAGMENT_CLICK"), diff --git a/src/net/java/sip/communicator/impl/neomedia/AudioDeviceConfigurationListener.java b/src/net/java/sip/communicator/impl/neomedia/AudioDeviceConfigurationListener.java index c8ed33f0d..735c2068d 100644 --- a/src/net/java/sip/communicator/impl/neomedia/AudioDeviceConfigurationListener.java +++ b/src/net/java/sip/communicator/impl/neomedia/AudioDeviceConfigurationListener.java @@ -27,6 +27,22 @@ public class AudioDeviceConfigurationListener extends AbstractDeviceConfigurationListener { + /** + * The last selected capture device for which we have received an event. + */ + private CaptureDeviceInfo captureDevice = null; + + /** + * The last selected playback device for which we have received an event. + */ + private CaptureDeviceInfo playbackDevice = null; + + /** + * The last selected notification device for which we have received an + * event. + */ + private CaptureDeviceInfo notificationDevice = null; + /** * Creates a listener to the click on the popup message concerning audio * device configuration changes. @@ -81,11 +97,7 @@ else if(CaptureDevices.PROP_DEVICE.equals(event.getPropertyName())) { if(event.getNewValue() != null) { - popUpEvent = NeomediaActivator.NEW_SELECTED_DEVICE; - title = resources.getI18NString( - "impl.media.configform" - + ".AUDIO_DEVICE_SELECTED_AUDIO_IN"); - device = (CaptureDeviceInfo) event.getNewValue(); + captureDevice = (CaptureDeviceInfo) event.getNewValue(); } } // If a new playback device has been selected. @@ -93,11 +105,7 @@ else if(PlaybackDevices.PROP_DEVICE.equals(event.getPropertyName())) { if(event.getNewValue() != null) { - popUpEvent = NeomediaActivator.NEW_SELECTED_DEVICE; - title = resources.getI18NString( - "impl.media.configform" - + ".AUDIO_DEVICE_SELECTED_AUDIO_OUT"); - device = (CaptureDeviceInfo) event.getNewValue(); + playbackDevice = (CaptureDeviceInfo) event.getNewValue(); } } // If a new notify device has been selected. @@ -105,15 +113,53 @@ else if(NotifyDevices.PROP_DEVICE.equals(event.getPropertyName())) { if(event.getNewValue() != null) { - popUpEvent = NeomediaActivator.NEW_SELECTED_DEVICE; - title = resources.getI18NString( - "impl.media.configform" - + ".AUDIO_DEVICE_SELECTED_AUDIO_NOTIFICATIONS"); - device = (CaptureDeviceInfo) event.getNewValue(); + notificationDevice = (CaptureDeviceInfo) event.getNewValue(); + } + } + + String body = null; + if(device != null) + { + body = device.getName(); + if(captureDevice != null + || playbackDevice != null + || notificationDevice != null) + { + body += "\r\n"; + if(captureDevice != null) + { + body += "\r\n" + + resources.getI18NString( + "impl.media.configform" + + ".AUDIO_DEVICE_SELECTED_AUDIO_IN") + + "\r\n\t" + + captureDevice.getName(); + captureDevice = null; + } + if(playbackDevice != null) + { + body += "\r\n" + + resources.getI18NString( + "impl.media.configform" + + ".AUDIO_DEVICE_SELECTED_AUDIO_OUT") + + "\r\n\t" + + playbackDevice.getName(); + playbackDevice = null; + } + if(notificationDevice != null) + { + body += "\r\n" + + resources.getI18NString( + "impl.media.configform" + + ".AUDIO_DEVICE_SELECTED_AUDIO_NOTIFICATIONS") + + "\r\n\t" + + notificationDevice.getName(); + notificationDevice = null; + } } } // Shows the pop-up notification. - super.showPopUpNotification(title, device, popUpEvent); + super.showPopUpNotification(title, body, popUpEvent); } } diff --git a/src/net/java/sip/communicator/impl/neomedia/VideoDeviceConfigurationListener.java b/src/net/java/sip/communicator/impl/neomedia/VideoDeviceConfigurationListener.java index f315717cb..46bdcb1b5 100644 --- a/src/net/java/sip/communicator/impl/neomedia/VideoDeviceConfigurationListener.java +++ b/src/net/java/sip/communicator/impl/neomedia/VideoDeviceConfigurationListener.java @@ -67,7 +67,13 @@ public void propertyChange(PropertyChangeEvent event) } } + String body = null; + if(device != null) + { + body = device.getName(); + } + // Shows the pop-up notification. - this.showPopUpNotification(title, device, popUpEvent); + this.showPopUpNotification(title, body, popUpEvent); } }