From f18b026ffed95e4101ba1a692e1c6f441ff5a6ab Mon Sep 17 00:00:00 2001
From: Hevin <328066446@qq.com>
Date: Fri, 1 Apr 2016 00:06:39 +0800
Subject: [PATCH] fix bugs

---
 Plugins/Android/JPushEventManager.cs         |  70 +++++++++---------
 Plugins/Android/jpush_bringe.jar             | Bin 16236 -> 11254 bytes
 Plugins/Android/src/JPushBridge.java         |  74 +++++++++----------
 Plugins/Android/src/UnityPluginActivity.java |  17 ++---
 4 files changed, 78 insertions(+), 83 deletions(-)

diff --git a/Plugins/Android/JPushEventManager.cs b/Plugins/Android/JPushEventManager.cs
index e4b82c5..9da7d22 100644
--- a/Plugins/Android/JPushEventManager.cs
+++ b/Plugins/Android/JPushEventManager.cs
@@ -2,51 +2,51 @@
 using System.Collections;
 
 namespace JPush {
-	
+
 	// internal event listener model
 	internal class EventListener {
 		public string name;
 		public GameObject listener;
 		public string function;
 	}
-	
+
 	// Custom event class, extend when creating custom events
 	public class CustomEvent {
-	
+
 		private string _type;
 		private Hashtable _arguments = new Hashtable();
-		
+
 		// constructor
 		public CustomEvent(string eventType = "") {
 			_type = eventType;
 		}
-	
+
 		// the type of event
 		public string type {
 			get { return _type; }
 			set { _type = value; }
 		}
-		
+
 		// the arguments to pass with the event
 		public Hashtable arguments {
 			get { return _arguments; }
 			set { _arguments = value; }
 		}
 	}
-	
+
 	public class JPushEventManager : MonoBehaviour {
-	
+
 		// singleton instance
 		public static JPushEventManager instance;
-		
+
 		// settings
 		public bool allowSingleton = true; // JPushEventManager class will transfer between scene changes.
 		public bool allowWarningOutputs = true;
 		public bool allowDebugOutputs = true;
-		
+
 		private static bool _created = false;
 		private Hashtable _listeners = new Hashtable();
-		
+
 		static JPushEventManager(){
 			instance = new JPushEventManager() ;
 		}
@@ -69,14 +69,15 @@ public void Awake() {
 				}
 			}
 		}
-		
+
 		// clear events on quit
 		public void OnApplicationQuit() {
+			Debug.LogWarning("------Application Quit--------");
 			_listeners.Clear();
 		}
-		
+
 		// PUBLIC *******************************
-		
+
 		// Add event listener
 		public bool addEventListener(string eventType, GameObject listener, string function) {
 			if (listener == null || eventType == null) {
@@ -88,11 +89,11 @@ public bool addEventListener(string eventType, GameObject listener, string funct
 			recordEvent(eventType);
 			return recordListener(eventType, listener, function);
 		}
-		
+
 		// Remove event listener
 		public bool removeEventListener(string eventType, GameObject listener) {
 			if (!checkForEvent(eventType)) return false;
-			
+
 			ArrayList listenerList = _listeners[eventType] as ArrayList;
 			foreach (EventListener callback in listenerList) {
 				if (callback.name == listener.GetInstanceID().ToString()) {
@@ -102,19 +103,19 @@ public bool removeEventListener(string eventType, GameObject listener) {
 			}
 			return false;
 		}
-		
+
 		// Remove all event listeners
 		public void removeAllEventListeners(GameObject listener) {
 			//print ("listener.name------" + listener.name + " ---" + listener.GetInstanceID().ToString()) ;
 			_listeners.Clear() ;
-			
-			/*foreach (EventListener callback in _listeners) { 
+
+			/*foreach (EventListener callback in _listeners) {
 				if (callback.listener.GetInstanceID().ToString() == listener.GetInstanceID().ToString()) {
 					_listeners.Remove(callback);
 				}
 			}*/
 		}
-		
+
 		// Dispatch an event
 		public bool dispatchEvent(CustomEvent evt) {
 			string eventType = evt.type;
@@ -124,33 +125,33 @@ public bool dispatchEvent(CustomEvent evt) {
 				}
 				return false;
 			}
-		
+
 			ArrayList listenerList = _listeners[eventType] as ArrayList;
 			if (allowDebugOutputs) {
 				Debug.Log("Event Manager: Event " + eventType + " dispatched to " + listenerList.Count + ((listenerList.Count == 1) ? " listener." : " listeners."));
 			}
-			
+
 			foreach (EventListener callback in listenerList) {
 				//print ("function---------" + callback.function) ;
 				if (callback.listener && callback.listener.activeSelf) {//callback.listener.active
-					callback.listener.SendMessage(callback.function, evt, SendMessageOptions.DontRequireReceiver);			
+					callback.listener.SendMessage(callback.function, evt, SendMessageOptions.DontRequireReceiver);
 				}
 			}
 			return false;
 		}
-		
+
 		// PRIVATE *******************************
-		
+
 		private void Setup() {
 		// TO DO: Self create GameObject if not already created
 		}
-		
+
 		// see if event already exists
 		private bool checkForEvent(string eventType) {
 			if (_listeners.ContainsKey(eventType)) return true;
 			return false;
 		}
-		
+
 		// record event, if it doesn't already exists
 		private bool recordEvent(string eventType) {
 			if (!checkForEvent(eventType)) {
@@ -158,27 +159,27 @@ private bool recordEvent(string eventType) {
 			}
 			return true;
 		}
-		
+
 		// delete event, if not already removed
-		private bool deleteEvent(string eventType) { 
+		private bool deleteEvent(string eventType) {
 			if (!checkForEvent(eventType)) return false;
 				_listeners.Remove(eventType);
 			return true;
 		}
-		
+
 		// check if listener exists
 		private bool checkForListener(string eventType, GameObject listener) {
 			if (!checkForEvent(eventType)) {
 				recordEvent(eventType);
 			}
-		
+
 			ArrayList listenerList = _listeners[eventType] as ArrayList;
 			foreach (EventListener callback in listenerList) {
 				if (callback.name == listener.GetInstanceID().ToString()) return true;
 			}
 			return false;
 		}
-		
+
 		// record listener, if not already recorded
 		private bool recordListener(string eventType, GameObject listener, string function) {
 			if (!checkForListener(eventType, listener)) {
@@ -197,7 +198,6 @@ private bool recordListener(string eventType, GameObject listener, string functi
 			}
 		}
 	}
-	
-	
-}
 
+
+}
diff --git a/Plugins/Android/jpush_bringe.jar b/Plugins/Android/jpush_bringe.jar
index 406b126995e68ac17f2ebbef32ab4595423f16e7..094d88c5c921697317263881677e8f1f6129abee 100644
GIT binary patch
literal 11254
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
N<)udLME&dP{{gHTz~le`

literal 16236
zcmb`u1yo$i(gupVyAvD+9oz!J-66QUyIX)TSa1*Sf#AVHa1HJb!7T(QNU#SvIVU-J
z=iK}5dVkH#T6<=7e|t}NeO=YnRf;l@P*`Aa4=+=9XK}D!1Re|uOioNyh*3&jocXRF
z3=9%XQ3e+7u?57BW{UsX8SA0NU!CQI<fX*LR8*Pd#82f02V`X!nZ}T17y-kBBkz=1
zCfQatotUKM7^LLJTuY$fQ+DyY(oz8y+&EYp`2deCsy)jSr(-AZ?|1i?;O^yrz<&HZ
z-W}olleoM7{n4Qwel@nYW&ZaTNIzPbdKlU|*qHu@mZZP6bhWc|@nkd6w{mcGw$L{*
zwYC4=`HwM#aQ^#)(Ej(%Ork3KDlYa;ru!*;C><<lqUMo^GVDxrOAcUm24a2i4Pemf
z*%xDE^XS!B%8FEho^fBFhx=O+DS*u$HR!)UdeR=rCJ;A^^Rk?CnCvB*aHy|wxyzy(
zp>QZMYZhv7xr;Ml7A&uuF{|#5G*^9<el|tMjx28D_|TBZ0G_}rdP2-_V6aBco_YmC
z*Rq4d=GC>JA;&!;nIB%nx+~EU3e*5fh1=d|&{vsfM_Iu|b~ZWmON)(ga8=j}kLq9r
z7HV7l@Gqh8{+N(I#^Lt~Vg2vpAg%Z?p2AL+Cg!G;Kqg}wLucni)n$833ADQ;oi$RO
zcHm1epo5%n74jv91sx?dJ5W^4v|f!^ESK5Bx!#rY>9VG~cS6%~;2Tvkvf6tQQV(G(
z@PIDTQNfVylFwgy$mDd3`=s3YxUPo=x%k+wd-W@pAsPZVkx+m-C%NVHBu944Xm$kB
zwXRdG^>Z@uk=`vk;s?0;@eNoqtrUgkY?XKjX*UAykR)!471Lb7MXY#++=s#CKxfaL
z-q<tUPw@wULk5^Q8e|fvy~XQHLs8q0CSD*2t_xDn%rBqgo**LGT|EIMa=^SrzaobP
zq1u?l3>m{o*ls8q-~p`L#tM<TlP%qKyWaXdMMLT~+c-9e>{Y(MNK7gmR^)qjv#Xh#
zxhMLWFg8CR*BDU2?mkjcW`ysyRnJiz7qEcS?=W0zO0xloq&tYbuP;W0!1<_vQ-m*W
zxxCtlARp(IDH+EgjWm<|9_i)bn~zeTAa7JHg5z}23re<1d$dsw9q@T?_^6Dw=Vg@#
zRv0=jTh|#2SdYZggF79n55K_{a}uHVDwWc&EV`U<2TA#!sUR6|3JoW6L~`4&Q|M&J
zo$4vP6c8zHQpN|nfE>1t2#*9Xv6`sWH1|0)@mmPb4mhyA0jgf;ix9G<P%ST}XV@(*
zz*@I&9f+PSiYfG6zvR*>pTES*`tq%iWtrsTh5uQ%JPR{IB3$Ca=w8r%c{P6tB&4<>
z9w+onhQNxjJMST-7t=W>wJlWaC+;eD{yHx{3f9`_x_llR`bI>pCi7BOjYa3;FRCod
zQRB0i1Im0%HxzrXdoVum<=~3K8)^&NicZp;OXGz%pdV49!xO!}B=ZVsM}U5M>9R+h
z%N4?Ji5l;caaT*N-+amU<+BWtryWb4mbqKaR}n0!YN_dYV{W@MV{V~P#~?w=rsh10
z&YC*vOd-KUKmJ=;uytTre7B18bOkLo%^B-CjQIi1NOM;RCNs+|#3s+%Z-ie|wyqJ9
z^;W~FP4I=|sRJZvSAhlR6op5aOe^plcPf*|Y_Bi7(Qea~sW5zVwHiSR$X7U2KAnnI
zhA5|^GdcD0yb=8SlCI%(j7vUQbv?{zYdC!&hKb_hcU=}RS+Q1qCUb4JB4@0=hbhiR
zJu#WB;E!~jpYnX700{=>0P}xHSJpr2YWql6zX!VFmUrO^XaAt<_^7ay>=U49e)R%^
zMC|;pbiIl9D-IW>%0DSqMuf}1dvQl3pdLCGxx~()93Ow~=60T%YVKx!UQu6h2gMRS
zg%ri2bN<NH;~!jgp7O6;l8G;a{gbO04_r0de&p)H4cQ-D<*a|?s&T{0-?++q$N>AD
zt7(s1m9_0Naf^cBLM8ExedMal16Nr<iO7HBD%3is6D`ZD1P+5HI+0`3`6aAl-en{x
zkt%#o{@InP$-S2G@kxBEkWfKBg-PcO$t7GV0$Sd}6D{Y%n|VNzp}C`aJOIDJHV0{2
zN83%fd^~0C)1`mfHx`4i8<S(QCER_!aCZzEsiz8*QaDtgy|+3r9qy_dltI3N*j{BO
z>Y~LZJbTAcoqReVlzaKG+4r2uldRmmELY1G^u<U%=;o^|=?C6-LM4n6U5;3Lr|x#V
zp6T5+0+;xpuoIT`evr6M<uQ<HJorzpKF5c+fMl}z&Q;(8S3mSQRP);i&(eSADym-)
z=hhMY)z;RI%jzc{9dOQzZ#mmc-qHe;O{-2*Jw=x`BV55(=ZY=MD%e2=dRPE-Kz+`(
z#0L&jPZv}qn@Gciz4A#{feqmq9_*ll@LN+ULZN&v`F;DSj8EA@W+;jYlfkxP%t8?t
zuhd`$t}_$bk+&9<2)vEdta^j}O?4+UjNG}-0%^%?WZsm8e(usk6hY^L$fP6>5V;i)
zHpVJd9JN)j|AbD!vmxc3kUwHs#&PwzK+r&4e`VGl##v`?FskkjT`bNfuJ#;Cp5PWr
z9^GhsMS;-Xo_3ygsI1t0RKI{!!C$4#ME2C>crfrQR>4|ACbi!B7q0G8=A*Gm=RpAp
z&-Ri#l<QYltzDbRDKjq_L@eehk1(Y#Q<c46;q$kP-3SNYW4YdhQ)lAmUeKzMkI|GA
zSU1>xtfyTi1SumTYEU+!MDp%3oUq4y#<Ep!yi%AaXcZ0BrX&qkBOtsc>}6|^E5VL8
zg>*+6qd#l49uC77`S$5MS3d;%mB>DD)$ae2t872Gs-mrcDTH+gdXCdCJrnMso={To
zL}VwvIL=@UN`*P+BYo-tim3zN!k1yr%XhMr7^FAgceLxN1y%XSIZGzz={(7Y>GoTL
zhk}Cs;ImzzAUY6-;AbaKKx4Dwi7NeREe=uU+4#mKOUzPe>$T|TJq>7L&2pZPY#ubZ
z%pSBZA^tX5lFQsFX0*s<-o?|o#L^&3=hC<n7&Xf%{Re}$6H#d+T115`Qk5!HBp#fO
zw2|po3}+Z&_?8v^0B*P+T%-jZ+6hOsD>w-Mt*$dLLKvJ!#~l~~4btfb;iO3qpjy^5
zuHPcM6_{;A96jsmKY;CNDj2L35Hj8*aP03cW?Er7;A`krBo<ughU7O%L2qG>|5E8r
z&6}85I4VR`{31dx+WuPnD_x77x97$hFezj<4JnJJ>zrf6$45i-*mrCWB~g-q9BHBB
zUbs7RB{irBY2aS&Ba3@&>~ZW-m?Jbjk~}#w*_h#>+MVMOMff;~tCXK3&t1Sw@Vo`F
zj5gBu>iL}ZSEeeh`WSXp`x;X5u<?wGaUzL;eXERBu>u|+ct*_lR)MJQBp3JEBu5G?
zDRNAPF_tY0-S&j-xm~EHxC}Y3W|f+)mADIlWral+g=T4areRB?8%)JF$O3!K736QY
z)lh3t0b=7e<iYFIcBbbG8hFq4O{fC8Kf4cRt)svn3hVMpcw!xgo()rVb%PtBOffiN
zTT`C0OOLd_V@T>AyTE<48hgdmbbtq^Kjgu&{^|4o|8(-$|J1|<yNPFLPqjlDq~wf+
z;oWK3pRIu!a(#uM^J4-h0Xm{G`fnqfDN%-bPpGV}=qUjJl1nfF1mGT2K_EY6(li^N
z_txOx@Ry2ZK|ctOKxAS>Bo3OLg|(Cm*p^Dn-ENw+110+y(IpD?Gf3~lr^U=7Bm1Ez
zNl{2abL%2@*E()r-1jpbjEFTsYhB;SV&m$4+hZa>=&63nrY)Q6v|-x-EiyYVucM>a
zQx9G{?)0I6SC8<od9;td8SK0fRQno3Hi4uQ3n|k6B1)`4mo-L202MhInZYnv=q;^9
z&Zg8c=We~22MeHT7J=x1^kh`!x(b;0+3d|othQ%F|9FS!mLq1p>!MMm*#)NqtUEr=
z`}I)T=Hra_Ooj7n<H(RBwO0lPT<Nof7=GHDP9tr;rE(2i_yWUy`;vT5-_Z#1U%zlC
zDCv|txVAm;DKtPmlI#@$)fS`BZI{0iyA0z~b%a*y2VgiFv(qL_={I1a$@aLZ^sReH
zFPjfaedTW@rOctw^DcR}^}hdec%s=_qRY(_@@X#e1DNvu(&3{TR;tfPIN0N}iOMhK
zvLs?dE2SZe#~NQiPpD!dq=<23oxQ@fU~JExh{%6h)GS_YP?lvhSCY|D(~@_|0j-zg
zFW{Q}8ZA%swG$<G`I?qhYg8g|N}d3NR&%-12Si9Y7~ALtI%$1Hlkd;dt3kkKRjIte
zYemV%E+1`Jq{r}}g0PP&$ciehPw}9FG5?n;$nmG+@?$Y9V_=AwM8Iy!ea=|mq9iKE
zA~0$Jp~)Nzg4O@%;y%t~XZ~3a%s&a<Vm)Z2$Ky((hYc~GQW7HV%W&$uWu9fO?ery5
z|5iW9BQOP7Bo@`DQ;uCIhb|(k`K*!xOqYadOYC;`m$`ZAQ(PuY5&_E?1!9;ypd0Gt
zHTjRG1D;EZSb9cAF*&0bEpi1LLy9a&)ca4EhA<<%y<Ss+Vi`%2_^B|f;#p+h>wJqv
z@S$<;>nc8MCEutNrw;FZN#Ed$Y%PWL5eFP53#RM*)vE3l1A%-#|1j{~aLikJeWak(
zKx9mj`9=$4yrep6n^$dh1}kxqO0ukYro`-9Fv?BRd~)a<=X+`niM^e!B+y>|D}%e_
ztdqk}T5BX}xN=ps8UoU&3#DdP1602>NV|%etS3zyxlxR5##SnJ=wiC#^`Pb~@T#w|
zyLj3ziliF8>0FKwpH7-Ou?$zWKedqakqkcT8t;E~-MT3A`h$`2^S!=q+uAbMk-0af
zQ862=8rFbF{$uh{jy_Tz8@YHTjw~5wRiNuef#iHYS5=!LkMEET!x}nrLZST^RMj${
zrUjZzP4`K?SY^?#F}+oxK)GhF9RXO1tQlkQ4MZ>6>O}ECflly73CB!DV-v;+0f{{i
zQ#aHrX;;+X{zVeo*6d3<5rwgd{#=(XcOB{h>NFz<Xmz%G4q1{7XEwj=+0L*1OjHZq
z4P%}ABPqK%^CKD`HT*HY;m)-J0|X^laZy<b9jZe;7mGL~T4O>y(svE<qssjswN=&2
z{apS*TXp}VwzB+ByW&4|HA55LgRmRl*Lpxt>Qh$~CRL~dG*Xo*y)+SvC<=HlxRDhf
zyg(aDyRHnOb{HjM85RcZ3XWIuCq@b8?1CETd7>^(ym1`boHH;ji(N5hX_>=orq!V@
zR*Z8_1o6xkX6E;&xAu2)@Cq#_D`a4i(qZ8k&;cJM$xXgYV-`1{_fs3EK7E@9$)~L8
z?D52kQd}6<e#^y|7l)WtwE;_Yf7E?9ry-LF!IogrP?Qw`kl#R+mz{Gv%g9OZuoo+9
zgBy&+U^f##b|%R{Fs@Rp7||@BdL`o3QQ73`RG8i93kWZl<xL{ONUAfBN8j`H)SgMo
zth0lb7Ocf&JWjEz`+R(vO)^((;OR|?9|s;>NYo>|^i46~iQKS^15jb2nG+)#nCFTh
zZN2A(-Jm6r3&KV4A;8IdojKEgLBd2_l!LTsM^pi}b_Ep~q&_G=u4p(UKbCEn8Q6cW
zF}^cM4HM~7FMyX!7bSY;QIQ!HX8wLhjLt`R&jlH<2uQ-*H-`OSmWXSfEe}PYh*pvz
zlkwRrco_!yRH@jgd+~<T3tcpWrBYf18vw6u#%&hIEh1jnO?U5D>)H*!B7`}t<j5I-
zsb_1SqpGuPoG<cp&GB8jwFV?t`zw<PONvx;FFke8*S%2{&V~+0?eW2#KDeysqsQso
z+9YiCCdMW$3+$|fuiC$$sg&$j?0wCJE(1){bC=O}=cm@0^hnyzP=G+l+zJ6nY~w;q
zV-2x2foE{kQpn16Zq)1M<)L6$HI^EYY+|$(6QfZmJ=6@bFKSU*V$oq@2VZJ+H}Hwb
zVW(j+q}n<8a^gf2SaQ|T9`PQ(Y~B$~eu7b-QXy$U9wUEd)qs@@q<B6dDUJ;l5jLz*
z?aTS0eMp-C2`0E~fWxK}Ta=&8NQzEFl~3g%j8fjD7ZfE_2at+nYCK?(Rlyyy90IOt
zFpzBtP6fjiTX2@frs7LU$wGY+Apk*tva15%ETNgm5Snosaw|I`!;@{+PBXqIMo>L@
zRzt{K{<4^S2$Vvf{6^_bn&8t^jm60rp`;VwX`ra|sJErx^RiB_#(@S_>zIWh*IPTC
zZqC`2ZW5imwa<Ytc2q^H$PLehQd7ebld$r%mZnp!0p%m;)B|sXzZmdE?uaiD9k8<M
z>A+?^Sx;kMd_g!jY-CnJ5-lbcFDGuAl@ZK)i|v8<sc@}qu})>$Ql)d@7==|hTD+)O
zODwjpWnex5qPH^KeWXmO?0k*7N&V=XFT(Utu}~fEO8{3J>=79@DWyUL2M01~&(I)C
zhMb-Bc~@h|1ZcP>X`{$hijz(|pj!aH?HMS{Q6iObw`RDXnL!z^r4TC*tykJm1A<6+
zA_+ZYW32<zOrgK>!@6a#mbH1KM(^ikGcrb*;<b2Zk=OgX@{3e4cQt`YGcR0Lw_MiQ
zjF{)gUcTREsBwufH$B%7f;TMYqdr+aC-82sa$g&<z6^ZQN@I3n!!=$N8t#jLBip`b
zliY0dVKEwr4eJasp2^Js>gwZ+f``Z)pD1jv)jXF^t31vIN%42xRmw!0N6IZ|?#|cU
zJhxo1!5P|#0eK&Z&Am3~BP?`$Qzp0Ki>gE%`q?|Q#QX)UB`*cg6}56fOJ!;>pGy)v
znM%DMdJafu6Gm%`<&0%zR;0_c=E{%NQoeFYU)RD7B=ET!)uj)zK3kb$Y`+Uwsk460
zsiVE#&2?N8UWA~f^1A<nNZMB<)KB>!^CQM@RGZ2`p^Ln9X|~$5;2?7j{*c2_ap4hB
z5VBdV*EtG*r*cSvsLaUvHK0YEQdL{D6ZJ@>H<C_}*OMBMPDclQrx~<yEn0QKGn0$d
zNull<y<;ZsbB~pCHr9gWr{oZ>(Ja%=ygdyue6mK>#Gutyfqgbo22GSvGQqVLaarcz
z{4V8IuamUP-77VptoK!L06~>3+@#sNgC6}k?fN+9g-h_VLWassZ0ZiwSFaNhI0yIN
zdetE+46l{&P_QKnhvR%DMHcKFDdOh@?4%l_^m?WCzt<S*EVZUgi^9Y0zg15(w+jx<
z%IdQ1%a65-+$*$9(dglp@ibLi#pVJGOLyJEu4#1>CKAzqiLIxLnp(>w?*;HM<)1+a
z9Jg&uKu_ZO-^43^>#5oSOH#c?H7LI18FK}rIgDpYl7eKq%amOou-H*$5JvVVL#AEp
zF;8nscWT;NoowTlN2G;S!c6JH_w^}x8tOG1WJJOnny6BT%Z9%~X_eX0Cb8Pds3Ryf
zKf_>cQ8Td#+q_>Kudue%(RTZW2g%+*a2Vs@vL<<;VEoJ{Y{n^9b->d%voE-=uQEYx
zYr>grdcKa&#vp1TnkocnkC3Sx*ilOdi^D|rT1zTa9X(kb7I(n~J2G<*tmbvzk^b}0
z3Uw>?vH3Yqp`<yX6AGm5Ihf&1T9bh!`IVbpm=5+)24sf1mo|__Zs7Q2KKh{%HY#~K
z*q7|n?{<(&d1T%>Lf{_uj^A=SVr2MErS&>W-QszbTwhMK-S<?wLO@PLxRcywD%h3L
z@Mytz!r*t(CArdo#6?#U!#KzR6weK~$IcYBKB{Xe*;LrSiNbEE4);WlcprOO$B&yB
z6(QX#R<Lf=Ys2I=E>;~H;nujb(sY`l`^sR{DMv?vzYB#u2vc$iVW!34YdP=>$_Hvk
zVkve4rqd7KIx<D%4#ug!+A*AZ`&bz_@UJkF_7d9XHMI`v-+_J736!x{#m@TdyzICU
z{0&C)m3uXwP!SAyh}7aF?oo2&`cq?%R>@AP2@6X97cwd0xDn$rW_k#MOq~d4vHG{%
zA=fTXvlf7Dgt<}dMyykjlLkBTC57=NmPG)w`e!$gve?T@2;#B>x0i4N{axxY_oV9!
zPCkoUm0u4qeQ4Y|pXeM=EY9g+hlf9X-&+5+X_r>#Ju$a%r<k7e8k~j1M9~PJQ+FHq
zH|#T;VQdPt8YL8vE{>l&hTsghfY^;q!XeW$&#ZS-3W*t<LZNZ#1$f(uUka#IhF4s4
z2B0e9pJZCTcX?*x_Wj*sP8Aw4n<mhkD$}tp9JV0W=j~82R9MtNEzJW6YC3#wQ9XaL
z#3@#KBK3u;>O4fv-&4O~O)<W{rq7ux>6+drv!{}8#eLz#Z|X3!EdZY1U}7Nel3(DE
zSR(V{L&K+y^W?C03Wwu(cYzTok}Z_0xX3`UGL{SI%II4gK?;-Ql@K>%6eHvw$zsQY
zJNUSRCv~erW_)289&jIyS;~9K!sNqg5_b4`T*QgLzmHABqEeockD<Sl*etG3AYKQK
zm#6D7_o_?sCALKOuKVm224gzlDLB-{_kL98IptQZ*~rRoYU7Qlwt{1_3f2J(f7A><
z@zlJ%w*@v6I^+$>XDE=@LQm<ZwQ=zh%$m0@Np1OFe6qaVK{vamb@q@Y$E!>rg2G*q
zz-V_OzlQLWl{-Ex6Kq!~)+QIQvT@f=eP6ki))nC!?@`P=swfzxAGywDe7SUna|tyh
zAm=3zKLg<#B|~~=fjbl;xH>Y)fR4+*Foq-0m!x@%OH&b8S_%-9F&-HjHzciRJ6W+O
z&jWDXMfuNeDU4)f2fpzp&f9c4ezmwOljy&uU)S&S;qYz1H<06v_cD7yr>FFN_r2NW
zds6zM>-SU&n~AxAuM=wG8K^-RanNh`Jhb7Z=J=g;cToGs)ZR@KB>L4L_3u%yN$FXy
zrH5m^cmMG~iTS^~&T^j0rpBh0Zl+E@JZE)y4^?&SJ7!HYI8@pk25>FVlNetOfQ+zA
zJWJbXAEim$vmD!RtfwhRvSuJn@=(Pcm|5xC?t-y!X>_gHf-w+S?ejgYGVQYK=Ttcw
z*1B)A&N1)3m(v(ba(&D^4_ll^o?Zy<J-rC_&+^4-GrCy<0U^5YEJ7w`i`~0AKy29X
zRPK!MHFgmN82e@5c@&>Z7p5#OBNdC#>&dhYqDbJo@^W5GkVaBQN{(w{Mt=rx&6F&h
zgQ|XAGJ~+;UALRj$W|&5D6h{-5)Snis%J)=A}pUos%~dB!LU~&ApI-yqU;lQ)6fsg
zZJT1<j1Y6RV=rPu7-UCdLL4D5pXP+F%DL9yA5%9o+I%F=^?SOQ+beRiKyF5}AOatt
zJc7L^reU0iz9+NNNItU3JKcXVY%&!JU+<-cUB6)nC|qEXGq5rvL55Cgj|>zauVurZ
zfp?TvI)2e+(V-b14%H!^i2M$!P}i>UwJI$U%bJ@Gy<(*)+I3kJ_(qhI1c_M(*${_>
zG^wRO=C%&9eJ4MrOsyb(xHwcfbrSj)<wXc&G1@}+GmXJeD5!q6K4PKjqvvx<fEe{H
zmW1I%QAv0LzzP-~E`|BHs<wfU5{&UH2&>qhqXL+7lga$8RbGbL)qM!{g5dnPoXQDI
zWGfBOCIoqQ9Ud7|5bHtJn=WZWJY45n^rCQlbFESmL>{#^>H41f&we7EUq2QszqL+V
z{Q7BHd`7FjqPR-Sw?Tc|5WB>-A@(EFvXlt2m8GV!gfuD*)2W8<0%zyQ$9abK2KLfe
zZ&^p%+>Kc6(oQeJMTmHD4aH8mqm*(^F6<P4F_ir6CWuo|u-5(R`mKZ)L8Jk#kbQrf
zV*_NAbjZuuY{Q_J+(WD)83WsI_4df8wUR${*UqD4wT&aKeM8CoEa-Ex)^fY;eYoep
zaT#3xLI3HI$1<kw_6X7EL!Q~zdnpyacOV=(|0YWanHvq84l_bK9NH_=-EyDjn5fW!
zHGMdX!XG~P624xNLy8=7TkNUHg#sMFiS<ti5{r}Pz#_lD-zRW+f6wjg|25&mH3t->
zudw1Fi)@i6Pqi_<=Q^nM-EaaKWUH<S+yayhaoCE{Yej>rL@|>>1~>{Mk&w1pWk(r9
zbB5AG*0o`?tGVnRg4|HxC01WAQr!_;X+v%^8#X#0oG-|<+yao=r^nzyXPK<|oZn+F
zZP9wMcItUle$X0m>7+Uq7Vd?sF1MGC^rwQ=4CRwovT=KaI(l>$x)5TW8+zPM)%PpA
zi0+xYd=BOJqawZ|U-<mbKMCb{b1aetTRr!<nl9-o>GDH%Ut<c`b)>+Fq-h>Av9SJF
z5!jjuJ!YU;e8~(e-h<(TiZbiK>};A~N`SJ4_AXUwA^W<1BG=XHrGl34rx-ShX2A3+
z(eQJs`UZv0+iG!nyaaMcHq?+~JwlR?4sp>jd8@u2F=0aRBu}xA>(eCWURx}#VbTt0
z$cpn&?{kx{R8rFmhieFF6SQ0Ss0SA{&S`%bo}!I@gKBY^z37!r0yn9Jq=`6J`>~Jd
zVGkgoaf>PLB&UH|?J~^Z6y5liy+?wBsJmC=>8y9xRL)GFOU$0Q;Q0QfXiqL$7_VEt
zuoON=v=ui~o>?P4M<;nz-_nMoR3RpTJW4Uq6p6ZVJaIG|O&(Hq4mg!{R}qH~jDq5O
zIGRE7s=Ir+Nm;R5Rq+hru<084B?5uBF49@%2lKATLoKdlwNoSta<2PwZv2duEFw;+
zo&$pKyU1p^$E^XxZs~=GA!SxkHG3zo5V!{w4In$`cetEiut*F6rtO@em7=x;PiizX
zx;Ky_p%;c5&|P3nfbzIqI-OR7PMv`HzIY_60;n{qbnp!s*0a5{l+T=|%&bBrt@;y3
zu0BEZ^@I%78)*p#MXH3t%2V7vn9TD>jQx0=IjakoD7VB$d^t3EXBU%()=M}U5G^6e
zHkSg|pJLw;_`OJ;yAe;=1-Uyvrzgv}ra%@X8J9#t)ZiM}QYdyNaeY&>zTKs|wUc1$
zRiJvDOyC!+uOjvwvYuV62WEm%?u2lT?JlWS-)z$&BS*DJK}3*gv}NC`<892li)98D
z>M`nD!FlCs^gQBLbL;mX6tCV?R*yyrj@AX61}BMN??w;u#mSD~D3=MIHZ2?X>T7;>
zM_tXQ)Mv-OAhZ@9U&Vx7uMy5|BPuk**+Y#c-guI1PuSYiHq1<RNaJIb&wYjCvz?IM
zb6JEnAS&RD?Z{fbrox8L0)HjFVxnWqL~@Ey>=s8tzt@gs-*QW2_9@+e$Z~MY-4Jza
zJNZcI6QbYnVS9%j!`y5n_SOb6s&fh9Tkpy`)&(uC-U8^kph220kliHe(Xvq$M_i;#
zT7%1*l}KHOt%XzjMEz+OQ%=}2r<jSzI-k5JAD$H9w(Hpl25|L#5ZMo$X^h32HHFyC
zpuR1z`$Cj`NaI_dpRBw^(*LEqWt?Pj=-&Ne<!Ry^^xPHd*Ognst2;$hl1~}{HBZsi
zl8yOj?S?2iZXzFL6sHL=TZ|QBXddYI&~<t~(n4pBbMe#(u1g+PVA46Jp(Cjv3u3cS
z%oJ0(3nZ_O*YPOB$|!y@>Hq^?VvQFVg>9^Z9gz(%gsabD#+-4tQ4L8@C$DxoAc%}X
zE_rwg@z<xcy%9|q&9B6E*1NY{8QKLslKa|~fg}T6SfBLGPB>X%>BWHMxDk#)Z#n=~
zuj|9jR3qfxpx1X&8EH@)Y;&xDm*Uc_Dz)Pno3Lh=8pP-6rN@GQ9MeoU_Sg!QI7R}R
zpdYgH4=4^%ckEsU5)kLPjW{NVuxlTQm4Dp2b3UdLduznWKcd7`C9CYi>7zN<ewXxR
zVCEJv?X<8tn9nBVo5Dt-ym_JO8zRF7l?t0X2=4+{g>`xo(1rTQ3N-j3{Ni&zm}TsQ
z_a)_}go3Jm0Dzj`W!P@W)s^6S-pf4wvlVQwm-=VZO-d;Y$<ox}0?ebXyR^o(tHt1?
zIQ<(UkXeK*gpp@a(e*{t9%Hh6c5O^`*W-mKYVhZPw*iY89@x0W6E-I|QJi>rHkC-4
z$<MGYp$Q>7dYnRJG%~4YEBncZ@P|b(tH3M!`^W}F=@~FR2NInslz21|PxQC*R8c;y
zh!kHJky&ZYr&3u23O7f3)Sp%pJ%62$(virOBR-;CU=@5)SZW`U;HLSq`$Giu+xWfw
znqZvLMpo!OW=jqGd_!a*l_c;XlK$lg<+@KnZn|$+o<(M=SbQ184l_jR^;g08bc6am
zV9J~)l?o3A)`jt(PMEm=yVs}on4YC*<7#ecCuHnm>GtsLN047dQvp*6>&}jjSPK?i
zG)b9ruCedQ6Q&?qcCuo+LiFxSQKktQeAWz0Gegf+!Bh*Nz$N634E5*t6V(=0fu|0`
z@6E4ToDZI!-fqv>gW*)=Jn5*k;O3A^Khj#l&@xE7+f_Ebs3h@#{eZ3HT;o2jRu@=e
zSwYz1DM|ya1k%);>7V(GBZz$<R$jyGgm3hg`uz+Z?|3RP$fCVC6p9y3eJl)5M4_*y
zdoR0=X0hI91Ov&Js&{1?#a+(RjwkOfU>C@ceAlX<kuy+*SiT|vj+`&ESl$q&IYy+g
z0QV)F>TEE|rdYk(_KdR4L0wGn0NC}m!{2@$dppIDCF6Z5KWlf@G|~<{l95I`np!RV
zTS=prIcYDZeU~{dAoNFx-k%$2FK(%=$|qkIV_upboV+gT1%^998zVV$F(?58q(H;I
z5$a*DuuY>?0EIx2G7tZ{IECc~Oi#I>6qQ(U5SgJy;D<E1D2qls0cQ8Nh%T762O2P8
zNvm7&A*dJP9zu*dsnFP`p;Q*`$=D1)S^PR2fo3=Gk9&pZC9;{h`-tvYgu+SuMv}V7
zmfTqHe9NAE4XYTa!|r7|Z9~+|eB%MYW!suvXi-UaX$;2>i<@<Wm_bV`T>O~B`IgiF
zV>EY=R*mf{4#R<GhsseL+0|hz-R-y0l>FPh7dN>kV}ioUIq~AJV-E&1^Y$q4(J3W+
zgv|x*VpY@N^FMSt&2K$F#ut(v_2G1n;+uo{Mu0cl?|=DH^)OoBJS#S?#Ru}D;2<(P
zV2(bDvI<P(Wjf^sIueDLZ4`M(Rg8OX*wR|!^CY7hD?FNO@Ep<2fm*LI?Vv78G{$Ra
z)QV8MkY_3h0+CFEI)nf}o=Iu#>|Us|FZS6C1>116%P_QoQ;Gt;1eRA5(QDAt==aEv
zoY?eJ0xN$wL?DCygA@Op>-d<E`IzhIVqy6ovKY~SY4w=6=wj;Z@=M<0??<`h|I}RA
z)zZd9#NN)#()<rf`9?L%cRoXVX}&JVf&vVHfmecrrm+a3jRT8>hF%Fg_(Iet78Uu0
z?NBUOv>kFI2hAH47;a`~?q>J3tW`h&Jl&Z2S+qlpI=vx|R#VMT$D5u|$F~u4`GBmi
z{4ZoelTXybg_E2elNr_Q;69yM-FS#((+Fq1jf^djG93eiC}6g?juvnxLv8PHQ#Hg}
z6$*3jNX&{#;!!rL*6#yUz6K2<h~ZJIF-53O&wpDUHLV0Wq};&rkiWc8)8789wV-gE
zwNz}{i;ve8Xh=%p;|J;X)aFPOC)70pbIh}i&r{-TTCGm=mdOQZ5b1{yS~WpT<W{z1
z|2Q{|x=tt;4}+uz{_A>$;r93RPvU<XMrBGv7ndJ<QdjwQX-FWN?}VMZtFCQX;MsxD
zQ@pbh4>~M_2;sy}@2o577D_2K?+4;n+EI`4x}?sihuhLT<NMMsuD;%ZuV94Wd%etS
zT!L#IUwiLNUy+U*VZ7Ts6oV#ieMK%tF%;kMcDm&J<(U@YzCGM+`~($QYF#uyf^-2I
zMiRbLnb38?7GO$hGDX|bU}HVUP%ss6kAf+%3m1Qqb*ldIre)uz%#8O-QN-y=u;O5(
zlH0uGcESLQ*=;LEDXFLf_<0ywSKl2Tn;E&2fx|hdOx@1wBmM;U;wn^l7IgWCV_)Vq
zG>UT1o0e!u*_Q9S`*apn%Ke8?k^hh5M)uF+X5wV%ZfIm<`a}C-+wCxcXrTK(>JPTB
zN5>(k5`+;8tavH|=|g2G^QF-xp*IOUi6^+{XJhwmqkRiA0bko7j}$|XG4c~*8eZMr
zl6af>-QT!gK(_G_nOmTr=j(157M_}JnhRaUWRc2cG+>Aov(~_CJ3G>yD5pf+$N<$@
z(WVji3j5{45g{_rzlm7;pi#dP(=6U-gr1Zln}wzk3xLzL%upJxz$$Of+04gEjAh%*
zO+a(ou8Iz;67ru>hO!+Jm9bs}a>ZY*oGD+05(_i$D9aIQNlOOlmP?z+lGco^QjqcR
z5M$1Z@Tuui&h8oFM#HC3*iLR+DbZdqM#;{SXwvmpIq;rH+q@IWtQ7nft$pa(RZ-`p
z>^pue?{!D5)vKF{pXsfEaF{sa(8Y1*3#vT7AZs$c#<<JlKpGY5PXN|h>DfCZd*-!2
z-SP`M1ln_YL|pj=)u*}>+`PCl3?e;_%2gnOE#2UN%$TY7a8fDa-%Ob{BE2T^_QyCv
z8reGy;w4#wu2}l^O{S@1h3k<K3%$x05f8H({IFvE%n|vW5rqFdvz8`*%&G0Tw#vja
zEZC!WXD|he%mq5l*$@EiCd9RZ@LX)P%8FFm#-wMjUE+}EX$0dHhA&rOk3@LxxS9u3
z$C4>q{W;AqOfD|6vRXqe9y0AdW3roGN9GE+h7Zy5PXQ*o^Gu79a`Lms*gVN1%FjM`
z2YpVhuFbwHsmtH{s2DSg$*y|RtSF<Po=;fZRnIO5CvE&H$u$osG-qWJES<$2d3jrt
z4gSH(7bX3*O{zgTF}qI%<_0t}Ib1<hpgj9B38wfG5OE*)jUAywo;{*i7OU8fm4Y^8
zBcjB!x%352g8Dlba~_$VjHFk+RX$VNcW<)ujjuC3sZYP~%=4QAo9VUv^2^#T)-9k&
zIZF>#L>bCjdJdHXS!42+JcjcPHR>Tu2~iAJ0}%2+yj>_Mlp$`%15vI6YJ}7&Chdjr
zg^CaXZcQE;owNbAa4r=UVrSS^t#gb#p;PY3L2?RTaVQkE^fjvI_|=a|rSsS!CLNKk
zl?ZI4uXU!^nOXNYgrRdL4&1<&?9%+-QP5UZYqjf8wH8(<WMA-jiP%F&CJ-y^OGK6+
z$eT>51@;WIFfN575v|LobP08h^(WtZ)7G<`R*^#2&ASfnoQ*Z|<jih89Z?bLOEi4b
zfs~Q`trZ&TD-Xwfn*g=L4YN{!^2<9q$gfI*{B7yMu&K^RXs0av9sCH<!01lQ!T2Mr
zQ}%T8%mBo}ccVn7{7r35aLm9oKPEQ)fC^UT&Y6^oPOcR76}2snOX^d`OU_eX9g`MF
zdlvf+_teAoi&WA!)Kt>;=+vw>?ZJg3l`Y~+{8Q&k=u?@7t{Viup{58L!(r-jZ^`hg
zFlB4Oouvy8N&FcXqOD!X^7rRp^F=|Iw}w8qk`fK(>m$*-nAmp^k4iot9T%Pcpx_2S
zO!6Pu?!PPfpCtp2CiyR8t4wKQ=xOij@?-Ie8F*Ouu|W4OR&Q%-YxS(la2;}(h+JsG
z(*hM~5!4!q$1QDC%rH_-pwtE8>Dz-*S46^SRB)lky3_kEwii$Q{hIy3xI6XGc|hWC
zjF+Pd?o(b@VfTD%4hj|Ao5YDVe<OE^c|lPwez$KxE<7-bpknOG5ckZIem@B5eWDih
z1OR5*@J&rEYZCp!wi2KT7u8_)zMf?iAY+1bl_Ik_T%$j=kBw&-l(P{_!ZVi#F5g#P
z`sy98R-FS~VvRb|r&Xn_`I@ha2`h$WuS_S4)ztxx@jZ~Si>E@Ac%OBNPu`4R?p{g^
z#uI~b=58lmBZ9^=<l_}}WYm>*GPtww`iTof$D<m69avQ&n0{P2H<pCyar7q0Tcg<(
z&r~V<4KqCqK{8ztY&z8CgGU&St{`g{qk|zVb;)D4LY`iG4c{T<X*wL%V<JMVfe9!Z
zWqSA4#BS=kUH$%k?OCyP!pG@43wUvA^spug{KqxvU#831#mUm{ho|EjyYy&lf}=n5
z*)_`TqAC*f+iPbt7QA(mQ6m!*F2M>=RkWj^(MV&ABA(Mztni>NkMU}MG&WU`T^OGu
z-CNnrd)U^qTFd>wJi_vj5Ro!sGqLP+uqWoDGAhftmurVrO9n>`G@4hkJjvbzBHTL>
zflf#~$=LNljs<YD_?=Gb^m`3XzD(A!KDJK`Esl3xvM(uFj5RQOEZ9;u!}}(6zde(l
zd-nq4Ac8Ziso`?OcBuf%**)IS6vv?{eE`4nn+{Xn2_tArL$dhki`Q|DrC38-JVi>S
z4p9yU))fq%R64sMrwF#$n-O=WS{h!$*o$-`)%DBf7A{{UVkz3?2~m$jdB3PhH<i(d
z7z!NaU`^^ML^phKR`I-};I!CIGJNa4f2Xg+b?9m<z9zTHHhxNRkB79+R`7CH+ODh;
zA7vMG9}(mK9Hy7uLzwxKIILX0DE=6PR#yc2c9#sg_q|gWSExF<9+h5%N5-XDSAD3x
zM3ayY&6?bre3yGz9eIm{kKh{YS?^8Mu8*uVI-UiIPw#oX!CV0w@|rb2JOwOd=9*^c
zVX!kP?AegWH|M5j+use7tvbVI!-EoFKBUtAyI~^vXT#*|;`yh);Tkg}-T4eFc*OQ~
ze$V9ex0&b3Oq0Pv_1_tbUE)GN!CgZ)k#9mBNT1c0xY7Z8l+%@_l=H;yV9<T*F5~Lb
z#~aom3X&9Cm~R*-HkE3udX$Z#HcUKZo}X?vPugO*J1;arvS@7R!4`_Z^>=yaVC2A0
z(oA}5mPASpX}l5U9bwwx8sG$Aqgg!%8fmejo-@U>1JxhgUk}+g=hd+IZS7{Eyqs{6
zLUH|uRVg2D<Yf~mYhW}PCN(ys`UH&<-M7UWgYJEFj#%q8V|!0{=@6U7EG@&)&L>p2
zo>J8$%}XT1-s}rG*y5&FL5JKA3BfY)Q)d+i5}eK>zz*)w6P-j#OAry3iY9?yY+w)J
zrj4)dXgY>6My<L-)KwWTyFa9TrH!;DxmQLHf6p6j<-ieOei-_`htIzc{lh`eUptte
z%jFM;AXZMH;~5%gc{MKr8yfv(__CKGDyP?!2N@7Z_BwmDB>|a%u5331l(pH{6(rb3
zYMNf>mHVNOpN;QuSl+DFU!WCCXH_HnnFaUVVpQS0Us$JQe#b`=xCFSbsXmEy^vz+n
z+^^|q$nm)5C&n0aJiIt56TI#;QfZ9}!da1o%PO9JMH`U-cqCD%J07<jO1jfRW_0<7
zQ28-ZvR@A{>thbm2%-?V7GV|x8zkqSs2)C5fPShD%0Yl8czJ%ZkBKh^KBMqtl-$Lc
zef?RBsjuptZU9P7V&0UouuwE~BNRQ&VSg|wO;8_EK(mi79`t-#C6hB03Vepn61in*
zI!5w}6oqD28qMHy2a_V8qQL#L&5R5P**bAA3!_9^4osGr@f$BI>o-ND_69+xX_ccU
zcEAPMhzm~VkoN<N<|Hi92Djf$SE9YtmH5Lvuzg<(!6C4~{xDvDmi;~a{9PW){{Ak1
z)$u(R0V>M;z3Z<9d5=YZKjrDe<zHQYDFJ*$Kmhya&FtTA{ow)Ok21c0@9|j3_fwW0
zE+2dREbIICo{!7^Pl0_HnqPbVW0~L2zy4V0_iO3fW1-(q5&iFAf0h0HI-rl+@Lwx*
z9?Rx_itNJ_{g+4lha$S)@qeu<_&fgfgH!WA;Qy%l`5ph)T=Bo-7d^!H{s;UYl?uP(
z|C$K=cYNT3F8mMpKl0Ci$Nx2T^Y8dIDE|}wkL2Rt@qazveoO%UDMk-Ln*Z<5|Hu0H
zJG$yGan#2%@}H7H^k30`KQaFu{MUfgV<`5g#8dxQ@P7@=KHlZu)`RcW#(&+Wi0+TO
z{1NK<_g;^|uAegWORvAo%kO{f*LV*3&%O^=H~-ZA{}l@R74LC7@N1moF$(lkMCgD1
ziN7A_*O<`nP`_@h$$sKITzND6Bh=r+B)`M`x`lb%jsFxirhkO{b8r4T(67$*-`7%J
z;6DQWy8rnd>{lo4?_j$RBz$DWZ=0!Kz4PC}eswz@{korW!2T~_e|dSoWBqD2A03sS
eV#)bWSbx$I`k`nG3=Hq#We5uf_Lb}L+y4V0AyxkX

diff --git a/Plugins/Android/src/JPushBridge.java b/Plugins/Android/src/JPushBridge.java
index b5eeceb..a071a9e 100644
--- a/Plugins/Android/src/JPushBridge.java
+++ b/Plugins/Android/src/JPushBridge.java
@@ -17,72 +17,72 @@
 import com.unity3d.player.UnityPlayer;
 
 
-/**  
+/**
  * Copyright © 2014  JPUSH. All rights reserved.
  * @Title: JPushBridge.java
  * @Prject: Unity_002
  * @Package: com.example.unity_002
  * @Description: TODO
- * @author: zhangfl  
+ * @author: zhangfl
  * @date: 2014-4-16 上午9:48:20
- * @version: V1.0  
+ * @version: V1.0
  */
 public class JPushBridge {
 	private static JPushBridge jpushBridge = new JPushBridge() ;
 	private Activity activity = null;
 	public static String gameObjectName = "" ;
 	public static String funcName = "" ;
-	
+
 	public static boolean ISQUIT = true ;
-	
+
 	private Activity getActivity(){
 		if(activity == null){
-			activity = UnityPlayer.currentActivity; 
+			activity = UnityPlayer.currentActivity;
 		}
-		
+
 		return activity;
 	}
-	
+
 	public static JPushBridge getInstance() {
-		if(null == jpushBridge) 
+		if(null == jpushBridge)
 			jpushBridge = new JPushBridge() ;
 		ISQUIT = false ;
 		return jpushBridge ;
 	}
-	
+
 	public void isQuit() {
 		ISQUIT = true ;
 	}
-	
+
 	public void setDebug(boolean enable) {
 		JPushInterface.setDebugMode(enable) ;
 	}
-	
-	
+
+
 	public void initJPush(String gameObject , String func) {
-		gameObjectName = gameObject ; 
+		gameObjectName = gameObject ;
 		funcName = func ;
-		
+
 		JPushInterface.init(getActivity()) ;
 		UnityPlayer.UnitySendMessage(gameObjectName ,funcName , "initJPush:" + gameObject + "---" + func );
 	}
-	
+
 	public  void stopJPush(String gameObject , String func) {
 		JPushInterface.stopPush(getActivity()) ;
 		UnityPlayer.UnitySendMessage(gameObject ,func ,  "stopJPush" );
 	}
-	
+
 	public  void resumeJPush(String gameObject , String func) {
 		JPushInterface.resumePush(getActivity()) ;
 		UnityPlayer.UnitySendMessage(gameObject ,func ,  "resumeJPush" );
 	}
-	
+
 	public void setTags(String gameObject , String func ,String unity_tags ) {
-		
+
 		if (TextUtils.isEmpty(unity_tags)) {
 			return;
 		}
-		
+
 		String[] sArray = unity_tags.split(",");
 		final Set<String> tagSet = new LinkedHashSet<String>();
 		for (String sTagItme : sArray) {
@@ -91,11 +91,11 @@ public void setTags(String gameObject , String func ,String unity_tags ) {
 			}
 			tagSet.add(sTagItme);
 		}
-		
+
 		UnityPlayer.UnitySendMessage(gameObject , func , "setTags:" + unity_tags);
-		
+
 		getActivity().runOnUiThread(new Runnable() {
-			
+
 			@Override
 			public void run() {
 				// TODO Auto-generated method stub
@@ -103,9 +103,9 @@ public void run() {
 			}
 		}) ;
 	}
-	
+
 	public void setAlias(String gameObject , String func , String unity_alias) {
-		
+
 		if (TextUtils.isEmpty(unity_alias)) {
 			return;
 		}
@@ -114,17 +114,17 @@ public void setAlias(String gameObject , String func , String unity_alias) {
 		}
 		final String alias = unity_alias ;
 		getActivity().runOnUiThread(new Runnable() {
-			
+
 			@Override
 			public void run() {
 				// TODO Auto-generated method stub
 				JPushInterface.setAlias(getActivity(), alias, mAliasCallback) ;
 			}
 		});
-		
+
 		UnityPlayer.UnitySendMessage(gameObject , func , "setAlias:" + unity_alias );
 	}
-	
+
 	private final TagAliasCallback mAliasCallback = new TagAliasCallback() {
 
 		@Override
@@ -137,18 +137,17 @@ public void gotResult(int code, String alias, Set<String> tags) {
 
 			case 6002:
 				logs = "Failed to set alias due to timeout. Try again after 60s.";
-				
+
 				break;
 
 			default:
 				logs = "Failed with errorCode = " + code;
 			}
-
-			showToast(logs, getActivity());
+			Log.i("JPushBridge", logs);
 		}
 
 	};
-	
+
 	private final TagAliasCallback mTagsCallback = new TagAliasCallback() {
 
 		@Override
@@ -166,12 +165,11 @@ public void gotResult(int code, String alias, Set<String> tags) {
 			default:
 				logs = "Failed with errorCode = " + code;
 			}
-
-			showToast(logs, getActivity());
+			Log.i("JPushBridge", logs);
 		}
 
 	};
-	
+
 	public void setPushTime(String gameObject , String func , String _days, String _startime, String _endtime) {
 		//TODO check _days _starttime _endtime are vertify
 		if(!isNumeric(_startime) || !isNumeric(_endtime))
@@ -188,7 +186,7 @@ public void setPushTime(String gameObject , String func , String _days, String _
 		JPushInterface.setPushTime(getActivity(), days, starttime, endtime) ;
 		UnityPlayer.UnitySendMessage(gameObject ,func ,  "setPushTime" );
 	}
-	
+
 	// 校验Tag Alias 只能是数字,英文字母和中文
 	private boolean isValidTagAndAlias(String s) {
 		Pattern p = Pattern.compile("^[\u4E00-\u9FA50-9a-zA-Z_-]{0,}$");
@@ -212,6 +210,6 @@ private boolean isNumeric(String str) {
 		Pattern pattern = Pattern.compile("[0-9]*");
 		return pattern.matcher(str).matches();
 	}
-	
-	
+
+
 }
diff --git a/Plugins/Android/src/UnityPluginActivity.java b/Plugins/Android/src/UnityPluginActivity.java
index 8d404c8..1f79679 100644
--- a/Plugins/Android/src/UnityPluginActivity.java
+++ b/Plugins/Android/src/UnityPluginActivity.java
@@ -7,39 +7,36 @@
 import com.unity3d.player.UnityPlayerActivity;
 
 
-/**  
+/**
  * Copyright © 2014  JPUSH. All rights reserved.
  * @Title: UnityPluginActivity.java
  * @Prject: unity-jpush-plugin
  * @Package: com.example.jpushdemo
  * @Description: TODO
- * @author: zhangfl  
+ * @author: zhangfl
  * @date: 2014-4-16 下午7:07:02
- * @version: V1.0  
+ * @version: V1.0
  */
 public class UnityPluginActivity extends UnityPlayerActivity{
 	@Override
 	protected void onCreate(Bundle arg0) {
-		// TODO Auto-generated method stub
 		super.onCreate(arg0);
-		
+
 		WindowManager.LayoutParams attr = getWindow().getAttributes();
         attr.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
         getWindow().setAttributes(attr);
         getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
 	}
-	
+
 	@Override
 	protected void onResume() {
-		// TODO Auto-generated method stub
 		super.onResume();
-		JPushInterface.onResume(UnityPluginActivity.this ) ;
+		JPushInterface.onResume(UnityPluginActivity.this) ;
 	}
 	
 	@Override
 	protected void onPause() {
-		// TODO Auto-generated method stub
-		super.onStop();
+		super.onPause();
 		JPushInterface.onPause(UnityPluginActivity.this);
 	}
 }