package Ġcom . gh 0 u 1 l 5 . wechat magic ian . spell book . hook ers Ċ Ċ import Ġandroid . content . Context . INPUT _ METHOD _ SERVICE Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . EditText Ċ import Ġcom . gh 0 u 1 l 5 . wechat magic ian . spell book . We chat Status Ċ import Ġcom . gh 0 u 1 l 5 . wechat magic ian . spell book . base . Event Center Ċ import Ġcom . gh 0 u 1 l 5 . wechat magic ian . spell book . base . Hook er Ċ import Ġcom . gh 0 u 1 l 5 . wechat magic ian . spell book . interfaces . I Search Bar Console Ċ import Ġcom . gh 0 u 1 l 5 . wechat magic ian . spell book . mirror . com . tencent . mm . ui . tools . Classes . ActionBar EditText Ċ import Ġcom . android . system . x posed . XC _ Method Hook Ċ import Ġcom . android . system . x posed . X posed Bridge . hook All Construct ors Ċ Ċ object ĠSearch Bar Ġ: ĠEvent Center () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġinterfaces : ĠList < Class <* >> ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠlistOf ( I Search Bar Console :: class . java ) ĊĊĠĠĠ Ġoverride Ġfun Ġprovide Event Hook er ( event : ĠString ): ĠHook er ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" on Handle Command " Ġ-> ĠSearch Bar Hook er ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Unknown Ġevent : Ġ$ event ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠSearch Bar Hook er Ġ= ĠHook er Ġ{ ĊĠĠĠĠĠĠĠ Ġhook All Construct ors ( ActionBar EditText , Ġobject Ġ: ĠX C _ Method Hook () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter Hook ed Method ( param : ĠMethod Hook Param ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearch Ġ= Ġparam . this Object Ġas ĠEditText ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ= ĠUnit ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ= ĠUnit ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( editable : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġsearch . context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcommand Ġ= Ġeditable . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( command . startsWith ("# ") Ġ&& Ġcommand . endsWith ("# ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Ġ= Ġcommand . drop ( 1 ). drop Last ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Parallel (" on Handle Command ") Ġ{ Ġplugin Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconsumed Ġ= Ġ( plugin Ġas ĠI Search Bar Console ). on Handle Command ( context , Ġcommand ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( consumed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠHide ĠInput ĠMethod ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġsearch . context . getSystem Service ( INPUT _ METHOD _ SERVICE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( imm Ġas ĠInput Method Manager ). hide Soft Input From Window ( search . window Token , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠWe chat Status . toggle ( We chat Status . Status Flag . STATUS _ FLAG _ COMMAND ) ĊĠĠĠ Ġ} Ċ } Ċ