From 4c6a1a51629ca4f7d83e686564e1409812a6997a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BF=9C=E6=96=B9=E5=A4=95=E9=98=B3?= Date: Thu, 30 Apr 2020 19:35:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cim/sdk/android/CIMPushService.java | 2 +- .../sdk/server/coder/WebMessageDecoder.java | 2 +- .../server/handler/CIMNioSocketAcceptor.java | 4 ++-- .../app/libs/cim-android-sdk-3.8.0.jar | Bin 74156 -> 74189 bytes 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushService.java b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushService.java index 9328afd..2e2054e 100644 --- a/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushService.java +++ b/cim-client-sdk/cim-android-sdk/src/main/java/com/farsunset/cim/sdk/android/CIMPushService.java @@ -56,7 +56,7 @@ public class CIMPushService extends Service { @Override public void onCreate() { connectorManager = CIMConnectorManager.getManager(this.getApplicationContext()); - notificationManager = getSystemService(NotificationManager.class); + notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { keepAliveReceiver = new KeepAliveBroadcastReceiver(); diff --git a/cim-server-sdk/cim-server-sdk-netty/src/main/java/com/farsunset/cim/sdk/server/coder/WebMessageDecoder.java b/cim-server-sdk/cim-server-sdk-netty/src/main/java/com/farsunset/cim/sdk/server/coder/WebMessageDecoder.java index 80762f3..476868d 100644 --- a/cim-server-sdk/cim-server-sdk-netty/src/main/java/com/farsunset/cim/sdk/server/coder/WebMessageDecoder.java +++ b/cim-server-sdk/cim-server-sdk-netty/src/main/java/com/farsunset/cim/sdk/server/coder/WebMessageDecoder.java @@ -17,7 +17,7 @@ public class WebMessageDecoder extends SimpleChannelInboundHandler { private final static String URI = "ws://localhost:%d"; - private static ConcurrentHashMap handShakerMap = new ConcurrentHashMap<>(); + private static final ConcurrentHashMap handShakerMap = new ConcurrentHashMap<>(); private static final Logger LOGGER = LoggerFactory.getLogger(WebMessageDecoder.class); diff --git a/cim-server-sdk/cim-server-sdk-netty/src/main/java/com/farsunset/cim/sdk/server/handler/CIMNioSocketAcceptor.java b/cim-server-sdk/cim-server-sdk-netty/src/main/java/com/farsunset/cim/sdk/server/handler/CIMNioSocketAcceptor.java index 8a847e8..5825b3e 100644 --- a/cim-server-sdk/cim-server-sdk-netty/src/main/java/com/farsunset/cim/sdk/server/handler/CIMNioSocketAcceptor.java +++ b/cim-server-sdk/cim-server-sdk-netty/src/main/java/com/farsunset/cim/sdk/server/handler/CIMNioSocketAcceptor.java @@ -54,8 +54,8 @@ import java.util.concurrent.ConcurrentHashMap; public class CIMNioSocketAcceptor{ private static final Logger LOGGER = LoggerFactory.getLogger(CIMNioSocketAcceptor.class); - private HashMap innerHandlerMap = new HashMap<>(); - private ConcurrentHashMap channelGroup = new ConcurrentHashMap<>(); + private final HashMap innerHandlerMap = new HashMap<>(); + private final ConcurrentHashMap channelGroup = new ConcurrentHashMap<>(); private EventLoopGroup appBossGroup; diff --git a/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.8.0.jar b/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.8.0.jar index fd3b2d3ab7b2d8f9c18711a7e3952884daec26f3..91f1eacb4bd9ff718590c798b540077054c06a41 100644 GIT binary patch delta 5734 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 delta 5705 zcmZWt1yoeuyPXR|4k63{k^>?jE!|Q-Lb^jh#Gz4;Mu`EXL=XXCXpj(*4(X7VmJpTj zC*9pjyy2qnz5jc6E%^4`d!O&boO9PYUw<34unkJ8qmBzDhFm-`xzRDC*KuEAgK#Qa zbZ)c`NdNf<#YU9NL;nBqV;wR3oVeH!#{%$zQ5O)nXdf2>NPzDxfE*a1I0_(t8%Gw5 zFL0DV{x%LjrWghg!Y;=^2*D<+pu%0IxNubfR4GspWYF^BUid2p8KwZRVF}Y2NR%R* z2`I2$oiI(rmwPx6NI4z^q8c}i!-9!M0&q+O89-Cf%i)Lvy2ZJ|019j#o$q(WC)bD| z5Eu;vA_Ka$$pK`=6`lhk&`2bD1ol$_6?eP@t`e9_0F#ov1e($^mmo?8Mg$HsMVb0? zn3cEjslhyrmOccRJ=-PYfSxZ7qL+Z|LCPg4bS5AKJyl-+0-z_+XYVp|^poRD@WPMr zGIIfX=aR_`f?qOK!7`V99VDB83A1(65MVxovVSk9Em~QE2Qo{wxA4FoIGZOgCBoJw z{0k|r`_n$SGWW%y?970Cy_Ux#q12Y@vCd4!cm^P3W zWe!FJh0m1&HnJbWY(FN+3z5xKb5RAEYyp0VnJ21BG*&}AYrk)~52i^q2b>=f{iN7% z&I&DH5q-qlPGwI1i1nkULSrK5S9(e&_WY!-%@9x6x-~_fBUAkvipRq?s%K`%M^Nw% zy0`MC*R@LV*aJ?Cto|LUL893+y8Uj4&o$x#3-J1byx{Rq*0H5=H+cW$SqK|$f`>`? z^0Bc~9UGV!j;q@hS<8iYk~pi>KGG^bJ~~<7BTLkohYe%Zar< zoSf!1dv=X{Tf?$MhE-i$TnzDM>U{7tG(_5x?0tb0ZJ5A18D|!{CJGMow zmbfWDaZTteENp5;Y7VJ{YtBjIQ5lsT=aL*jcfw6J&otXay&xs=kLEtG^SR*-LgkCt z)?f)|nJq+1Qt!`iwhe1PgpO|4tlKE&)sU{u2pStp=#6=lc9nNVlh*uPeQfN{eg^q_ zPzfOyXQ{t;{Bm=>?^h)OH^ct-BJiiL$o)Bgxf7#i)A7OW!MCz@xyu;W)Gisv9U@#% z^4f<2;DMw6F*&J03V|pyLLh?RMj4o^zL3^H+REY^a851n0;xFfgchE*zM^|6n zqRtum#$@&)J7!*$#VB2QaJWKc_jM8noIoLyv~o=yw+KF*@LKr#br!OrZ|%aQPQ-}u z(#i)m4_R!S-q<)01)n!Ori=PuqTBrI_k#0g`f2lGIyZX3TU(mwURb%vBvKCkgTEga zh(!OCCq)uwGLRqF?v#eA;B3uvAV;_CA@RrE5-dJEf#lP!Nm>q{x_cfcnQzUu`6#rh z2ust-$($KcXT%Pv*bH_F`bs=KGo_^_Q?f(L9+2-)c%|PUI7jOcV{j!Aw+P5;v&pA&A z{f=t)&e{6W1Y58Zy}hIOPp2Ou&s37nsZ5(G7}McH&GAE&Nt}e1tfJ^ehrpEYe3|yIADrq2D>$*dfN;zxZHRUJQQD&?$_6^*UFT%M-)00J= zI+KrPQeSG=c2U|cRK^RZPBdMEDy=jY9g6zC z{P;%H^XICEle{^F>?6kClJs?1+l`eRf^*`K?}< z#@d5+v$P^VEB6j2?uQb;5o(J4r^Gh8zQMXB8-*GaHf#-!2vvS@VGT@!pw(cWhMLlWC zi+ZCtlh{KcWRtpFuE$ws!Z;HqAjSPJ#~Mlfion-wyq_@zY0lN{Py1naKAWQ%@@v+- zSPgBhm8)+Yt$Tzec?urTa-|69zm18PyKXT^)fSl%hsY4s$Kaxbn?p`ce>j&}Xj``0 z??0W(fnDv+N$MAUIHj;&6`DZp>3YAL*UYx&0h})=SSIOq@^9Yf_oi~Mr?ANgF!ot< zy3&&ez4V?IWps&KFszAUx~u1g{>Ei+xRTh;tIjs{c9z81g6oSHV@Z2a9r1ffP2R6x zhz(0n3?7HSlmx?yi*>j?t*7lB|JIk~g8pI_7Db9+wmZaezRuOKKND5A|q8y#|1 zT~=R^GD;+ii@y%vKj_L9&=gr-;rifeYgQ@7p7JSV!P~oQ(vZp7!lFol-=Jm@W+75g zD!0Dg$H{d5PhmakotW3ukV%%yyT&|J;8}v%umz^J_>RG9*3-@;2mKi6u3Wv0o3e4r zsBMVIh^WWGb=#E8f^cycLwR&mQ)|cM7>8Izan-w`yFr&>PkJ%Y@7;~w{#f{ z>>b`sExsE$A-qp%(P*$fye-*q*SP)*lf}BBFG7?zz>~gPpyEo7q-%??_lid;$538@ z|H^o6#>>6EosnLHl;ZI($`(q7VQ=3J1bE8n6L?a?BNwPDUchOVt~sFnrTxcMO|ygBo=j(GZysKk ze=lhvDtIWdn8#DkIL`pBW;`3womHF|6s8^WiIN+i+Oa~Wp!EKz$2dE?-pIix5l@)Q z2az`m65g1@n8TJaHe+v%qt^zB9)pdvd9`Ba8ERd0ZrZ8ck_$d9vc@41J?7O6?3+pP z>CcrdCgtb3B(5IU=I+cN^IcEC`Kk$9yQzIOj?<0|>K&Y5z7(;)zpHMo#CoK; zpq@DYX5pAglxm?rPC4SkM8xOGEwKu((eCUKt>{i?S3w@B6-D=221nbeYV(`6 z)oSz0>*RwK|LV7wqggwkdeb(V`6MN#Bm&1$Gpe0lYt!9uzOth?(n;mH)Cl3q2~qC0 zJ)24<#42^ZiQd7DG`_@D50%Flt?23yYN?kM%eg%a0%05~^^=GHnA+>?9oR7XUbA|u zRT`Q0TiI%WrnG=}#&qT6hC2*iFDJ$Q=4VO@|Y zl(t@Mk@%qH>Hv=Z+0_BF3CmDJ^K=bbr&JO>+b5&6?im)_>UwTWF?&=>HOmpt&nf>| zbievc*6F!n_&56~?VLX69}zpnZ`PkyXu?qL8+i3*Cv?q|b{Qz``tn!!9E{vlR%^$i zS#t%86ynXYm2>DlMWU3)ghY-j|Gf^@d+%1DPVVJUO`4;NR9>NKg-9F*IPBk z9;Nms&K@|7JkvLNwX{Q`^>&fHBZ~hzC-MG!+7*d>P1Kd0jS|ezBv*^f!EP{W+k0Z6 z*EgPCh{#q#sK1wOv-V`7W`vH>-QL$TVBCe&u3<4f+Aayrf3xM&fx7@7e0x>!t*E^n{4=?t66atNLagr}-zay7b7r36ZWW z?MkuDyn8FPd4gU6=7OnMI^(r!)-6N*D++vO=JAO2xTb3{x|B zl3iLHQx)E$Zz30>wN=Gw-J?9Vn*vrX#+Q!z84LpAv*EMP}`SDixi`XgNm?g9) z%TO^ry4FJ={x0!pXPI{A87EY{_;uN>5SvAFit2ij-fvaqGLdu)D!3XAop8BOAKtUT z##SVCuuQ1i;l%bM@v!%>cj*e6;tYlTEJp~(Je|X<=!CC@0sM5Fr2))^1G5pFg(P7} zyEaR*0yh(X4bdV${;^kXQR=m}#H1&Dvb0fE!kNt-IgvU3vK9-TrnD8ZTH#z4|^a;ZtN}^ z`#Zb(_qN|x<~=6|x~jrbu8Sp$W z8z6=@`YBVKwO@?0kGH?#@KLJ!oD6fvuns3L=obm*pG=CTKnrgHWt!68JUs&;&wTms zS=x#Ftm8F2aOus{={2dE|2$ACGWm=;^jflFmr^_a01CY&M@CRPeedSLTb3|I35KS? z0o0z?Ri`^x_ff^JcVnF za>To?xT#Ia!;~uE#r|G?U9!_ASEASkmTJb8 z&QYVAu5a@=SLByw+cb={5ovFtl#`W~0a9__LDzhN|7nz#7Vu7AS zgZV+#!lPLw1|(s1YL`ywb2IlEPJ(Q128M;|xyX(BC4ryZqo)OXpT%@uxCln0UzqMp zXu$q$d9iI_+q)@X7JyXQ!o9X_N-`7H{v+DFzO@ns=M5m=aK#l{Gc|d!y0ys1PSE`u z%^$uh&3<}gTQ+Pe*g7g&uKBBw%#2c{ADv6bM|<9#dlF}AM{!5~yOfv)$o+uk!H4H` z9N((-Tb}%AWjE%EIbYm;vUyJ8O6QcwajL;ivn{q3&7DCkcjmpDb%*qP6Zm_v11mQF zQKKQp)@U>_s!-r6F1DD1K|uj=5Tru^RowMRf$C)_P=*6u-?kpN);VMCuGl{*j4Kpi z#`HmfE0_rafDEngrQNU2tHyI%Q&;u9!ImbEdjG5*8Nm(%ECNBINfk*_sG(698HGrF zrWnY;id$Shnl;mRB5j6}fyv+&?`53~;|wAu=1$BTE8DYXh8t!^DT~{)V*4uF=O|zO zV_WQe|E`*DfNg}ctC}bc_M!^lAaMV?2BibRI1&Pa7q?AJ1|cAOaaqMo69W7ofD>Jo zmN42xfDFh)69Mv|d4veK4Khe#KnDbF#DE?sxxxT?%nUIg48GCA07Fp6(%K+sg8}zJ z=>`d434#a`zz3A@NP!0+@E`@OK=6(9k4KUWa0i)EGAwg3OiFUV9t8g6z#|ZB{ROBi z019NfuK>;WvHHV2!)C zLW1#S0N|hyb0MVk{}G^ZKl@2BOiTb+p}=fkhzsAbA~S}M5#Ry4v0%iK2|xdma7+;+ zKnv#TzEA>Yv5H{az%2e{o{RbLGGPVe%AZc)n83dsL|+JGYZn4$kO^P{(`;RkW;-Bx z6A2)hu_<)CIUk;tVUG$vwlpS=jennww5ygLn|*EXKd;9{~VP6l^$D#`SV;f7Q?tQ zW7q5ABaq1q&;xE4@64D0pKhb6aA0x!rzqGm=okm0APxt U03Y~?z*MsUSMbFNvC9GZFW;&v-T(jq