From 2f89532ea9d109901e60ae9d4a05c4eb5cbc73cd Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 8 Mar 2013 16:58:23 +0100 Subject: [PATCH 01/17] Removed last ; in contact params --- src/org/linphone/LinphoneManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index 65148120f..7f47fa291 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -700,7 +700,7 @@ public final class LinphoneManager implements LinphoneCoreListener { String regId = getPrefString(R.string.push_reg_id_key, null); String appId = getString(R.string.push_sender_id); if (regId != null && getPrefBoolean(R.string.pref_push_notification_key, mR.getBoolean(R.bool.pref_push_notification_default))) { - String contactInfos = "app-id=" + appId + ";pn-type=google;pn-tok=" + regId + ";pn-msg-str=IM_MSG;pn-call-str=IC_MSG;pn-call-snd=ring.caf;pn-msg-snd=msg.caf;"; + String contactInfos = "app-id=" + appId + ";pn-type=google;pn-tok=" + regId + ";pn-msg-str=IM_MSG;pn-call-str=IC_MSG;pn-call-snd=ring.caf;pn-msg-snd=msg.caf"; proxycon.setContactParameters(contactInfos); } } From e71cc433768a56d8df9a691d60f1d6c7fa0ec2e8 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 11 Mar 2013 12:03:42 +0100 Subject: [PATCH 02/17] update linphone submodule in order to fix build. --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 837c566c0..88d0ac4cd 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 837c566c0a2cfd5d27d738f1647872703786d6cd +Subproject commit 88d0ac4cdc6f78f378b6fbf3e7d6b7833c53cba6 From 6807a9aad28e68433ecd2cb23760375cd024415e Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 11 Mar 2013 17:15:49 +0100 Subject: [PATCH 03/17] update linphone submodule for new LinphoneAuthInfo methods. --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 88d0ac4cd..a4f1f411e 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 88d0ac4cdc6f78f378b6fbf3e7d6b7833c53cba6 +Subproject commit a4f1f411ef60a0f9311585ce1118850fe2151b84 From 535d545cd84187432be6050cb3406f3e4ab67539 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Thu, 14 Mar 2013 18:06:04 +0100 Subject: [PATCH 04/17] update linphone submodule (for user tones) --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index a4f1f411e..bee6752f6 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit a4f1f411ef60a0f9311585ce1118850fe2151b84 +Subproject commit bee6752f6e6c188481521d74dbd0dfc0bd86b5aa From e62769379c200c01c037d71e430c64da8107c37a Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Mon, 18 Mar 2013 12:34:30 +0100 Subject: [PATCH 05/17] Use submodule for aXMLRPC. --- .classpath | 1 + .gitmodules | 3 +++ ant.properties | 2 +- custom_rules.xml | 2 +- libs/aXMLRPC.jar | Bin 62701 -> 0 bytes submodules/externals/axmlrpc | 1 + 6 files changed, 7 insertions(+), 2 deletions(-) delete mode 100644 libs/aXMLRPC.jar create mode 160000 submodules/externals/axmlrpc diff --git a/.classpath b/.classpath index aefe1a96e..c48ad169e 100644 --- a/.classpath +++ b/.classpath @@ -5,6 +5,7 @@ + diff --git a/.gitmodules b/.gitmodules index 9f5ce1d81..dc550ebff 100644 --- a/.gitmodules +++ b/.gitmodules @@ -64,3 +64,6 @@ [submodule "submodules/externals/libupnp"] path = submodules/externals/libupnp url = git://git.code.sf.net/p/pupnp/code +[submodule "submodules/externals/axmlrpc"] + path = submodules/externals/axmlrpc + url = git://git.linphone.org/axmlrpc.git diff --git a/ant.properties b/ant.properties index 7ddeeeb30..7f65258e5 100644 --- a/ant.properties +++ b/ant.properties @@ -1,3 +1,3 @@ -source.dir=src:submodules/linphone/mediastreamer2/java/src:submodules/linphone/java/j2se:submodules/linphone/java/common:submodules/linphone/java/impl:submodules/linphone/coreapi/help/java +source.dir=src:submodules/linphone/mediastreamer2/java/src:submodules/linphone/java/j2se:submodules/linphone/java/common:submodules/linphone/java/impl:submodules/linphone/coreapi/help/java:submodules/externals/axmlrpc/src/main/java key.store=bc-android.keystore key.alias=nw8000 diff --git a/custom_rules.xml b/custom_rules.xml index cda9d1e46..2e6e2dde5 100644 --- a/custom_rules.xml +++ b/custom_rules.xml @@ -71,7 +71,7 @@ destdir="${javadoc.dir}" verbose="off" use="true" - classpath="${sdk.dir}/platforms/${target}/android.jar:libs/aXMLRPC.jar:libs/android-support-v4.jar:libs/gcm.jar" + classpath="${sdk.dir}/platforms/${target}/android.jar:libs/android-support-v4.jar:libs/gcm.jar" sourcepath="${source.dir}:gen" linkoffline="http://developer.android.com/reference file:/${sdk.dir}/docs/reference" stylesheetfile="${sdk.dir}/docs/assets/android-developer-docs.css"> diff --git a/libs/aXMLRPC.jar b/libs/aXMLRPC.jar deleted file mode 100644 index 9cf8f61e051fdcf32e331f791074ba3023001c8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62701 zcmeIb349dSl`ej&)!kKUm5^uTXRQKT}%6xhCh5&WS1B9 zK}0=1^>zDhMRfiqkM;HDj&_Zb zU{-j7flRI^-P?0#CU@a!k!Kg1Cp%i&WH8?Y>4D6ul?8e2`@z=s7osBk)d%Cd6>AzA zJe=tt?CDAmqVLd`=|h=ZeOGUKVBo8N`1~_Sv`nr}NSVwlmI*SSmjww~D2q&4oRFBz z<7J5@)x6gvq*m%IskfvdAxmYMDa%b+VMufc?O{l=_15%l>4x5P|DlFGgSnpmLu>Hu zDDpBSzP6{oXK=kCMT?j0!`n^S?u;R2tv&sj_MyH5nOsNuKrh}TTeDs1-hF8_FT&2t z=-}ZVz^HBo61aUlY7LQZ$v|e1wcnf`OdGOj@$j+@f5VbZbkgNp&5+qn>i*1N!?wY} zqkDI^Zp!xeXS&#^YgBy>A`-v>V`ZiT{*#z12>#~k&q?HYnT1=?^D>p8QxbhdO8Ej$4@>kj z=Oos7TH^YfnY2!cslS@1r1*>^+G>&|PMoBTkG1&W%PA?%mv{=wDl$*z$^u*$%Vw#T zn?PXlCBNA#`OPv*W}}>&QL~g&@;OKyk-5Q1;d{T{@SY{62!AsX!G{$t!Pu1U?Jb~y z9SJn>>V!;@tBUc|$jcg2){^L5Wy(5`yo6wwFuXw#Ka*6`lqO3mnRX+;Y_epfC08U+ z%4S}+n6lNBZ9u@j48|SMK9oSlkEV0!K9ILbH~2u&>IZbC4HDqa6ZG6f0^z?z#KtUB-lFcD;LiY))>;>A>eW1jN=3`x%qonKurl4RY zx{kZpONOlXH;z-CC1YeCD0NJAw;{3H(!E2>&OZwjE9BHfe}>GpG4{9H7!lKK4D0EJ z)Q8~nDD@1d=)MH`k}<0)TXsmREp2>i=hJdoVaraLZ^|wk^k=s%dpO@u4Jn3h$&hJb zZb)Qw#qM33yoPqUf(e*=cW1MMP9LjzA|!Qa1=KX0007L)gFp~;90>KM!7ic0U4a?s0wDn5ioF~#TU3D5=-C2&tDexk zxJNL54J;URPq?m=3Zi0H&gWG?FMH0Z|4(2yCtctP^oa z-percL^y*KaR!NMdQ6~6(j0G8O2 z4q1eM(?RMx(MF2_A&wZcF>ftFlW&t1Xpb7ziuXCKWyvwJ%xIyc^dq+#lxdFa2Om&_ zc3O%Y*yGFa79&l!pxlcu?1_b{5hk+b)Kij;rW&j6j7&luC!@l(`FiU4bSIEw7x;~9 zP?p{3l|8B+)f%GLhYMAWfY-pam8w*eRoethWuWcYidP2b*smY?{OoU_kNI1O2q9x( zQ#N~~ClkKhczXiqvcr^CV)2e*v}7AE?Ij>IyAq@_eA>gO4omj3i2HcCmT#`Jq?3W` zExCcwZnWek-fu2JtKL!~X*s}4mnq$*WD*z!J9s%r-s+Gkhk5U@m?dubHc&4C$j;An3T=x2b>@tU^iNahZ-Uk{jqajm5^sVADD zWU=P{!5os?Em)Q1HgS2&*A>AQp08q|UW(V4?EBa58^|m}HZ$Llgi{Mprv_hCz&Ywd%P}P5<>uEI?*pFQ$HSaupO0 zRG*Uw7THB$(yC`XB{9vZEyHKcsm(y*$>71NaGeSM!DRz0z)7q`2w+sE8157o;mRyl zB_&|0iGigpDUx=kQ(JHXWK z22!n^|~sN@lm6eDQ2eGKCa#SpOohiUOt8Icyeiy-|*+!OdV z6}dIVi-RoTuI$f0^hNXve~S*dXl)*Y0E1?1b%sUduza@cez^-j4YuM&6 zge7DMEwY1CrNflH7Ma0fxt8y*OMnq4Cuk`?Fafl^*^>RH++s@FA}2UWae|g)OgWf9 zryojSupG9e$CO(wIYLOimh@TDpOCB^<>eKaRZRhLPHbt~+e&_L^LV*ITc_C5vAd;x ztB+5+1d;c=Fg7jNlpxBKDR917;*kBGY(q;wCIV2ZOuBE4f2Q&%Dn&EH`BU>?x(j>| zX1Hoa@s2fMvE87+=LQ-!XS;?dd~pP`TXb9$z&xNO&sYhLoec4dy0eg_fWyiiYPfwx zR|A3`aC|mUmx{p0ywoR>0Vm@yc53GGqzFi8DhRB17lX5=;tqy~8kKN-_Ohpec9QpcHqS za+fW4%RQ#t>+pLMwA9OmqPRap#wDSd*QSJ+Zqif^a+=g&`cSH8Al271FaT{&y^Yx| z$Vy@qD0vsglPmaI+yPageyP&;4Gj#Yz;q9$d-_vp{e>R@4Kxes9I=a!^8h;S}~>BZ-rki5GO%tW{cu)tL4pxG_nf8rVOi! zf|ttXe6_82+3Fzb8ZxIjmqSdT&mdYd1w4kVDRmI|lLEO!byVZN1=E%#B;_hWM1=BKo^z-hNfErz?|$KvhI776CLG-ya7HH<@85)M>zUCQiiI(fiGYJnm^0ec*>E(xW7R*xrR!R!g4$`pS}r6+54Is^q%MYe{JZK+)Kjk#SJt>)(~2jo z(60(WJ<_UnTA#4eE8$Aid@V}2 z38^WtF2;{*g@|kmt^+2Wv_85L%S--7SO@4Sn%bfR>8>LM>wr>IN=)KgBHQnB8XWuE zeIwdoy(sxKv;At?q|S1C7^hsIXHqnvG~4em2%K@DQyVR50V|=EOaYFppgx>}!e`lF z#E@AQJqQsQniUJZD0pNvwcs8DBJgg~z)Lkg8@|9=>i277u^-_xf1@{iZx0yw`O69# z-ZsTFB~id`PIStw(kNyVYli0juHG!!J5GqqUXDR^5oYs1cg6JV8+O7KC!fLt!lth zs##u{z>v6)PxtfkDqddA%L55{jl4ENF=`3Ls0qA#V~M;;-pt@zOnIv*Z)5l&Q{K+| zJDBR7yu6D_iFY&odw6+o0^)-cro7LT_gnHXm#>dl@&QJAl$Q_k@)%=&h@c-Ykq^s9 zN+@t@(-c}t#6fVw@xz;l-TX#xoMMN7U!V1LGF&nM&s`LZcrVYII%AfNb} zDPK3`&rSIYEYW(wb7UZ;=UQ>(4shrLm=kO8Ff|S>-54I*fuNf2);!b27*tqY>HaP( zuLzHF$8l*J;0>u}6vEHi4h`Ih>DQ^y{OC7iCo!*H}Jm zbdFheXLz8(^T&*<2xn1l2#Rh$K>pg6zmdN+By4@*pF=TZNPE1pU4RtBmcNt#H7;3=E&p47 zNV6T+X6Hw&*pKBWw)|9nX3F2&@^ksc7<#g~N@t@5AeaOXrF)xlhm`QoSNH{#K>(j9 z1L}u3=pZB*=@bbn1v-v>ECd&O<(I(3T|4)nm479_wB;Y*%I|IYfAXKU{FnT}lo!EB z8is8|j3U#B+D6PU+**esxoyM^6QwmQ(qq-CM9migZxa$BV=o~{}AYr zl5y=khzc#9M=eH{*@MwTv=#xj2JigON6Nh7Jxma~v?h_C^C}6fg+J+Wi<~4qXB% zaO8>&VbkJBVzu(T##k?aAjiY2%~?HZg3c|zo@-Our)L={^gJTW180k@1N8VPJycks;W4(&be8_9#JFm(8k#*~xKMmPo;&R*Gv z>$M2I7E&Avr&BaaHk5TTx3*Nzq2Wtq43;m|mGP$}t_?u0L(J)v?L=%Tj+DxT$OM@b zfhBUJTxLfmLXfMC9{^9The-$jQmUMktff>*DK$!wzgKdj6m1Ovk!89WSC(ld>csd7 zuT1&e8B-#aDks-MM(1SE2312aJ_dOd^Z6R=LW*91eGKl#8MRF&dPc13vr-JxmTH=i z;1`EwbSq=x7lqKaBr16F#fPLfBG;ajdl@U_{Xu`~vXN3>?Ti%YVzq&)tr0x-62P&z2WS*Fj`C>&D z$;`-Nsg5j>)sbb=8d)woBh|7C&)s-F6seWNkvh2z;Wr@s=19G~CDI`8NB9YZKa2ZU zBP+d*uSTh01&nSW>UBv5PlxfY3-&Pv%n2v6u52SNDV={88>Y0fS%NRK`xNwmWx z*jeZMUhT4qtdUq`9Xe#a4+ly;U|1Cb2(T#fHsAm-+vsI`*3_Pnigw+yQ%=zws51JT zOjF91%Fd)xbW~SHpOtA($s}f+glW)BK15Hc%~-t8*6CAc1$_Kj!RXgonRzrds-u!+ zK23-gG;(X!q{{eNS;+7rJ}p*Hr)0^=7r&vw5c^QS8XcDxPPRmllhvn9? zQ?k4g_FOA?S*br?p>i?G%g@NF6Ea=DymF#^`2$oSm3JmrpO&l6Bk$ zoRYPw-iWi#jdMnv0<33>GqRx)gW~EZ*kZ}!V&fJqe&@qt6LQ^Y*$DMdDa&bKYs9AW z?cQsSTcgofBTedl0E&|$g>-jvH$Y^!BqAM9HSLvIk$ti_(kaU#*GpsM2H6<7QMO0+ z%RuB7c_`8)ABc3zry>XC>Bu2@K5|&T7U_|1Mvll2B7O3^NLKzcGGLgIL1Ri}$Vf%* zFzO?B8EYc<7;7W<8?BL78G9oS7zZM+HM%0NQ+RR|W@`g5RyzVCtvD#tN|<70L4gv+ zGC3-*Kq;pf3nYg)QF$7>00v>z8-r}&0EW`-Q17gjg+N^>e~d0DV7j2D0(~)hT`Gqs zQZyhho=DLmawia(6iVlM7jnHDZ>Yd2$JcxC96>%e;!XuwGeoyH;7uv+-MBA+P`Ni= zY|KV@m?XVv{x9yGh5Y%u0sul7x4^VfAonQHKFm!Z|4MFFpU#bRGfbIj$}EVcE=uY; zPHE&t2}_3yCJRi?FI-M(%4~L;T)s&>atvHey#_9&!e0~mZ}{%Fy!^8%zq90Dn8m+Z@^7a6JMEMI zk14-5m z-hs6HJ34nYV};M#ejqTU0ox$;#A3;f(AwO-wPPDp=-WCvcI~G~)RO;)BEt2?ww;^z z?{40+YiIkOW=sAPrQFrDyQyuDC2z#KK|NdYUwGWt)Vdcj{(whScuQWy0>^={sj0Qq zq9)mW(caXC$Zvx{42G$DH+Af9Yi`@vyxTGip!1g2rmcJSx9@C6sf`w5HCs@>r5)?0 z4!%RoGW~A##?FrB{Vnb4bp+;7`gL=A)5g|jXYbS=CV|4b*a6fpRQ;l5Yx~aK z&HMLsGILPq!jS&Umd^#{yb`3j3#6@S;EsN1k9UkFJVG?m!;oOf7EjYrBCmp1mf z+|W_D4D$#MroGWh?pI18YC<^!$#AMQtM`2qVWp-`uP(TCwH=Q0go<@RDeGT;P{g3F892Aa#VB=<=!z z#$0;$N}nyCluy}|7TFXO*$`wNvLT|$*z$4tgbi^cf;o9z*rsvQD6);H5wjsMx;A{B z9b`6*u~k&a45kzpqJXpgmJL4R2h)h#hG}4FkRT^k=P-I^TCe?CE3h5f6oX5t>;OjN z1Q%GV<6CUWi1c*0pkZTYb|?iCE?TSfWxIP0-l6O@2)VYv{vzjvbw(-8wZWVvhy7GA z47tyS?gFhoPRj{4Td57p@&^Mp6q=VYjS1Sg1d%4%Mp9m9%L$l%8k20;nN%n%5gP`c zuY=VG^PH8ph6tmbU|4Uyp{efrblsgx>#n-7et%=bP1W<2u?P&Fwca|_kCl|RP03<= zhqna_$x=v{s!uhh_NN+BBkK-XqZ#9|{uo=UbTJYoWl#is(43}=##l!xmJxSnr2N56T60TaI7@g0ZCq4PcN)`m52@u)XQ!48dLgTAVPjjjL$;o0{0|EZ_Uze zquG}pgtt>vcO+f&xE-j;97wqqLi$k!ohDo~LiVyAAqoYjK^2t`)1A}RzVKv(n|$F4 zgg5%aGZ5b73s)h$*%xj`c#AK*6=C{7a`SINc)KsW1L0O*xDDZUUw9|NyL{nm5Z>(z z??Jf37v2kF_I=Qix%pj(aHlVPJ;FEm!Z#v(lP`QT!ux&UTM$nB!UxcXnDA6vVxm-c z%$msWuzK#ncTAgJ_z1$7Y1KDsW!MMQ$q2kB8A>N(Kp!LW*AUXuH`77Ljf>%+A%Xq; zCDc%RkJijHP*y>c9j~7G6x4|4WCG%pQL{}I)l6)LqH_D3B=LF@Rou`3Cnu}@PgDpq zG_@8Rpb*e{$06jmT#2NQBJVWB#a+Ob9JE=3*no5!wlW=q1oTee%U$TRd!XyO7d5^Q zUj*B6RcYxO1|gK2Yy)b?+DXJ4 zAP;||%0f%Ji@hw0y)3Atx)xaw@Ldkz?G9k8x~8@$1n#>aC4aXMuI0hCJh+xqbi%#c zf!hSQtc)sf7~n@y;14RmdUMn80vl+%dmV6FP&d?8bvWgGKsWzS2nViKPZOpi47#?WPAJ`KI zPRmm{AQu}@D-|@Rz#r3WNfzQH_*M`RB*NBgxkFa*&@W?7;{TE z;hfCv#5kMB63%}DUo<48q>&%_O6PC)H#nu6!0p;d@n)o>#`7)sy&k@YbRKJ*{-tNV zQ?j5C`0o^O*Q=g8c(8Ft0S|(F$SZbSb?=1gn&{KAu(POk&v3{_bcAAS$Ur#k(tgLV zV!zYL<9cY1IG~f&H8CfT&S+g&K2udbdiW>3&PzHqpbHtD51-zJ9E%DX>fKI`J;;&T zw5ioKabJ#|vC3#zwzVqTl{$%+?Nl$@sb02Ioou-m>pdtyw4ea*bqa6{1%R~=j0bAW z!UA;0D`R1$*r-ZDmoJ=I-R`UMN>SyNqRJ~pl~W3)IF9nf0_6cK4*Vf@=0HaXciI_Q zbR|5x07Yx2L~CJ@uo$KlQ=*^3H;t#tR>atc{k7M^70h+MmYL?2X&TI99#$h}nkpT~ z$TWqybTKnY9+3|y>^&imI{9xwSgBJ$K!Li|`TW$lFm6@(XrkS= z?dgOKOju5D_chjJFQ>^~PLsWyCObLNe?9S-L;Zw&$jNgEd9t%Ak*7vqCr{unF=tp6 zKdLg;m{aLxT1AB$WnAfGjBFGR(Yoz~Jnj_X0Th8s=vgR&MqqytfWh&wa-3J? z*rro@<(TD_W0qHrSzbA2dF7bpl!LBqQd;^6m!>L~n_9+xRK$)zwq zQszRK8<%r#JSQtUYq0NoWu9*9!S+)W>u2z*^b1u4JqQ+f87~lba#-L@4iQRLoQyZ2 z7#x0OXqM6$_Z}BBdQzfApTsNQykq=}0Wf8HNxk2?4zCYCDqec zr2?ZT!5Ca{fjvXwCt)L}6Vq1{hdCxFRMZSlt}AHjJ3TjJPbX(TfINi_>BGwt z4+mISo-?79iH$GuS^0cO&e8EDJ_p8Tc(IGdm-uOU#!1}hbZWeM2C%81FEL)pBkR75 zd#xBpE9$;Hk5Mta5XLwPfoz{si1Vkgi=@G75&R0kP6{1z749t7T-?`4B)CEOsTZ#~ z_dQ@Ce~XcDM9G#XB@Y^UNEPj;DtMW~%T!aQnNkU{fP4JHh_=L#QfMpd3p@*5S#)f=skjT%5Qz7 zH@)+12|C>dvzagjMdqn&`l42~aG@s45R^ z60)7FfVou5Etm-wl)y;8SVS%uc}z=0CI<({_Tn#nWjQLzUjrhHI5-N$z6E1sY64B0 z|#G6aCt+PO8m7ZO?^1q5p7%P_1aw(DghNm&V&qO8Coh*>rwERGDC$Fh7AgXs74IQ+Zobe zzx%NQ>|2&Vk!Kg9{3%#cCeR*p`DPxU=36{{r$`oBvWWM^CY}9Oqlus$&F1_p(T?-UtuhSgO#N=6g@BtGg>Wb_cBsV3>L zrq?B)-W3ROikX5nJLz=^)~cFb^Be$j^f*FH4Q!n2a!!gM;fz9n6FVhwI+k*di?Nb8 z2PTdUFPe{HwwfoNuCmiS=sYJo_c#QC_A}HDFPBd|&zCsnCFUs#I0Ya$kUJlpRQ5Co z1%D|-2&Z~Hl95}2wtTC&NM%_a|n zDV0^0Y~g(?FWYdi2+d(P^0M7j-tc|HTBFKEjp3>hrX1D=)57KPTvoT`T4P58+qXplj*Q!#XQ$8iD9fh9#q zK7yg(gxj9XshWXlt!ks@g$d>HncO>nELz{<>_LdDc9Oi73{O2ciA~k(l&!# zk%H?S`hbPQ2l%y1!CD6X&by%%pDM7CnddkNOu@T16zsVS)a&W~RJK2p>N?z`j$#2B z4tIw*5)}uHcA*A*g(|Hz-66O|8bB#-kQ;5Nim-YJ+aMg;j5fCYq3EMJLG&p=wZgu@ zGo*{$FdPEPx|RugMvG$mEWM_Xf)^q#aId`Z9Za_YgAn!pRzTSUGg0TAV>LR0w@6<( zHRclcay`i2JBn?j3F@M!CZ9WX-}yV3i1aBpTK=vNq~Vcfc`}aqM^8OG`bN(IrBH3S zdoN-T#gc#*LjW}!WSohA2(E~t%3hkrCNugYM+|bnJhjniSsqjQ~iPv4yQ?+hl4@8^?@Qd9)Gw- z&r>X;R>RFeS!QD5n}yjR1?oQ!bbleXm@dNHT7ylbwNOnqKwC8vD#jJ6K9reGfdVvz zM&Uk>gIN8~LrqW*&mH8gfUyXZD3|?|VsgjI5-9L=y`OdJ-N9XNr(qoLtNr?5?VU=_ zb=tzMWSOd@+breRs>(eBz0<^e{i@XhZ6oq-#uT~*?cahjZAU5Euy3XvT>3S5(~Mo7 zd%b#9p^myC?x+>X*_N;}smZTZt{uoc!hz@|g?nzGO0$u-4tT?r`d^}OKV znj2*oTXN*-Z@b;JSs zAA%F}+0twJPO)j)y}PM%|K_HSrV&Iag{Rn*=oD&O$>m`~8p0;Wky{p2(C;KwIWqTC zMTh){J2H38d`4m@T&5&H&pPZ$xt`RAz#26u1_HFQTb&jVJ^Y* z2Y+3L)8mS=2W}1as*|l|szR4=p_3k(+&P0U-0eF(x!*o;bx1m3OHBZO6-G;s!m)G(Dodr#BRnEGl zU`q%nKJz(cbVhgs^(L+OpxCxas7!eSU5MjA9{7U1AnxQX^x&-ya2>yZhUWxf%U4|p zk2>-&46#cLFQ^Yho;;4k*8TVLL+!Fwqx#$q;iAU0s~d@}3OEpd+1bQG<}YmDZfI}j z4H?0AUgFV*+Az;xS+t5bFG3DK0Z=f~tW9jb_(mC^`aLi_~) z^d|8FdE0B~(z{IYz?1lheU)JGPD%0+S>=3k7{o*XOd z!u!CPeH?L~fF_L1L?wF%V$n-^6f(J2gCWy~Bc~~=Lku(&bY#oXgjB1pg2W|)+&&DA z+H#cRDtxD`NPnY7Z4KU#bLLKOZA{5VUyZon_9RyW*BbcWc1|338}J!{r#P&s8l!cr zb5(64^zqNEGK*GO6;_4$7<`<^E3D;>#VRIj_h!%?23rUsEF95ORT-r}jH(ALEEK+Z z5~mo&&dKafx;#&vucIP(9t`%nQKE=yH+>Z48kBi0YO)S1g!PEA38BqcKQyB~wqOCf z32Am9RSVV$+hK;-rrL|{Bi4e|<9S5Ih&^4dh6!j4ExiV&pPSH{HE5&FXhRdNw*t^s zBA-}18c%G=9Y__C)*ugE|Ks<6 z^S4-o@kb^*WK8-fiavxpKT8xa(QCNTd^Tj^6oq5)z%zUnShCQh0DL~rpr5Nm;3kha zsl7bRY3OOeqZIj)xYIn>ITC;B6L^_Y2lVxdavAtVj~(-io;>;*;L9q8b(Ln!AY%tc zIXuiVbtZ8B2>Q4_YaOy*|Ng3tcMN85)*$4h>IC}mbBn!d<{AofzEnnJeA?TP6$Whd zG2LB`Q!_4IayiY7V$-!b}?BL|Al291D{?kaDHZ z(`Fu}P*M;Gk|^;MbVqn5t>bygT8%-#^zlK!<;fW4jX3_pcNhG2X<11g_GBOIau0Sn z=0qOitdDUXrhwS;%f~)m3yRDij6%kupxG==Vda?x&UTXm5(>4#1esSt!b$HPi!4%2 zNREopy3Ya7uMnBq^Vc@@o4IljfE9= zlvgjbf|6tSdgddSpl4nl zwiNdf{Nb&Jj4xist0a)l@dBz^%6(4W6be+*)1r=p&wg1a1Z!Cli)rK;s%{BcB#V%09JMh=m*4@3RW6`#4jeUKM z0}$I{w;)cHz0iRcAkBKw^4~}vdFdQJH!9N?u5sanjZ}m ze#LPX1BQEn#~x?p_eWR(P{`+-EZti23~hIcqAZTAJ)$bIJpo~w8oB&=CB9H27&4J@ zHqjH=1k5P;iHtJ~R}7pF2wouY(EDeqo|FjYvLY@TIFmgAxschJv|w#td>$#V5dZ~? zBNbt5C1eHOOaZZUvZ)-1^c z%Yaj{y@@SfjVhIeyJm3#mpYP23(_{XHF$P4|De1s?MzO@=2yr?4KEG&fz)%mb$XWu1J25}v|(JM#^e#NbbCi2bfI zrO}2!(YFdgk94bUcg-vn;oqF;>gh}OYMufd@4Th;OXt}b4^080tus`Um|CIO6h@9I z4k|2W0OUo?1OLAe2bHMFLO0C_#B?)AjZ#1IP?U7Cj_F0lVLJvs+aR?6+rVQ zkpf^IC;E~vW+s55p!-3(xR{~rhT@;lIe-foS8Buw#FZN9DTD%^O3*(h_Jlj$Vg_>n zlqh<2k%v>RCL&FQN%=VyK_rBEWCn`Cd4|+|CVn(f(gkb7J5u+`Bu+Nvgo615OPK`7 z{3)?|a0wsPqsq-IE{+d;Ji{J?K5=*2!rJWKq&3AwRvd=Jb1ar-ooPJ)E)ZJDD*QKAs zrS6+SmPq5uL+NK;I8F}Q-Lm5sj#IoelHlFl2$V?1!5W8&+$Z^`bRRSt#e}|6@%;%h`s89Ec{dfsG)XV9YlmN|wbD{4^)83ZrG5;e87%e7 zNi|{8{m0T;P72oAA)AnaVv)feKGbyBG%c{9YS99BAaBp=VeX>*G_-bf8XC;`kZRBcL?B{OL( zJqt%(n37TlNxU3{F<7{llQ7QxBNE17tsTOMT?OGH)KD`zaF_i(y*%|}o*`op#b9-cNFF8vx~5GSlb$E9I29@76<$E}~+mv@DAPxF~Detj(Y|VA@HwpP$`8&er(KWz-b&?BD zLTQKG(r-lP$-oM=v9?OGap%s~<|b&p^jR=CF$Kt=zTk1W``o&dV09*&ckaa*DzHFP zv0P2C`&FOa0@|Uzstr5tr;SZ}npdrKLALL0ZAGp<{qTy4v&M09?ikC4Vfcj!l4rvA zke3@vlCE1J4+3eUw0amj+hMjSNNPfsp%>s6Dj-=%l6!8Kz zwGQ@X(}Uw`r$Ui7Dr-^4ItU#r4#Xa#i>Lq$+8`jkySe7V_gZ;In`70v&@L0Xk|7wo znS;y#3+tTi!`Y9sSTb(8dZqGre__sP8o1qS7&NsfosQoR zWMJ-)M?!91e~tW*mmiI(n<^xDHarTW5yz<6Fk(lq{YNfLSZmWm@tACQP&T1X4H!?I z0;EkHGcabVLXxJu^z`mkme5_n7iy zTYe%xwdH5>_n534>plz(tvbU{!u*Ay)Pu=*m<0{rV}cq7b7{!Ut5XMHLJu5O(_yM- z0Nxe`5mbj23><~>^f|^sH7J9bHYX z&)&rGBx6XbJ)828!d&VgPeQ{rm!c1g)FNAcF26u!7Gc!bg9liX-(T&S0b=R-~>9szUvCtj+rxG(A&m`s@1XbNZB-I^s689JuzW2iSxgqx< z)TosA5Rsk}qZ0>RM?UKwx_UppY8P*HSeMpgueB>kRTLMYVr&e2z=5+;NoC>c_emb9 z4uhv?XEJtL;^z^j%+nCU)3#byLaMVGvKwv;1QX#v_*+Nnaty8}OgQ1U;7gR>AL;2%z6rEbf1$H z9_KtIbMZJ2kMp0B1=WbPP`f)}DfL#sU0A2DgN$iC7S$VIH+3~M7ENkH-xh4ky9R61 z8)5i)2v##Wgl@-~3Tz=QX*!0jmFz=7AF$QI&5;nJzW1RiJ_X1y4loRZyG$1u!h^II zmRoRaJ2|-+4t|#$mlC{M&~{S3pRCTmNZ`c_$(sC&QoJ~otj)iu#ETCn=_Gi`39*y) z`7h=8^2TIC{zVmD+?iaeU(8|&VkiLforEv9z=6GT>AT{5a%Dcz6ntt8!uKS zSLI*K#S1tXTh@6_u0->$PF{6N8u3{jE#8RJ#ZSwM^R=k=x`^7f8c~RGt1Xa7&i_Ynb<@azi zem#)#Er?Iq(K7r%%XKG4jsl5cqz->uZC>w{)x6+#oN-OfbFyByC%Vnph~NetM5h@m z5WM67(@^5U~?l0yZ;$LXw?AO`JYCx?YK-r`nFTj-ila!{a(D@sbjIXA4G7M z4zjQBMDQAv0*S7{|Mt3Po|esxQMDJkGWyJ8Qdt?Th@F$ooplwl6{ltQo(E#sfcvw` zDB%-1Rs+Hw4UoYleq8AQo9Z>jNi3no|n3WhQzY;4DU9O;La%Kt5rzkv} zW6>8Tlno5bhgKarb!-F%gY9}RzJwhMW63%S7j~HXFF_`7A-fS^GjN%g_ZP5MuPCgy zqbP!$7-kGMh!{6sJMJ?bv7p)uY=c%oj#+?4OgMwhrQkTx#O;7C}*v?bsP{oY&`}P8tEK-p;G-;3HBMBxDI|`qFc# z4}aq#WC0OL0U`T*0zMk{n{o@8+5IJ$3=WilCGX}XQ$l8&m%|Cn5V!Jj#FBQt>1CkL zlzvOHRK^_T%LA6+Q219Q$a7n=*OI{mnC{yczMW6UZ~#&XsQsO$+-1oP2{1B8;kJmc z?kOSLT_X3%{k*)&lvi_O@B>Wt8b*9AgRe8?_1q%-Abb*;@ToTbX`dDqhR{*-}0Z8Lk{2;id9G7mbLM5Pdib`?n*xLb$ z`qD?SuJpMQYfB$RHY0i+yCN9X?{rL4?=`-iHI7L3rFBE*ot_wL?jOuSq-MAD_h)iy zfvir(3zm4kiiIl1;5d}gL#5%NCJ0CrbJ{_|rYkV@*F| z^Pm`K8~jyGPD$JhmAo$CWQ~5?h!v?cWRnai+(5}cCLa%1|A!)1p+L?Ce@=zB4c`3I zraWPTFMrYoQ~o(fhw?%_4>xS^>7P@(B5fYDVnfM|m>1%uZH1g24-XYUrAy_ZE}1?0 z8B?g|BhMTl;9J_ zyKgZ`!##C7JVz@*IGi#>`&A%_T3)H*5cuxMVA{Gge{>WzI}+;AT+?ZHxpiR7r$fj< zhI}cw;0WZS)3M~rhm!~|_k}AID^DkChO#OOVdd%VK(q4YFr&${^4R!?kU=jb$OtA$ zkre=j)q%0qbyZii%B(QK*GK7yE(WK|Mx72-m}ey(k#@MHGqF;K>t#IQMDJ6|eZwP| z5Yz|9>D=#hDEg>OOqSr;X2eo;y4QrxBzzQ?pEnv~Mq^yLU_*q7ZhrDf9jdTYesp-} z=BOOq<+GH#olj1leaR$W=&X**oXVJT^^E-B@vi(lzabZRb!&{Bl&g~!{>Y0e<8I_B zjC@9>dhw^7lFG*TNeaOL3v%u9^U4w2_S(u=W&Etnz!9zwn8wLJd_}o4<`GalZIy11 zr%~>K9SgI;g~N$3B)_{LR62|howOZ8zrPVZdjkFY9J=F6=&Wx;n*Dur(~r?b|19ea ztcxJj*9s?2Zy|L%#P@pupC0!* z@D#;$HNNjbN6bPR9*Arrx4TsX#{mmoqoG(TLV4cjb_AZTM~AVz4?*3u$LR-2_o~Noz8hjVY42UFo*HS({%`s)J$zG1;vRRPf3tAAoWa7Y4>WJBA0`$eZ zQCi2a2bAps9g^lPg~lNP3a%!U7Z+cPlNnWq-`JQJK-oq#Gx`HO0tmYkxLjjdmP)@=qova{e@m1X0ND+s?icq7=IMyi%*IM2C?}yXk4EkeU1ntB|8GEVb4*!bI=x?m6+0MWBzZ)L1zr;<7Y-A zQjr8aPGEM#AcC8u$l3;6NTa|D+n6P%h$#$I8Yqfy=-bIs{froPa)R%D8Ju4L<;aJyZ1^H(&p*SWg55#8hc{qOtV60I*h$o?Wo!iTuftN7uKv(; zP6N~8fq5(s@}u9_x;y@TD0uke?nK`VcOX5GS+&w}8C)=K*KX zyGcfa-Ea;9`K9sz_AcLiLsQ-L>AE|Y)?HQ8a8vaS>u$PhY3+)8=F`^owUC%IhqRM( z$~l~6Al0Lbgp=bOjOGDvFmba%QsB`T=c>Fx-sqgCqUUf`6E>I9rU0eZ*;q!uR_Rns zd52AFn2-tFaaF!l-fhE1=DjxL8?7U=E36c>FE~-prg?-73CsJC71)&%@_wpjAoOZl z*R*ld=H@M1x3z5F(c0F&bJsPy_jK&tckOkZ*QXD3b!QG9I^1*Xk>0-k?9o@`1_p<2 zyZzW5cP?GFe8tKuR$aLotrVsvVue3o!?@^!Xw#8sVxWGSZ2?c0%N*@ZcV(J-dkX}# z&JgekXh$6<8V{7*6eBpmBDv{cRcpfaVAo-#2@D&7V4_L}vm{gw9!GHi2q>WMKy8nT z0hm(m(5Kb3#hd&i%ZmfDQv~7a*v<|;k#6w;Ac-T41tr9wg6O$>;997{)cESo9Mev; zLfQrO_OpO@45;J%iqkv~s4IJv>P>&8ojhB7kla@-v_Ot=SUZ-;&PZo-ph!_Tmca*) zo2&{}U$=Mu3|NRG^26EfjA5_x@yA{-OoENH4**NYroJ>OKUgxJr@~o(I>!&5rgK1p zFW_P}0>LD=jDl$4O3wo!g6tJ|t(VOdvE>EXaPfgqF_@IqIKuBc8%l0~N^ zx}zFKB<9iM6x+r-ljdo$&R6qD+Jurq;}yh>c!gN;!)EUntX4eQZAI&qM7kE%hmSoe zrL`5-$}<9XuIyPU#{nzR?p0C!I(kdthnW5l8}=ctKg5T9Fl%N$P-Ij@W5+6D=H2%_ z)S<(%^0Ir)V-@jO{#87FZ+ZM!g;~DgUPODqik^J&rs`z!luSA<^J<=9EmUxFclQ^p zMysZ%(!&2|&PYY2^@MY>Ash30urvZzw-|hW5_#!rRE!t{H5>2dC_m%ha*Ll(7#OjYJoKLboET31yA1WMLaRaY$s)^t1&f!*q_ zYXX3$pjiZB+Zcqlr4T(&!MzHiXEtLBz;Ix_YMuzeBFpW#^Qg=ns!>?@Rwwh1<2~0Y zTh7UhPP6)%*e&ti!>6UH6^$_y7(J8Nyr||$nN>S;1@QKi%)WMJ`L?6wTOWlDS2A@< z=ICQ0e}Hwx+iNU4w8Fv=}Tc7XnjpWoNPxw&2Uv zxR+y;LOOs_RsfB5;vG$)ce!I0XccJmnfaXcn7=2q(J>$EdK*M1w&BO!I&%=K+Q$!n z!D_26sx7MK5a5`ORz%qf2h|9xt%$CeC@@H5gy!a8-Dm+$cJ`@pb^C;qS z0P+c~0RhX^xR<~{Sr4EofX5z*AcqH?0c1g?;1b>;X8>K9oCgy4S($ZC=3{xg;ImR% zv}QWc1`Rh8Gz?GEN%W>abVjLQu6;m&)<4pVY>u_*C=`jb1wlX(|Ef@|rMRyG0=VRR zG8Xk?%H8QCKo~83v_$K!KSP6*83|~bz-nw{;7%gw&sqex|a4W4S)Em zh(GCrNP2wg>-OD>Nc>G^Z0GOs`#Jx3N!yy*TedXs>8NkpQV79K!8?&z|1t9y@CasX zv;-w?d{x?C=mgmNoy%qhMol;=kPvE0|57*&Noek9*QfxrM`A)@Q8$JI@a?G@trkI8 z_lCprNoPlcrMaiH^6i7 zr$t;E*yH!7F}A}%WwS?mGNTr6SN7*0`XaE1zeR4@aDV*%L5T1|VD8Qg9L@F*WOmWT z_y~2Lbkh1L*4;EoD*$@;{7|4!K<(bOi8Viv?m80QkiTCWi~R^C<1bj!e_Jpb(B2;O z)cj@PK;Qk7C%=xVgj?;vh~)nszkdeu2&ukPQVo;^9;pqQ=Ktc}Ss2g!(HD#R_xSyp z_2YpI7aP6aS~(e5f1XH7q2<@y@&{Zi#>ouhc9%E z0&bsKR7rF)ZIfEVttu0fIt2Cvuo}_Bl8y=yw~-N0vzT}P+g7z zyYtaWWlv+^@|Ow}d`{m;u=nEF-|)sQJS5r$`1t)**!viQY(Da-*0U&c;HaiT0#SH^ zUOt0c?i(uuE!Y_=hr$!4@;N;AnlW=2c4Sc(_s14iqVN=zd=_)wI93+J{h5UKM4@;3 zd>(agA2W|oU-gBxD0HNp&*7)<87l|uOdqQs3f+$8!B;#y7Wkkihwug}bkdiHzxA=P z;0JxQgu^d%Czgl*UmqR|{#b2O=mjee`>~VbhwVBT3B}RE&1(59ZvMiUS%hv~E5x6| zT_pJ&7CkqP90GQ|;ayN@nv>6A{rg^HX! e>@WRw0Cqr);I>4J%LXiG=F5xVd%jP;S^hsXuu5qF diff --git a/submodules/externals/axmlrpc b/submodules/externals/axmlrpc new file mode 160000 index 000000000..c47eaa453 --- /dev/null +++ b/submodules/externals/axmlrpc @@ -0,0 +1 @@ +Subproject commit c47eaa453fb75d55d32304413672c16706af85e0 From 73e2ca7de89547a2e8787c7e0c9f9f7fd4fc6175 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 19 Mar 2013 09:45:04 +0100 Subject: [PATCH 06/17] Added back some missing API from 1.X --- src/org/linphone/LinphoneManager.java | 35 +++++++++++++++++--- src/org/linphone/LinphoneService.java | 5 +++ src/org/linphone/LinphoneSimpleListener.java | 11 ++++++ 3 files changed, 46 insertions(+), 5 deletions(-) diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index 7f47fa291..85cc2d431 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -42,8 +42,10 @@ import java.util.Set; import java.util.Timer; import java.util.TimerTask; +import org.linphone.LinphoneSimpleListener.ConnectivityChangedListener; import org.linphone.LinphoneSimpleListener.LinphoneOnAudioChangedListener; import org.linphone.LinphoneSimpleListener.LinphoneOnAudioChangedListener.AudioState; +import org.linphone.LinphoneSimpleListener.LinphoneOnDTMFReceivedListener; import org.linphone.LinphoneSimpleListener.LinphoneOnMessageReceivedListener; import org.linphone.LinphoneSimpleListener.LinphoneServiceListener; import org.linphone.core.CallDirection; @@ -144,6 +146,7 @@ public final class LinphoneManager implements LinphoneCoreListener { private String lastLcStatusMessage; private String basePath; private static boolean sExited; + private String contactParams; private WakeLock mIncallWakeLock; @@ -703,6 +706,8 @@ public final class LinphoneManager implements LinphoneCoreListener { String contactInfos = "app-id=" + appId + ";pn-type=google;pn-tok=" + regId + ";pn-msg-str=IM_MSG;pn-call-str=IC_MSG;pn-call-snd=ring.caf;pn-msg-snd=msg.caf"; proxycon.setContactParameters(contactInfos); } + } else if (contactParams != null) { + proxycon.setContactParameters(contactParams); } mLc.addProxyConfig(proxycon); @@ -782,6 +787,10 @@ public final class LinphoneManager implements LinphoneCoreListener { } return defaultValue; } + + public void setContactParams(String params) { + contactParams = params; + } public void initFromConf() throws LinphoneConfigException { boolean isDebugLogEnabled = !(mR.getBoolean(R.bool.disable_every_log)) && getPrefBoolean(R.string.pref_debug_key, mR.getBoolean(R.bool.pref_debug_default)); @@ -1015,6 +1024,15 @@ public final class LinphoneManager implements LinphoneCoreListener { Log.i(eventInfo.getTypeName()," connected: wifi only activated, setting network unreachable"); } } + + if (connectivityListener != null) { + connectivityListener.onConnectivityChanged(mServiceContext, eventInfo, cm); + } + } + + private ConnectivityChangedListener connectivityListener; + public void addConnectivityChangedListener(ConnectivityChangedListener l) { + connectivityListener = l; } public interface EcCalibrationListener { @@ -1049,6 +1067,18 @@ public final class LinphoneManager implements LinphoneCoreListener { LinphoneAddress from, String message) { //deprecated } + + @Override + public void dtmfReceived(LinphoneCore lc, LinphoneCall call, int dtmf) { + Log.d("DTMF received: " + dtmf); + if (dtmfReceivedListener != null) + dtmfReceivedListener.onDTMFReceived(call, dtmf); + } + + private LinphoneOnDTMFReceivedListener dtmfReceivedListener; + public void setOnDTMFReceivedListener(LinphoneOnDTMFReceivedListener listener) { + dtmfReceivedListener = listener; + } @Override public void messageReceived(LinphoneCore lc, LinphoneChatRoom cr, LinphoneChatMessage message) { @@ -1080,11 +1110,6 @@ public final class LinphoneManager implements LinphoneCoreListener { } } - @Override - public void dtmfReceived(LinphoneCore lc, LinphoneCall call, int dtmf) { - Log.d("DTMF received: " + dtmf); - } - public String getLastLcStatusMessage() { return lastLcStatusMessage; } diff --git a/src/org/linphone/LinphoneService.java b/src/org/linphone/LinphoneService.java index 5301b0982..6481260c1 100644 --- a/src/org/linphone/LinphoneService.java +++ b/src/org/linphone/LinphoneService.java @@ -291,6 +291,11 @@ public final class LinphoneService extends Service implements LinphoneServiceLis notifyWrapper(CUSTOM_NOTIF_ID, mCustomNotif); } + public void removeCustomNotification() { + mNM.cancel(CUSTOM_NOTIF_ID); + resetIntentLaunchedOnNotificationClick(); + } + public void displayMessageNotification(String fromSipUri, String fromName, String message) { Intent notifIntent = new Intent(this, LinphoneActivity.class); notifIntent.putExtra("GoToChat", true); diff --git a/src/org/linphone/LinphoneSimpleListener.java b/src/org/linphone/LinphoneSimpleListener.java index 3d2fe0d7f..7864a20ba 100644 --- a/src/org/linphone/LinphoneSimpleListener.java +++ b/src/org/linphone/LinphoneSimpleListener.java @@ -25,7 +25,10 @@ import org.linphone.core.LinphoneChatMessage; import org.linphone.core.LinphoneCore.GlobalState; import org.linphone.core.LinphoneCore.RegistrationState; +import android.content.Context; import android.media.MediaPlayer; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; public interface LinphoneSimpleListener { @@ -67,4 +70,12 @@ public interface LinphoneSimpleListener { public static interface LinphoneOnRegistrationStateChangedListener extends LinphoneSimpleListener { void onRegistrationStateChanged(RegistrationState state); } + + public static interface ConnectivityChangedListener extends LinphoneSimpleListener { + void onConnectivityChanged(Context context, NetworkInfo eventInfo, ConnectivityManager cm); + } + + public static interface LinphoneOnDTMFReceivedListener extends LinphoneSimpleListener { + void onDTMFReceived(LinphoneCall call, int dtmf); + } } From 480bd8fa08423003c8ce4880c8644aedda40040d Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 19 Mar 2013 09:57:07 +0100 Subject: [PATCH 07/17] Added missing function in manager --- src/org/linphone/LinphoneManager.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index 85cc2d431..7099ebf55 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -1408,6 +1408,16 @@ public final class LinphoneManager implements LinphoneCoreListener { } return false; } + + public boolean acceptCall(LinphoneCall call) { + try { + mLc.acceptCall(call); + return true; + } catch (LinphoneCoreException e) { + Log.i(e, "Accept call failed"); + } + return false; + } public boolean acceptCallWithParams(LinphoneCall call, LinphoneCallParams params) { try { From db119739f7cbb42229f4ae2eea66a022602badf3 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 19 Mar 2013 11:09:50 +0100 Subject: [PATCH 08/17] Remove old xmlrpc jar from classpath --- .classpath | 1 - 1 file changed, 1 deletion(-) diff --git a/.classpath b/.classpath index c48ad169e..b95f2cc1d 100644 --- a/.classpath +++ b/.classpath @@ -9,7 +9,6 @@ - From 97ac11bc478f1d7663533d75c4008d9d8a6134fe Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 5 Nov 2012 16:37:18 +0100 Subject: [PATCH 09/17] Allow to remove all accounts --- .../linphone/AccountPreferencesFragment.java | 41 +++++++++++-------- src/org/linphone/PreferencesFragment.java | 4 ++ 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/src/org/linphone/AccountPreferencesFragment.java b/src/org/linphone/AccountPreferencesFragment.java index 1fe1e7b31..036a57de7 100644 --- a/src/org/linphone/AccountPreferencesFragment.java +++ b/src/org/linphone/AccountPreferencesFragment.java @@ -101,7 +101,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment { disable.setKey(getString(R.string.pref_disable_account_key) + key); final Preference delete = advanced.getPreference(4); - delete.setEnabled(prefs.getInt(getString(R.string.pref_default_account_key), 0) != n); + delete.setEnabled(true); delete.setOnPreferenceClickListener(new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { int nbAccounts = prefs.getInt(getString(R.string.pref_extra_accounts), 1); @@ -116,20 +116,28 @@ public class AccountPreferencesFragment extends PreferencesListFragment { editor.putBoolean(getString(R.string.pref_disable_account_key) + getAccountNumber(i), prefs.getBoolean(getString(R.string.pref_disable_account_key) + getAccountNumber(i+1), false)); } - int lastAccount = nbAccounts - 1; - editor.putString(getString(R.string.pref_username_key) + getAccountNumber(lastAccount), null); - editor.putString(getString(R.string.pref_passwd_key) + getAccountNumber(lastAccount), null); - editor.putString(getString(R.string.pref_domain_key) + getAccountNumber(lastAccount), null); - editor.putString(getString(R.string.pref_proxy_key) + getAccountNumber(lastAccount), null); - editor.putBoolean(getString(R.string.pref_enable_outbound_proxy_key) + getAccountNumber(lastAccount), false); - editor.putBoolean(getString(R.string.pref_disable_account_key) + getAccountNumber(lastAccount), false); - - int defaultAccount = prefs.getInt(getString(R.string.pref_default_account_key), 0); - if (defaultAccount > n) { - editor.putInt(getString(R.string.pref_default_account_key), defaultAccount - 1); - } - - editor.putInt(getString(R.string.pref_extra_accounts), nbAccounts - 1); + if (n != 0) { + int lastAccount = nbAccounts - 1; + editor.putString(getString(R.string.pref_username_key) + getAccountNumber(lastAccount), null); + editor.putString(getString(R.string.pref_passwd_key) + getAccountNumber(lastAccount), null); + editor.putString(getString(R.string.pref_domain_key) + getAccountNumber(lastAccount), null); + editor.putString(getString(R.string.pref_proxy_key) + getAccountNumber(lastAccount), null); + editor.putBoolean(getString(R.string.pref_enable_outbound_proxy_key) + getAccountNumber(lastAccount), false); + editor.putBoolean(getString(R.string.pref_disable_account_key) + getAccountNumber(lastAccount), false); + + int defaultAccount = prefs.getInt(getString(R.string.pref_default_account_key), 0); + if (defaultAccount > n) { + editor.putInt(getString(R.string.pref_default_account_key), defaultAccount - 1); + } + editor.putInt(getString(R.string.pref_extra_accounts), nbAccounts - 1); + } else if (n == 0 && nbAccounts <= 1) { + editor.putString(getString(R.string.pref_username_key), ""); + editor.putString(getString(R.string.pref_passwd_key), ""); + editor.putString(getString(R.string.pref_domain_key), ""); + } else { + editor.putInt(getString(R.string.pref_extra_accounts), nbAccounts - 1); + } + editor.commit(); LinphoneActivity.instance().displaySettings(); @@ -148,7 +156,6 @@ public class AccountPreferencesFragment extends PreferencesListFragment { SharedPreferences.Editor editor = prefs.edit(); editor.putInt(getString(R.string.pref_default_account_key), n); editor.commit(); - delete.setEnabled(false); disable.setEnabled(false); Compatibility.setPreferenceChecked(disable, false); preference.setEnabled(false); @@ -170,7 +177,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment { SharedPreferences prefs = getPreferenceManager().getSharedPreferences(); int n = prefs.getInt(getString(R.string.pref_extra_accounts), 1); - String keyUsername = getString(R.string.pref_username_key) + (n-1 == 0 ? "" : Integer.toString(n-1)); + String keyUsername = getString(R.string.pref_username_key) + getAccountNumber(n-1); if (prefs.getString(keyUsername, "").equals("")) { //If not, we suppress it to not display a blank field diff --git a/src/org/linphone/PreferencesFragment.java b/src/org/linphone/PreferencesFragment.java index 95720c3ad..89360de57 100644 --- a/src/org/linphone/PreferencesFragment.java +++ b/src/org/linphone/PreferencesFragment.java @@ -257,6 +257,10 @@ public class PreferencesFragment extends PreferencesListFragment implements EcCa addAccount.setTitle(getString(R.string.pref_add_account)); addAccount.setOnPreferenceClickListener(new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { + SharedPreferences prefs = getPreferenceManager().getSharedPreferences(); + nbAccounts = prefs.getInt(getString(R.string.pref_extra_accounts), 0); + prefs.edit().putInt(getString(R.string.pref_extra_accounts), nbAccounts+1).commit(); + addExtraAccountPreferencesButton(accounts, nbAccounts, true); LinphoneActivity.instance().displayAccountSettings(nbAccounts); nbAccounts++; From be0f7fa3d701e2bb08991e2ab2019de1d22d5a58 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 19 Nov 2012 15:33:51 +0100 Subject: [PATCH 10/17] Update status bar & notification when all accounts are removed Conflicts: src/org/linphone/LinphoneManager.java --- res/layout/status.xml | 2 +- src/org/linphone/LinphoneManager.java | 6 ++++-- src/org/linphone/LinphoneService.java | 3 +++ src/org/linphone/StatusFragment.java | 4 ++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/res/layout/status.xml b/res/layout/status.xml index fab32ec51..72e07d701 100644 --- a/res/layout/status.xml +++ b/res/layout/status.xml @@ -169,7 +169,7 @@ android:contentDescription="@string/content_description_led" android:id="@+id/statusLed" android:paddingLeft="5dp" - android:src="@drawable/led_error" + android:src="@drawable/led_disconnected" android:adjustViewBounds="true" android:layout_centerVertical="true" android:layout_width="wrap_content" diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index 7099ebf55..c0f6dc055 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -592,7 +592,7 @@ public final class LinphoneManager implements LinphoneCoreListener { copyIfNotExist(R.raw.ringback,mRingbackSoundFile); copyIfNotExist(R.raw.toy_mono,mPauseSoundFile); copyFromPackage(R.raw.linphonerc, new File(mLinphoneInitialConfigFile).getName()); - copyIfNotExist(R.raw.lpconfig, new File(mLPConfigXsd).getName()); + //copyIfNotExist(R.raw.lpconfig, new File(mLPConfigXsd).getName()); copyIfNotExist(R.raw.rootca, new File(mLinphoneRootCaFile).getName()); } private void copyIfNotExist(int ressourceId,String target) throws IOException { @@ -665,7 +665,7 @@ public final class LinphoneManager implements LinphoneCoreListener { } LinphoneProxyConfig lDefaultProxyConfig = mLc.getDefaultProxyConfig(); - if (lDefaultProxyConfig !=null) { + if (lDefaultProxyConfig != null) { //prefix String lPrefix = getPrefString(R.string.pref_prefix_key, null); if (lPrefix != null) { @@ -673,6 +673,8 @@ public final class LinphoneManager implements LinphoneCoreListener { } //escape + lDefaultProxyConfig.setDialEscapePlus(getPrefBoolean(R.string.pref_escape_plus_key, false)); + } else if (LinphoneService.isReady()) { + LinphoneService.instance().onRegistrationStateChanged(RegistrationState.RegistrationNone, null); } } diff --git a/src/org/linphone/LinphoneService.java b/src/org/linphone/LinphoneService.java index 6481260c1..fee07cf23 100644 --- a/src/org/linphone/LinphoneService.java +++ b/src/org/linphone/LinphoneService.java @@ -518,6 +518,9 @@ public final class LinphoneService extends Service implements LinphoneServiceLis if ((state == RegistrationState.RegistrationFailed || state == RegistrationState.RegistrationCleared) && (LinphoneManager.getLc().getDefaultProxyConfig() == null || !LinphoneManager.getLc().getDefaultProxyConfig().isRegistered())) { sendNotification(IC_LEVEL_OFFLINE, R.string.notification_register_failure); } + if (state == RegistrationState.RegistrationNone) { + sendNotification(IC_LEVEL_OFFLINE, R.string.notification_started); + } mHandler.post(new Runnable() { public void run() { diff --git a/src/org/linphone/StatusFragment.java b/src/org/linphone/StatusFragment.java index 8f27c5e3b..0309ce5df 100644 --- a/src/org/linphone/StatusFragment.java +++ b/src/org/linphone/StatusFragment.java @@ -231,7 +231,7 @@ public class StatusFragment extends Fragment { e.printStackTrace(); } - return -1; + return R.drawable.led_disconnected; } private String getStatusIconText(LinphoneCore.RegistrationState state) { @@ -253,7 +253,7 @@ public class StatusFragment extends Fragment { e.printStackTrace(); } - return null; + return context.getString(R.string.status_not_connected); } private void startCallQuality() { From 6eb4cb5c7f70b78e0cb30f5412a4255fc55a8a35 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 19 Nov 2012 14:12:46 +0100 Subject: [PATCH 11/17] Cherry-picking for allowing disable/remove of the only account finished --- src/org/linphone/AccountPreferencesFragment.java | 2 +- src/org/linphone/LinphoneActivity.java | 2 ++ src/org/linphone/LinphoneManager.java | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/org/linphone/AccountPreferencesFragment.java b/src/org/linphone/AccountPreferencesFragment.java index 036a57de7..76c38cc53 100644 --- a/src/org/linphone/AccountPreferencesFragment.java +++ b/src/org/linphone/AccountPreferencesFragment.java @@ -96,7 +96,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment { outboundProxy.setKey(getString(R.string.pref_enable_outbound_proxy_key) + key); final Preference disable = advanced.getPreference(2); - disable.setEnabled(prefs.getInt(getString(R.string.pref_default_account_key), 0) != n); + disable.setEnabled(true); Compatibility.setPreferenceChecked(disable, prefs.getBoolean(getString(R.string.pref_disable_account_key) + key, false)); disable.setKey(getString(R.string.pref_disable_account_key) + key); diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index ffae79063..db4ab909f 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -762,6 +762,8 @@ public class LinphoneActivity extends FragmentActivity implements LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); if (lc != null && lc.getDefaultProxyConfig() != null) statusFragment.registrationStateChanged(lc.getDefaultProxyConfig().getState()); + else + statusFragment.registrationStateChanged(RegistrationState.RegistrationNone); } } diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index c0f6dc055..7ba4aad95 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -592,7 +592,7 @@ public final class LinphoneManager implements LinphoneCoreListener { copyIfNotExist(R.raw.ringback,mRingbackSoundFile); copyIfNotExist(R.raw.toy_mono,mPauseSoundFile); copyFromPackage(R.raw.linphonerc, new File(mLinphoneInitialConfigFile).getName()); - //copyIfNotExist(R.raw.lpconfig, new File(mLPConfigXsd).getName()); + copyIfNotExist(R.raw.lpconfig, new File(mLPConfigXsd).getName()); copyIfNotExist(R.raw.rootca, new File(mLinphoneRootCaFile).getName()); } private void copyIfNotExist(int ressourceId,String target) throws IOException { From 9974965c7ca2c2e886dbd06f00941af642656dff Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 20 Mar 2013 14:02:32 +0100 Subject: [PATCH 12/17] Added option to disable incall notification --- res/raw/lpconfig.xsd | 45 +++++++++++++++++++++++++++ res/values/non_localizable_custom.xml | 2 ++ src/org/linphone/LinphoneManager.java | 3 +- src/org/linphone/LinphoneService.java | 6 ++-- 4 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 res/raw/lpconfig.xsd diff --git a/res/raw/lpconfig.xsd b/res/raw/lpconfig.xsd new file mode 100644 index 000000000..49bb56180 --- /dev/null +++ b/res/raw/lpconfig.xsd @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml index 56c2e3afc..a981094e4 100644 --- a/res/values/non_localizable_custom.xml +++ b/res/values/non_localizable_custom.xml @@ -64,5 +64,7 @@ linphone-android@belledonne-communications.com linphone-android-photo-temp.jpg linphone-android-photo-%s.jpg + + true diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index 7099ebf55..32806b87d 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -448,7 +448,8 @@ public final class LinphoneManager implements LinphoneCoreListener { public void enableCamera(LinphoneCall call, boolean enable) { if (call != null) { call.enableCamera(enable); - LinphoneService.instance().refreshIncallIcon(mLc.getCurrentCall()); + if (mServiceContext.getResources().getBoolean(R.bool.enable_call_notification)) + LinphoneService.instance().refreshIncallIcon(mLc.getCurrentCall()); } } diff --git a/src/org/linphone/LinphoneService.java b/src/org/linphone/LinphoneService.java index 6481260c1..5e5d47bb2 100644 --- a/src/org/linphone/LinphoneService.java +++ b/src/org/linphone/LinphoneService.java @@ -572,10 +572,12 @@ public final class LinphoneService extends Service implements LinphoneServiceLis if (state == State.StreamsRunning) { // Workaround bug current call seems to be updated after state changed to streams running - refreshIncallIcon(call); + if (getResources().getBoolean(R.bool.enable_call_notification)) + refreshIncallIcon(call); mWifiLock.acquire(); } else { - refreshIncallIcon(LinphoneManager.getLc().getCurrentCall()); + if (getResources().getBoolean(R.bool.enable_call_notification)) + refreshIncallIcon(LinphoneManager.getLc().getCurrentCall()); } if ((state == State.CallEnd || state == State.Error) && LinphoneManager.getLc().getCallsNb() < 1) { mWifiLock.release(); From 4af85a96e4c946306996f0110be95431ecfc0778 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 22 Mar 2013 10:39:14 +0100 Subject: [PATCH 13/17] Fix adding number when a category is hidden --- src/org/linphone/EditContactFragment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/linphone/EditContactFragment.java b/src/org/linphone/EditContactFragment.java index 54d5d729d..1d82dbaa0 100644 --- a/src/org/linphone/EditContactFragment.java +++ b/src/org/linphone/EditContactFragment.java @@ -235,7 +235,7 @@ public class EditContactFragment extends Fragment { } private View displayNumberOrAddress(final TableLayout controls, String numberOrAddress, boolean forceAddNumber) { - final boolean isSip = numberOrAddress.startsWith("sip:"); + boolean isSip = numberOrAddress.startsWith("sip:"); if (isSip) { if (firstSipAddressIndex == -1) { firstSipAddressIndex = controls.getChildCount(); @@ -243,7 +243,7 @@ public class EditContactFragment extends Fragment { numberOrAddress = numberOrAddress.replace("sip:", ""); } if ((getResources().getBoolean(R.bool.hide_phone_numbers_in_editor) && !isSip) || (getResources().getBoolean(R.bool.hide_sip_addresses_in_editor) && isSip)) { - return null; + isSip = !isSip; // If number can't be displayed because we hide a sort of number, change that category } NewOrUpdatedNumberOrAddress tempNounoa; From b433e743401709ffb50643aac528ab693f3e7af4 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 22 Mar 2013 10:50:16 +0100 Subject: [PATCH 14/17] Fix delete contact button position --- src/org/linphone/EditContactFragment.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/org/linphone/EditContactFragment.java b/src/org/linphone/EditContactFragment.java index 1d82dbaa0..c9e34268a 100644 --- a/src/org/linphone/EditContactFragment.java +++ b/src/org/linphone/EditContactFragment.java @@ -243,7 +243,10 @@ public class EditContactFragment extends Fragment { numberOrAddress = numberOrAddress.replace("sip:", ""); } if ((getResources().getBoolean(R.bool.hide_phone_numbers_in_editor) && !isSip) || (getResources().getBoolean(R.bool.hide_sip_addresses_in_editor) && isSip)) { - isSip = !isSip; // If number can't be displayed because we hide a sort of number, change that category + if (forceAddNumber) + isSip = !isSip; // If number can't be displayed because we hide a sort of number, change that category + else + return null; } NewOrUpdatedNumberOrAddress tempNounoa; @@ -341,11 +344,6 @@ public class EditContactFragment extends Fragment { if (isSip) { controls.addView(view, controls.getChildCount()); - if (deleteContact != null) { - // Move to the bottom the remove contact button - controls.removeView(deleteContact); - controls.addView(deleteContact, controls.getChildCount()); - } } else { if (firstSipAddressIndex != -1) { controls.addView(view, firstSipAddressIndex); @@ -353,6 +351,11 @@ public class EditContactFragment extends Fragment { controls.addView(view); } } + if (deleteContact != null) { + // Move to the bottom the remove contact button + controls.removeView(deleteContact); + controls.addView(deleteContact, controls.getChildCount()); + } } private void createNewContact() { From 447a8a50c05909a6e3aeadc764f79b8415fe2764 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 22 Mar 2013 11:10:08 +0100 Subject: [PATCH 15/17] Added cursor in text fields --- res/layout-FR/chat.xml | 1 + res/layout-RU/chat.xml | 1 + res/layout-small/chat.xml | 1 + res/layout-small/setup_generic_login.xml | 3 +++ res/layout-small/setup_linphone_login.xml | 2 ++ res/layout-small/setup_wizard.xml | 4 ++++ res/layout/chat.xml | 1 + res/layout/chatlist.xml | 1 + res/layout/contact_add_row.xml | 1 + res/layout/contact_edit_row.xml | 1 + res/layout/edit_contact.xml | 2 ++ res/layout/setup_generic_login.xml | 3 +++ res/layout/setup_linphone_login.xml | 2 ++ res/layout/setup_wizard.xml | 4 ++++ 14 files changed, 27 insertions(+) diff --git a/res/layout-FR/chat.xml b/res/layout-FR/chat.xml index 0261f0a39..8acf785ba 100644 --- a/res/layout-FR/chat.xml +++ b/res/layout-FR/chat.xml @@ -81,6 +81,7 @@ android:paddingRight="5dp" /> Date: Fri, 22 Mar 2013 11:27:29 +0100 Subject: [PATCH 16/17] Fix sip address detection --- res/values/non_localizable_custom.xml | 2 +- src/org/linphone/LinphoneUtils.java | 15 +++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml index a981094e4..0b8446b57 100644 --- a/res/values/non_localizable_custom.xml +++ b/res/values/non_localizable_custom.xml @@ -34,7 +34,7 @@ true false true - true + true true false diff --git a/src/org/linphone/LinphoneUtils.java b/src/org/linphone/LinphoneUtils.java index 822a3fbe7..97af9bda3 100644 --- a/src/org/linphone/LinphoneUtils.java +++ b/src/org/linphone/LinphoneUtils.java @@ -29,13 +29,12 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import org.linphone.core.LinphoneAddress; import org.linphone.core.LinphoneCall; import org.linphone.core.LinphoneCall.State; import org.linphone.core.LinphoneCore; +import org.linphone.core.LinphoneCoreFactory; import org.linphone.mediastream.Log; import org.linphone.mediastream.Version; import org.linphone.mediastream.video.capture.hwconf.Hacks; @@ -68,19 +67,15 @@ public final class LinphoneUtils { private LinphoneUtils(){} private static boolean preventVolumeBarToDisplay = false; - private static final String sipAddressRegExp = "^(sip:)?(\\+)?[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\\.-][a-z0-9]+)*)+\\.[a-z]{2,}(:[0-9]{2,5})?$"; - private static final String strictSipAddressRegExp = "^sip:(\\+)?[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\\.-][a-z0-9]+)*)+\\.[a-z]{2,}$"; + //private static final String sipAddressRegExp = "^(sip:)?(\\+)?[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\\.-][a-z0-9]+)*)+\\.[a-z]{2,}(:[0-9]{2,5})?$"; + //private static final String strictSipAddressRegExp = "^sip:(\\+)?[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\\.-][a-z0-9]+)*)+\\.[a-z]{2,}$"; public static boolean isSipAddress(String numberOrAddress) { - Pattern p = Pattern.compile(sipAddressRegExp); - Matcher m = p.matcher(numberOrAddress); - return m != null && m.matches(); + return LinphoneCoreFactory.instance().createLinphoneAddress(numberOrAddress) != null; } public static boolean isStrictSipAddress(String numberOrAddress) { - Pattern p = Pattern.compile(strictSipAddressRegExp); - Matcher m = p.matcher(numberOrAddress); - return m != null && m.matches(); + return isSipAddress(numberOrAddress) && numberOrAddress.startsWith("sip:"); } public static String getUsernameFromAddress(String address) { From e3da406e0d00488e8b08ae7d99a25b30be57c5ae Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 22 Mar 2013 11:54:41 +0100 Subject: [PATCH 17/17] Slightly changed fields validation in create account form --- res/layout/setup_wizard.xml | 19 ++++++- src/org/linphone/setup/WizardFragment.java | 62 +++++++++++++++++----- 2 files changed, 66 insertions(+), 15 deletions(-) diff --git a/res/layout/setup_wizard.xml b/res/layout/setup_wizard.xml index 8263ca30a..3c4ecbc37 100644 --- a/res/layout/setup_wizard.xml +++ b/res/layout/setup_wizard.xml @@ -75,6 +75,23 @@ android:textColor="@android:color/black" android:background="@drawable/setup_field_background" /> + + + + + +