package Ġcom . insp ired android . linux command bib liot he ca . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . insp ired android . linux command bib liot he ca . R Ċ import Ġcom . insp ired android . linux command bib liot he ca . interfaces . OnClick List Listener Ċ import Ġcom . insp ired android . linux command bib liot he ca . misc . App Manager Ċ import Ġcom . insp ired android . linux command bib liot he ca . misc . Constants Ċ import Ġcom . insp ired android . linux command bib liot he ca . misc . highlight Query Inside Text Ċ import Ġcom . insp ired android . linux command bib liot he ca . models . Command Ċ import Ġio . realm . Realm Results Ċ import Ġkotlinx . android . synt hetic . main . row _ command . view .* Ċ import Ġjava . util .* Ċ Ċ /* ĠCopyright Ġ 2 0 1 9 ĠSimon ĠSch ub ert Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ */ Ċ class ĠCommands Adapter ( context : ĠContext ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġrealm Results : ĠList < Realm Results < Command >>) Ġ: ĠRecyclerView . Adapter < Commands Adapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġquery Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġbookmark Ids Ġ= ĠArrayList < Long >() ĊĠĠĠ Ġprivate Ġvar Ġlistener : ĠOnClick List Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Bookmark Ids ( context ) ĊĠĠĠĠĠĠĠ Ġset Has Stable Ids ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . row _ command , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( v ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠgetItem ( position )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On List ClickListener ( listener : ĠOnClick List Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( realm Result Ġin Ġrealm Results ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ+= Ġrealm Result . size ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcount ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetItem ( i : ĠInt ): ĠCommand ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( realm Results . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( realm Result Ġin Ġrealm Results ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ< Ġrealm Result . size Ġ+ Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġrealm Result [ i Ġ- Ġcount ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ+= Ġrealm Result . size ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Realm Results ( query Results : ĠList < Realm Results < Command >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġrealm Results Ġ= Ġquery Results ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Search Query ( search Query : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġquery Ġ= Ġsearch Query ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Bookmark Ids ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark Ids Ġ= ĠApp Manager . get Bookmark Ids ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( i : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠgetItem ( i )?. id ?. to Long () Ġ?: Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġsection Ġicon ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsection ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Section Image Resource ( section : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( section ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . SECTION _ G AMES Ġ-> Ġreturn ĠR . drawable . ic _ vide og ame _ asset _ black _ 2 4 dp ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . SECTION _ SYSTEM ADMIN AND DE AM ON Ġ-> Ġreturn ĠR . drawable . ic _ security _ black _ 2 4 dp ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . SECTION _ USER COMMAND S Ġ-> Ġreturn ĠR . drawable . ic _ keyboard _ black _ 2 4 dp ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . SECTION _ SYSTEM CALL S Ġ-> Ġreturn ĠR . drawable . ic _ code _ white _ 4 8 dp ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . SECTION _ MIS S CEL AN O US Ġ-> Ġreturn ĠR . drawable . ic _ keyboard _ black _ 2 4 dp ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠR . drawable . ic _ keyboard _ black _ 2 4 dp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ), ĠView . OnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( command : ĠCommand ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . title . text Ġ= Ġcommand . name . highlight Query Inside Text ( item View . context , Ġquery ). result ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . description . text Ġ= Ġcommand . desc . trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ}. highlight Query Inside Text ( item View . context , Ġquery ). result ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bookmark Ids . contains ( command . id . to Long ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . icon . setImage Resource ( R . drawable . ic _ bookmark _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . icon . setImage Resource ( get Section Image Resource ( command . category )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetItem ( adapter Position )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. onClick List ( it . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }