package Ġbase . core library Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . pm . Activity Info Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . annotation . Call Super Ċ import Ġbase . core library . domain . toplevel . k get Ċ import Ġcom . ch u cker team . ch u cker . api . Ch u cker Collector Ċ import Ġcom . facebook . ste tho . St eth o Ċ import Ġcom . github . ic aro hs 7 . un ox android arch . Un ox Android Arch Ċ import Ġcom . um ut bey . state views . State Views Builder Ċ import Ġorg . k oin . android . ext . k oin . android Context Ċ import Ġorg . k oin . core . context . start K oin Ċ import Ġorg . k oin . core . module . Module Ċ import Ġorg . k oin . dsl . module Ċ import Ġsplit ties . init . app Ctx Ċ import Ġsplit ties . resources . drawable Ċ import Ġsplit ties . resources . str Ċ import Ġtim ber . log . Tim ber Ċ Ċ abstract Ġclass ĠBase Application Ġ: ĠApplication () Ġ{ ĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ ĠSte tho . initialize With Defaults ( this ) ĊĠĠĠĠĠĠĠ Ġsetup K oin () ĊĠĠĠĠĠĠĠ Ġsetup This Library () ĊĠĠĠĠĠĠĠ Ġinstall Un caught ExceptionHandler () ĊĠĠĠĠĠĠĠ Ġsetup Tim ber () ĊĠĠĠĠĠĠĠ Ġsetup Un ox Android Arch () ĊĠĠĠĠĠĠĠ Ġlock Orientation () ĊĠĠĠĠĠĠĠ Ġsetup State Views ( getState Views Builder ()) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġsetup K oin () Ġ{ ĊĠĠĠĠĠĠĠ Ġstart K oin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Context ( this @ Base Application ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules ( listOf ( module Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠCh u cker Collector ( app Ctx ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ+ ĠonCreate K oin Modules ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup This Library () Ġ{ ĊĠĠĠĠĠĠĠ ĠCore library . log Ġ= Ġ{ Ġtag , Ġmsg Ġ-> ĠTim ber . tag ( tag ). i ("$ msg ") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinstall Un caught ExceptionHandler () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdefault Handler Ġ= ĠThread . getDefault Un caught ExceptionHandler () ĊĠĠĠĠĠĠĠ ĠThread . setDefault Un caught ExceptionHandler Ġ{ Ġthread , Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . tag (" Un caught Exception "). e (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUn caught Ġexception Ġon Ġthread Ġ${ thread . name }: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ throwable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ throwable . stack Trace . join ToString ( separator Ġ= Ġ"\ n ")} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġk get < Ch u cker Collector >(). onError (" Un caught Exception ", Ġthrowable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Handler ?. unc a ught Exception ( thread , Ġthrowable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun ĠonCreate K oin Modules (): ĠList < Module > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( module Ġ{}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Tim ber () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . plant ( Tim ber . Debug Tree ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Un ox Android Arch (): ĠUnit Ġ= ĠUn ox Android Arch . run Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOverride Ġto Ġuse Ġanother Ġorientation ĊĠĠĠĠ Ġ* Ġthroughout Ġthe Ġa pl lication . ĊĠĠĠĠ Ġ* ĠList Ġof Ġoption Ġon Ġ[ Activity Info ]. ĊĠĠĠĠ Ġ* ĠReturn Ġnull Ġto Ġuse Ġuser Ġdefined ĊĠĠĠĠ Ġ* Ġorientation ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun ĠonSelect Orientation (): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠActivity Info . SCREEN _ OR IENTATION _ POR TRA IT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlock Orientation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġorientation Ġ= ĠonSelect Orientation () Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġregister Activity Lifecycle Callbacks ( object Ġ: ĠActivity Lifecycle Callbacks Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Created ( activity : ĠActivity , Ġbundle : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . requested Orientation Ġ= Ġorientation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Started ( activity : ĠActivity ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Res umed ( activity : ĠActivity ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Paused ( activity : ĠActivity ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Stopped ( activity : ĠActivity ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Save InstanceState ( activity : ĠActivity , Ġbundle : ĠBundle ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Destroyed ( activity : ĠActivity ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġsetup State Views ( builder : ĠState Views Builder ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetState Views Builder (): ĠState Views Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠState Views Builder . init (). setState ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= ĠEMPTY _ ADAPTER _ STATE _ TAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġstr ( R . string . nen hum _ item _ car reg ado ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġdrawable ( R . drawable . ic _ search _ gray _ 2 4 dp ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setIcon Size ( 1 2 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEMPTY _ ADAPTER _ STATE _ TAG : ĠString Ġ= Ġ" base _ application _ empty _ adapter " ĊĠĠĠ Ġ} Ċ }