package Ġcom . x ue qi u . push Ċ Ċ import Ġandroid . content . Context Ċ Ċ object ĠPush Manager Ġ{ ĊĊĠĠĠ Ġconst Ġval ĠPLATFORM _ FIRE BASE Ġ= Ġ" firebase " ĊĠĠĠ Ġconst Ġval ĠPLATFORM _ X IA OM I Ġ= Ġ" xia omi " ĊĠĠĠ Ġconst Ġval ĠPLATFORM _ H UA WE I Ġ= Ġ" hu awei " ĊĊĠĠĠ Ġconst Ġval ĠEVENT _ KEY _ NOTIFICATION _ CLICK Ġ= Ġ" notification _ click " ĊĠĠĠ Ġconst Ġval ĠEVENT _ KEY _ NOTIFICATION _ OPEN Ġ= Ġ" notification _ open " ĊĠĠĠ Ġconst Ġval ĠEVENT _ KEY _ RECEIVE _ MESSAGE Ġ= Ġ" receive _ message " ĊĠĠĠ Ġconst Ġval ĠEVENT _ SET _ USER Ġ= Ġ" set _ user " ĊĠĠĠ Ġconst Ġval ĠEVENT _ REMOVE _ USER Ġ= Ġ" remove _ user " ĊĠĠĠ Ġconst Ġval ĠEVENT _ KEY _ SET _ ALIAS Ġ= Ġ" set _ alias " ĊĠĠĠ Ġconst Ġval ĠEVENT _ KEY _ REMOVE _ ALIAS Ġ= Ġ" remove _ alias " ĊĠĠĠ Ġconst Ġval ĠEVENT _ KEY _ SUB SCR IBE _ TOPIC Ġ= Ġ" subscribe _ topic " ĊĠĠĠ Ġconst Ġval ĠEVENT _ KEY _ UN SUB SCR IBE _ TOPIC Ġ= Ġ" unsubscribe _ topic " ĊĊĠĠĠ Ġval Ġrom Info Ġby Ġlazy Ġ{ ĠR om Info () Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġis Debug : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġm Logger : ĠLogger ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Callback : ĠPush Callback ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġm Handlers : ĠMutable List < Base Push Handler > Ġ= ĠArrayList () ĊĊĠĠĠ Ġfun Ġinit ( context : ĠContext , Ġoptions : ĠPush Options ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Debug Ġ= Ġoptions . isDebug ĊĠĠĠĠĠĠĠ Ġm Logger Ġ= Ġoptions . logger ĊĠĠĠĠĠĠĠ Ġm Callback Ġ= Ġoptions . callback ĊĊĠĠĠĠĠĠĠ Ġm Handlers . clear () ĊĠĠĠĠĠĠĠ Ġm Handlers . addAll ( options . push Handlers ) ĊĊĠĠĠĠĠĠĠ Ġm Handlers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . isDebug Ġ= Ġis Debug ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . logger Ġ= Ġm Logger ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . callback Ġ= Ġm Callback ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . init Handler ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠBase Push Handler > Ġget Handler ( handler ID : ĠString ): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Handlers . find Ġ{ Ġit . get Handler ID () Ġ== Ġhandler ID Ġ} ?. let Ġ{ Ġit Ġas ĠT Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrequest Token ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Handlers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . request Token ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetToken ( handler ID : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Handlers . find Ġ{ Ġit . get Handler ID () Ġ== Ġhandler ID Ġ} ?. token ĊĠĠĠ Ġ} Ċ Ċ }