package Ġjp . j ug g ler . sub way to oter čĊč Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . view . View č Ċ import Ġandroid . view . ViewGroup č Ċ import Ġandroid . widget .* č Ċ import Ġjp . j ug g ler . sub way to oter . util . Async Activity č Ċ import Ġjp . j ug g ler . util . Log Category č Ċ import Ġjp . j ug g ler . util . ascii Pattern č Ċ import Ġkotlinx . coroutines .* čĊč Ċ class ĠAct Drawable List Ġ: ĠAsync Activity (), ĠCor outine Scope Ġ{ čĊčĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLog Category (" Act Drawable List ") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġclass ĠMy Item ( val Ġid : ĠInt , Ġval Ġname : ĠString ) čĊčĊĠĠĠ Ġprivate Ġval Ġdrawable List Ġ= ĠArrayList < My Item >() čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠMy Adapter čĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠlistView : ĠListView čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊĠĠĠĠĠĠĠ ĠApp 1 . set Activity Theme ( this ) čĊĠĠĠĠĠĠĠ Ġinit UI () čĊĠĠĠĠĠĠĠ Ġload () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġinit UI () Ġ{ čĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . act _ drawable _ list ) čĊĠĠĠĠĠĠĠ ĠApp 1 . init Edge To Edge ( this ) čĊĠĠĠĠĠĠĠ ĠSty ler . fix Horizontal Padding ( findViewById ( R . id . ll Content )) čĊčĊĠĠĠĠĠĠĠ ĠlistView Ġ= ĠfindViewById ( R . id . list View ) čĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠMy Adapter () čĊĠĠĠĠĠĠĠ ĠlistView . adapter Ġ= Ġadapter čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġload () Ġ= Ġlaunch Ġ{ čĊĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġre Package Spec Ġ= Ġ""" . +/ """. to Regex () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġre Skip Name Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ^( abc _| av d _| btn _ checkbox _| btn _ radio _| google g _| ic _ keyboard _ arrow _| ic _ menu _ arrow _| notification _| common _| em j _| cp v _| design _| exo _| m trl _| ic _ m trl _) """ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. ascii Pattern () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable :: class . java . fields čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġit . get ( null ) Ġas ? ĠInt Ġ?: Ġreturn @ map NotNull Ġnull čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġresources . getResource Name ( id ). replace First ( re Package Spec , Ġ"") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( re Skip Name . matcher ( name ). find ()) Ġreturn @ map NotNull Ġnull čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Item ( id , Ġname ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Mutable List () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĠsortBy Ġ{ Ġit . name Ġ} Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable List . clear () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable List . addAll ( list ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () čĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠThrowable ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . trace ( ex ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġclass ĠMy ViewHolder ( view Root : ĠView ) Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtv Caption : ĠTextView Ġ= Ġview Root . findViewById ( R . id . tv Caption ) čĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġiv Image : ĠImageView Ġ= Ġview Root . findViewById ( R . id . iv Image ) čĊčĊĠĠĠĠĠĠĠ Ġfun Ġbind ( item : ĠMy Item ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Caption . text Ġ= Ġitem . name čĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv Image . setImage Resource ( item . id ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġinner Ġclass ĠMy Adapter Ġ: ĠBase Adapter () Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ= Ġdrawable List . size čĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Id ( idx : ĠInt ): ĠLong Ġ= Ġ 0 L čĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem ( idx : ĠInt ): ĠAny Ġ= Ġdrawable List [ idx ] čĊčĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget View ( idx : ĠInt , Ġview Arg : ĠView ?, Ġparent : ĠViewGroup ?): ĠView Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview : ĠView čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġholder : ĠMy ViewHolder čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Arg Ġ== Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= Ġlayout Inflater . inflate ( R . layout . lv _ drawable , Ġparent , Ġfalse ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder Ġ= ĠMy ViewHolder ( view ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . tag Ġ= Ġholder čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= Ġview Arg čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder Ġ= Ġview . tag Ġas ĠMy ViewHolder čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( drawable List [ idx ]) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġview čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊ