package Ġcom . we gd ut . we gd ut . utils Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . graphics . Port er D uff Ċ import Ġandroid . graphics . Port er D uff Color Filter Ċ import Ġandroid . util . S parseInt Array Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . View Ċ import Ġandroid . view . animation . Animation Ċ import Ġandroid . view . animation . Animation Utils Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . view . View Compat Ċ import Ġandroidx . core . widget . Nested ScrollView Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . swiper ef resh layout . widget . Swipe Refresh Layout Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . google . android . material . bottomnavigation . Bottom Navigation View Ċ import Ġcom . we gd ut . we gd ut . R ĊĊ Ċ object ĠUI Utils Ġ{ ĊĊĠĠĠ Ġfun Ġshow Keyboard ( activity : ĠActivity , Ġview : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġactivity . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġview . request Focus () ĊĠĠĠĠĠĠĠ Ġimm . show Soft Input ( view , ĠInput Method Manager . SHOW _ IMP LICIT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhide Keyboard ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġactivity . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġactivity . current Focus ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimm . hide Soft Input From Window ( it . window Token , ĠInput Method Manager . HIDE _ NOT _ ALWAYS ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisplay Back In Toolbar ( activity : ĠFragment Activity , Ġtoolbar : ĠToolbar ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= ĠActivity Compat . get Drawable ( activity , ĠR . drawable . abc _ ic _ ab _ back _ material ) !! ĊĠĠĠĠĠĠĠ Ġdrawable . color Filter Ġ= ĠPort er D uff Color Filter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Attr Color ( activity , ĠR . attr . color Control Normal ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPort er D uff . Mode . SRC _ IN ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtoolbar . navigation Icon Ġ= Ġdrawable ĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . support Finish After Transition () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind Nav AndView Pager ( ĊĠĠĠĠĠĠĠ Ġnav View : ĠBottom Navigation View , ĊĠĠĠĠĠĠĠ Ġview Pager : ĠView Pager , ĊĠĠĠĠĠĠĠ Ġmenus : ĠArray < Int > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid 2 position Ġ= ĠS parseInt Array () ĊĠĠĠĠĠĠĠ Ġfor Ġ( it Ġin Ġmenus . with Index ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid 2 position . put ( it . value , Ġit . index ) ĊĠĠĠĠĠĠĠ Ġview Pager . add On Page ChangeListener ( object Ġ: ĠView Pager . On Page ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Offset : ĠFloat , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Offset Pixels : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav View . selected ItemId Ġ= Ġmenus [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġnav View . setOn Navigation ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager . setCurrent Item ( id 2 position [ it . itemId ], Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd StatusBar Padding ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠView Compat . setOn Apply Window Insets Listener ( view ) Ġ{ Ġ_, Ġin sets Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġrun Ġtwice , Ġignore Ġlatter Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( in sets . system Window Inset Top Ġ== Ġ 0 ) Ġreturn @ setOn Apply Window Insets Listener Ġin sets ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Compat . set Padding Relative ( view , Ġ 0 , Ġin sets . system Window Inset Top , Ġ 0 , Ġ 0 ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin sets . replace System Window Insets ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin sets . system Window Inset Left , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin sets . system Window Inset Right , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin sets . system Window Inset Bottom ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠView Compat . request Apply Insets ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdp 2 px ( context : ĠContext , Ġdp : ĠFloat ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( context . resources . display Metrics . density Ġ* Ġdp Ġ+ Ġ 0 . 5 f ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Swipe Refresh Color ( swipe Refresh Layout : ĠSw ipe Refresh Layout ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġswipe Refresh Layout . resources ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġres . getColor ( R . color . blue _ 5 0 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġres . getColor ( R . color . blue _ 7 0 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġres . getColor ( R . color . deep _ purple _ 4 0 0 ) ĊĠĠĠĠĠĠĠ Ġswipe Refresh Layout . setColor Scheme Colors ( a , Ġb , Ġc ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġaction Bar Size ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtv Ġ= ĠTyped Value () ĊĠĠĠĠĠĠĠ Ġif Ġ( context . theme . resolve Attribute ( android . R . attr . action Bar Size , Ġtv , Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTyped Value . complex To Dimension Pixel Size ( tv . data , Ġcontext . resources . display Metrics ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġapply Scroll Elevation ( app Bar Layout : ĠView , Ġre cyclerView : ĠRecyclerView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġre cyclerView . add On Scroll Listener ( object Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Scroll StateChanged ( re cyclerView : ĠRecyclerView , ĠnewState : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Scroll StateChanged ( re cyclerView , ĠnewState ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Bar Layout . is Hover ed Ġ= Ġre cyclerView . can Scroll Vert ically (- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġapply Scroll Elevation ( ĊĠĠĠĠĠĠĠ Ġapp Bar Layout : ĠView , ĊĠĠĠĠĠĠĠ Ġnested ScrollView : ĠNested ScrollView ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnested ScrollView . setOn Scroll ChangeListener Ġ{ Ġ_: ĠNested ScrollView ?, Ġ_: ĠInt , Ġ_: ĠInt , Ġ_: ĠInt , Ġ_: ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Bar Layout . is Hover ed Ġ= Ġnested ScrollView . can Scroll Vert ically (- 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlayout FullScreen ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġflags Ġ= Ġview . system Ui Visibility ĊĠĠĠĠĠĠĠ Ġview . system Ui Visibility Ġ= Ġflags Ġor ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġimage FullScreen ( view : ĠView , Ġfullscreen : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġflags : ĠInt ĊĠĠĠĠĠĠĠ Ġif Ġ( fullscreen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ FULL SCREEN Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ HIDE _ NAV IG ATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= Ġflags Ġor ĠView . SYSTEM _ UI _ FLAG _ IM MER SIVE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ HIDE _ NAV IG ATION Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview . system Ui Visibility Ġ= Ġflags ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Attr Color ( context : ĠContext , Ġattr : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= ĠTyped Value () ĊĠĠĠĠĠĠĠ Ġcontext . theme . resolve Attribute ( attr , Ġvalue , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠContext Compat . getColor ( context , Ġvalue . resourceId ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ(_ : ĠResources . NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcross Fade ( show : ĠView , Ġhide : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠfadeIn Ġ= ĠAnimation Utils . load Animation ( show . context , ĠR . anim . fade _ in ) ĊĠĠĠĠĠĠĠ Ġval Ġfade Out Ġ= ĠAnimation Utils . load Animation ( hide . context , ĠR . anim . fade _ out ) ĊĠĠĠĠĠĠĠ Ġshow . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= Ġobject Ġ: ĠAnimation . Animation Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( animation : ĠAnimation ?) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAnimation ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfade Out . set Animation Listener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( animation : ĠAnimation ?) Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfade Out . set Animation Listener ( listener ) ĊĠĠĠĠĠĠĠ Ġshow . start Animation ( fadeIn ) ĊĠĠĠĠĠĠĠ Ġhide . start Animation ( fadeOut ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfade ( view : ĠView , Ġshow : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġview . animation ?. cancel () ĊĠĠĠĠĠĠĠ Ġif Ġ( show ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfadeIn Ġ= ĠAnimation Utils . load Animation ( view . context , ĠR . anim . fade _ in ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . start Animation ( fadeIn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġfade Out Ġ= ĠAnimation Utils . load Animation ( view . context , ĠR . anim . fade _ out ) ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= Ġobject Ġ: ĠAnimation . Animation Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( animation : ĠAnimation ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAnimation ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfade Out . set Animation Listener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( animation : ĠAnimation ?) Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfade Out . set Animation Listener ( listener ) ĊĠĠĠĠĠĠĠ Ġview . start Animation ( fadeOut ) ĊĠĠĠ Ġ} Ċ }