package Ġcom . library . common . utils Ċ Ċ import Ġandroid . app . Activity Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠActivity ç®¡çĲĨ å·¥åħ· ç±» Ċ Ġ* Ċ Ġ* Ġ@ author Ġyang bw Ċ Ġ* Ġ@ date Ġ 2 0 2 0 / 9 / 1 Ċ Ġ*/ Ċ @ Suppress (" unused ") Ċ class ĠActivity Utils Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ activity Stack ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġactivity Stack : ĠStack < Activity >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= ĠStack () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfield ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ·»åĬł ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġactivity ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Activity ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Stack ?. add ( activity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç§»éĻ¤ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġactivity ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove ( activity : ĠActivity ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Stack ?. remove ( activity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åħ³éĹŃ æĮĩå®ļ çķĮéĿ¢ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġactivity Ġ è¦ģ åħ³éĹŃ çļĦ Activity ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfinish ( activity : ĠActivity ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Stack ?. remove ( activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Activity Exist ( cl z : ĠClass < out ĠActivity ?> ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Stack ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġit . contains ( getActivity ( cl z )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠisEmpty : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġactivity Stack ?. isEmpty () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åħ³éĹŃ æĮĩå®ļ çķĮéĿ¢ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcl z Ġ è¦ģ åħ³éĹŃ çļĦ Activity . class ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfinish ( cl z : ĠClass < out ĠActivity ?> ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish ( getActivity ( cl z )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfinish All () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ( activity Stack ?. size Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish ( activity Stack ?. peek ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠMob click Agent . on Kill Process ( Utils . getContext ()); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç»ĵæĿŁ åħ¶ä»ĸ Activity ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcl z Ġå½ĵåīį Activity . class Ġä¸į éľĢè¦ģ finish ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfinish Others ( cl z : ĠClass < out ĠActivity ?> ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= ĠgetActivity ( cl z ) ĊĠĠĠĠĠĠĠ Ġfinish Others ( activity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç»ĵæĿŁ åħ¶ä»ĸ Activity ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġactivity Ġå½ĵåīį Activity Ġä¸į éľĢè¦ģ finish ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfinish Others ( activity : ĠActivity ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Stack ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( a Ġin Ġit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ!== Ġa Ġ&& Ġa Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . finish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add ( activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® className Ġèİ·åıĸ Activity å¯¹è±¡ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcl z ĠClass ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetActivity ( cl z : ĠClass < out ĠActivity ?> ): ĠActivity ? Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Stack ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( activity Ġin Ġit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ!= Ġnull Ġ&& Ġactivity . java Class Ġ== Ġcl z ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĽŀ éĢĢ åĪ° æĮĩå®ļçļĦ Activity . class ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcl z ĠActivity . class ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġback To ( cl z : ĠClass < out ĠActivity ?> ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Stack ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġactivity Ġ= Ġit . peek () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( activity Ġ!= Ġnull Ġ&& Ġcl z Ġ!= Ġactivity . java Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . remove ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Ġ= Ġit . peek () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪ¤æĸŃ activity æĺ¯åĲ¦ æĺ¯ æľĢ é¡¶ éĥ¨ Activity ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġactivity ĠéľĢè¦ģ åĪ¤æĸŃ çļĦ activity ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Top Activity ( activity : ĠActivity ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Stack ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġit . size Ġ!= Ġ 0 Ġ&& Ġit . peek () Ġ=== Ġactivity ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġactivity Utils : ĠActivity Utils ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġfun Ġget (): ĠActivity Utils ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity Utils Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( Activity Utils :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity Utils Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Utils Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Utils () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġactivity Utils ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }