package Ġcom . pr 0 gram m . app . util Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Content Provider Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . content . res . Typed Array Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . graphics . drawable . Inset Drawable Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Looper Ċ import Ġandroid . os . Power Manager Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . View Property Animator Ċ import Ġandroid . widget . Compound Button Ċ import Ġandroid . widget . Seek Bar Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Attr Res Ċ import Ġandroidx . annotation . Color Int Ċ import Ġandroidx . annotation . Color Res Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . appcompat . widget . AppCompat TextView Ċ import Ġandroidx . collection . L ru Cache Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . text . Pre computed Text Compat Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . work . Constraints Ċ import Ġandroidx . work . Work Request Ċ import Ġcom . pr 0 gram m . app .* Ċ import Ġcom . pr 0 gram m . app . delay Ċ import Ġcom . pr 0 gram m . app . ui . views . Compatible TextView Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . flow .* Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjava . io . Closeable Ċ import Ġjava . io . File Ċ import Ġjava . io . InputStream Ċ import Ġjava . lang . ref . Weak Reference Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . Cancellation Exception Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġjava . util . regex . Pattern Ċ import Ġkotlin . contracts . Invocation Kind Ċ import Ġkotlin . contracts . contract Ċ import Ġkotlin . properties . Deleg ates Ċ import Ġkotlin . properties . ReadOnly Property Ċ import Ġkotlin . properties . ReadWrite Property Ċ import Ġkotlin . reflect . K Property Ċ Ċ fun ĠInputStream . read As M uch As Possible ( b : ĠByteArray , Ġoff : ĠInt Ġ= Ġ 0 , Ġlen : ĠInt Ġ= Ġb . size ): ĠInt Ġ{ ĊĠĠĠ Ġif Ġ( len Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Length Ġmust Ġnot Ġbe Ġnegative : Ġ$ len ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġremaining Ġ= Ġlen ĊĠĠĠ Ġwhile Ġ( remaining Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= Ġlen Ġ- Ġremaining ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġread ( b , Ġoff Ġ+ Ġlocation , Ġremaining ) ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġremaining Ġ-= Ġcount ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġlen Ġ- Ġremaining Ċ } Ċ Ċ // Ġscratch Ġbuffer Ġfor Ġskipping Ċ private Ġval Ġskip Scratch Buffer Ġ= ĠByteArray ( 1 6 Ġ* Ġ 1 0 2 4 ) Ċ Ċ fun ĠInputStream . skip Simple ( len : ĠLong ): ĠLong Ġ{ ĊĠĠĠ Ġif Ġ( len Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Length Ġmust Ġnot Ġbe Ġnegative : Ġ$ len ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġtry Ġto Ġquickly Ġskip Ġusing Ġ' skip ' ĊĠĠĠ Ġval Ġskipped Ġ= Ġskip ( len ) ĊĠĠĠ Ġif Ġ( skipped Ġ== Ġlen ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġskipped ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġread Ġthe Ġrest Ġinto Ġa Ġscratch Ġbuffer Ġto Ġskip Ġthe Ġbytes Ġwe Ġwanted Ġto Ġskip ĊĠĠĠ Ġvar Ġremaining Ġ= Ġlen Ġ- Ġskipped ĊĠĠĠ Ġwhile Ġ( remaining Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġread ( skip Scratch Buffer , Ġ 0 , Ġremaining . coerce At Most ( skip Scratch Buffer . size . to Long ()). toInt ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġremaining Ġ-= Ġcount ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġlen Ġ- Ġremaining Ċ } Ċ Ċ inline Ġfun Ġread Stream ( stream : ĠInputStream , ĠbufferSize : ĠInt Ġ= Ġ 1 6 Ġ* Ġ 1 0 2 4 , Ġfn : Ġ( ByteArray , ĠInt ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġval Ġbuffer Ġ= ĠByteArray ( buffer Size ) ĊĊĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġread Ġ= Ġstream . read As M uch As Possible ( buffer ) ĊĠĠĠĠĠĠĠ Ġif Ġ( read Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfn ( buffer , Ġread ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< R > ĠPower Manager . Wake Lock . use ( time Value : ĠLong , Ġtime Unit : ĠTimeUnit , Ġfn : Ġ() Ġ-> ĠR ): ĠR Ġ{ ĊĠĠĠ Ġacquire ( time Unit . to Millis ( time Value )) ĊĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfn () ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Catch ing Ġ{ Ġrelease () Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< R > ĠCursor . map ToList ( fn : ĠCursor . () Ġ-> ĠR ): ĠList < R > Ġ{ ĊĠĠĠ Ġcontract Ġ{ ĊĠĠĠĠĠĠĠ Ġcalls In Place ( fn , ĠInvocation Kind . UNKNOWN ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġvalues Ġ= Ġmutable ListOf < R >() ĊĠĠĠ Ġwhile Ġ( moveTo Next ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġvalues . add ( fn ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġvalues Ċ } Ċ Ċ inline Ġfun Ġ< R > ĠCursor . forEach ( fn : ĠCursor . () Ġ-> ĠR ) Ġ{ ĊĠĠĠ Ġreturn Ġuse Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ( moveTo Next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfn () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< R > ĠCursor . use ( fn : Ġ( Cursor ) Ġ-> ĠR ): ĠR Ġ{ ĊĠĠĠ Ġcontract Ġ{ ĊĠĠĠĠĠĠĠ Ġcalls In Place ( fn , ĠInvocation Kind . EX ACT LY _ ON CE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfn ( this ) ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġclose () ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< R > ĠTyped Array . use ( block : Ġ( Typed Array ) Ġ-> ĠR ): ĠR Ġ{ ĊĠĠĠ Ġcontract Ġ{ ĊĠĠĠĠĠĠĠ Ġcalls In Place ( block , ĠInvocation Kind . EX ACT LY _ ON CE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġblock ( this ) ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . recycle () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠarrayOf Strings ( var arg Ġargs : ĠAny ): ĠArray < String > Ġ{ ĊĠĠĠ Ġreturn ĠArray ( args . size ) Ġ{ Ġargs [ it ]. toString () Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< T > Ġobserve Change ( def : ĠT , Ġcross inline ĠonChange : Ġ() Ġ-> ĠUnit ): ĠRead Write Property < Any ?, ĠT > Ġ{ ĊĠĠĠ Ġreturn ĠDeleg ates . observable ( def ) Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> ĠonChange () Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< T > Ġobserve Change Ex ( def : ĠT , Ġcross inline ĠonChange : Ġ( oldValue : ĠT , ĠnewValue : ĠT ) Ġ-> ĠUnit ): ĠRead Write Property < Any ?, ĠT > Ġ{ ĊĠĠĠ Ġreturn ĠDeleg ates . observable ( def ) Ġ{ Ġ_, Ġold , Ġnew Ġ-> ĠonChange ( old , Ġnew ) Ġ} Ċ } Ċ Ċ val ĠView . layout Inflater : ĠLayoutInflater Ġget () Ġ= ĠLayoutInflater . from ( context ) Ċ Ċ fun ĠLayoutInflater . inflate (@ Layout Res Ġid : ĠInt ): ĠView Ġ= Ġinf late ( id , Ġnull ) Ċ Ċ fun Ġ< V Ġ: ĠView > ĠViewGroup . inflate Detached Child (@ Layout Res Ġres : ĠInt ): ĠV Ġ{ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġreturn Ġlayout Inflater . inflate ( res , Ġthis , Ġfalse ) Ġas ĠV Ċ } Ċ Ċ interface ĠCached Value < out ĠT > Ġ{ ĊĠĠĠ Ġval Ġvalue : ĠT ĊĊĠĠĠ Ġfun Ġinvalidate () Ċ } Ċ Ċ object ĠEmpty Cache Ċ Ċ fun Ġ< T > Ġcached ( fn : Ġ() Ġ-> ĠT ): ĠCached Value < T > Ġ= Ġobject Ġ: ĠCached Value < T > Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġthe Value : ĠAny ? Ġ= ĠEmpty Cache ĊĊĠĠĠ Ġoverride Ġval Ġvalue : ĠT ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( the Value Ġ=== ĠEmpty Cache ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe Value Ġ= Ġfn () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthe Value Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinvalidate () Ġ{ ĊĠĠĠĠĠĠĠ Ġthe Value Ġ= ĠEmpty Cache ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠView > ĠActivity . find ( id : ĠInt ): ĠT Ġ{ ĊĠĠĠ Ġreturn ĠfindViewById ( id ) Ġ?: Ġthrow ĠResources . NotFoundException ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" View Ġ${ resources . getResource Name ( id )} Ġnot Ġfound ") Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠView > ĠView . find ( id : ĠInt ): ĠT Ġ{ ĊĠĠĠ Ġreturn ĠfindViewById ( id ) Ġ?: Ġthrow ĠResources . NotFoundException ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" View Ġ${ resources . getResource Name ( id )} Ġnot Ġfound ") Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠView > ĠDialog . find ( id : ĠInt ): ĠT Ġ{ ĊĠĠĠ Ġreturn ĠfindViewById ( id ) Ġ?: Ġthrow ĠResources . NotFoundException ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" View Ġ${ this . context . resources . getResource Name ( id )} Ġnot Ġfound ") Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠView > ĠView . find Optional ( id : ĠInt ): ĠT ? Ġ{ ĊĠĠĠ Ġreturn ĠfindViewById ( id ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠView > ĠRecyclerView . ViewHolder . find ( id : ĠInt ): ĠT Ġ{ ĊĠĠĠ Ġreturn ĠitemView . findViewById ( id ) Ġ?: Ġthrow ĠResources . NotFoundException ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" View Ġ${ item View . resources . getResource Name ( id )} Ġnot Ġfound ") Ċ } Ċ Ċ inline Ġfun ĠCanvas . save ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġval Ġcount Ġ= Ġsave () ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġrestore To Count ( count ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġfun ĠCharSequence ?. matches ( pattern : ĠPattern ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġthis Ġ!= Ġnull Ġ&& Ġpattern . matcher ( this ). matches () Ċ } Ċ Ċ inline Ġfun Ġbundle ( builder : ĠBundle . () Ġ-> ĠUnit ): ĠBundle Ġ{ ĊĠĠĠ Ġval Ġb Ġ= ĠBundle () ĊĠĠĠ Ġb . builder () ĊĠĠĠ Ġreturn Ġb Ċ } Ċ Ċ inline Ġfun Ġ< F Ġ: ĠFragment > ĠF . arguments ( builder : ĠBundle . () Ġ-> ĠUnit ): ĠF Ġ{ ĊĠĠĠ Ġ( arguments Ġ?: ĠBundle (). also Ġ{ Ġarguments Ġ= Ġit Ġ}). builder () ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ inline Ġfun Ġ< K Ġ: ĠAny , ĠV Ġ: ĠAny > ĠL ru Cache < K , ĠV >. get Or Put ( key : ĠK , Ġcreator : Ġ( K ) Ġ-> ĠV ): ĠV Ġ{ ĊĠĠĠ Ġreturn Ġget ( key ) Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġcreator ( key ) ĊĠĠĠĠĠĠĠ Ġput ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġ< K , ĠV > Ġl ru Cache ( maxSize : ĠInt , Ġcreator : Ġ( K ) Ġ-> ĠV ?): ĠL ru Cache < K , ĠV > Ġ{ ĊĠĠĠ Ġreturn Ġobject Ġ: ĠL ru Cache < K , ĠV >( maxSize ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate ( key : ĠK ): ĠV ? Ġ= Ġcreator ( key ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠView ?. remove From Parent () Ġ{ ĊĠĠĠ Ġval Ġparent Ġ= Ġthis ?. parent Ġas ? ĠViewGroup ĊĠĠĠ Ġparent ?. remove View ( this ) Ċ } Ċ Ċ fun Ġ< T > Ġweak ref ( value : ĠT ?): ĠRead Write Property < Any ?, ĠT ?> Ġ= Ġobject Ġ: ĠRead Write Property < Any ?, ĠT ?> Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġref : ĠWeak Reference < T ?> Ġ= ĠWeak Reference ( value ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠAny ?, Ġproperty : ĠK Property < *> ): ĠT ? Ġ= Ġref . get () ĊĊĠĠĠ Ġoverride Ġfun ĠsetValue ( this Ref : ĠAny ?, Ġproperty : ĠK Property <* >, Ġvalue : ĠT ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġref . clear () ĊĠĠĠĠĠĠĠ Ġref Ġ= ĠWeak Reference ( value ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġdebug Only ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġdebug Crash (): ĠUnit Ġ{ ĊĠĠĠ Ġdebug Crash ( Unit ) Ċ } Ċ Ċ fun Ġ< T > Ġdebug Crash ( value : ĠT ): ĠT Ġ{ ĊĠĠĠ Ġdebug Only Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠAssertionError (" Cr ashing Ġin Ġdebug Ġmode Ġonly ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġvalue Ċ } Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ @ Color Int Ċ inline Ġfun ĠContext . getColor Compat (@ Color Res Ġid : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġreturn ĠContext Compat . getColor ( this , Ġid ) Ċ } Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġfun ĠContext . dp ( dp Value : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠ Ġreturn Ġdp Value Ġ* Ġresources . display Metrics . density Ċ } Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġfun ĠContext . dp ( dp Value : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġdp ( dp Value . toFloat ()). toInt () Ċ } Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġfun ĠContext . sp ( sp Value : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠ Ġreturn Ġsp Value Ġ* Ġresources . display Metrics . scaled Density Ċ } Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġfun ĠContext . sp ( sp Value : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġsp ( sp Value . toFloat ()). toInt () Ċ } Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġfun ĠView . dp ( dp Value : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠ Ġreturn Ġdp Value Ġ* Ġresources . display Metrics . density Ċ } Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġfun ĠView . dp ( dp Value : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġdp ( dp Value . toFloat ()). toInt () Ċ } Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġfun ĠView . sp ( sp Value : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠ Ġreturn Ġsp Value Ġ* Ġresources . display Metrics . scaled Density Ċ } Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġfun ĠView . sp ( sp Value : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġsp ( sp Value . toFloat ()). toInt () Ċ } Ċ Ċ fun ĠContext . get Styled ResourceId (@ Attr Res Ġid : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġtv Ġ= ĠTyped Value () ĊĠĠĠ Ġtheme . resolve Attribute ( id , Ġtv , Ġtrue ) ĊĠĠĠ Ġreturn Ġtv . resourceId Ċ } Ċ Ċ @ Color Int Ċ fun ĠContext . get Styled Color (@ Attr Res Ġid : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġtv Ġ= ĠTyped Value () ĊĠĠĠ Ġtheme . resolve Attribute ( id , Ġtv , Ġtrue ) ĊĠĠĠ Ġreturn Ġtv . data Ċ } Ċ Ċ /** Ċ Ġ* ĠConverts Ġa Ġboolean Ġto Ġeither Ġ' one ' Ġor Ġ' zero '. Ċ Ġ*/ Ċ fun ĠBoolean . toInt (): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( this ) Ġ 1 Ġelse Ġ 0 Ċ } Ċ Ċ inline Ġfun Ġcatch All ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĊĠĠĠ Ġ} Ġcatch Ġ( err : ĠC ancellation Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow Ġerr ĊĊĠĠĠ Ġ} Ġcatch Ġ( err : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAndroid Utility . log To Crash ly t ics ( err ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun ĠAny . ignore All Exceptions ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠ Ġ} Ġcatch Ġ( err : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġi Ġdon 't Ġcare Ġon Ġproduction Ġ- Ġbut Ġgive Ġme Ġsome Ġnice Ġlogging Ġon Ġtest Ġ:) ĊĠĠĠĠĠĠĠ Ġdebug Only Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger ( java Class . simple Name ). warn ( err ) Ġ{ Ġ" Ign oring Ġerror " Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠContext . can Start Intent ( intent : ĠIntent ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġpackage Manager . resolve Activity ( intent , Ġ 0 ) Ġ!= Ġnull Ċ } Ċ Ċ class ĠLong Value Holder ( private Ġvar Ġvalue : ĠLong ) Ġ{ ĊĠĠĠ Ġfun Ġupdate ( newValue : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchanged Ġ= Ġvalue Ġ!= ĠnewValue ĊĠĠĠĠĠĠĠ Ġvalue Ġ= ĠnewValue ĊĠĠĠĠĠĠĠ Ġreturn Ġchanged ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< R Ġ: ĠAny > Ġunless ( b : ĠBoolean , Ġfn : Ġ() Ġ-> ĠR ?): ĠR ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ(! b ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfn () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< T Ġ: ĠAny ?> ĠT . with If ( b : ĠBoolean , Ġfn : ĠT . () Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( b ) Ġthis . fn () Ġelse Ġthis Ċ } Ċ Ċ val ĠThrowable . root Cause ĊĠĠĠ Ġget (): ĠThrowable Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġthis . cause ĊĠĠĠĠĠĠĠ Ġif Ġ( c Ġ=== Ġnull Ġ|| Ġc Ġ=== Ġthis ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġc . root Cause ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ val ĠThrowable . ca usal Chain ĊĠĠĠ Ġget (): ĠList < Throwable > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchain Ġ= Ġmutable ListOf < Throwable >() ĊĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchain . add ( current ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcause Ġ= Ġcurrent . cause ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cause Ġ=== Ġnull Ġ|| Ġcause Ġ=== Ġcurrent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Ġ= Ġcause ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġchain ĊĠĠĠ Ġ} Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠThrowable > ĠList < Throwable >. contains Type (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġany Ġ{ Ġit Ġis ĠT Ġ} Ċ } Ċ Ċ val ĠByte . unsigned : ĠInt Ġget () Ġ= Ġthis . toInt () Ġand Ġ 0 xff ĊĊ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠEnum < T >> Ġtry Enum ValueOf ( key : ĠString ?): ĠT ? Ġ{ ĊĠĠĠ Ġif Ġ( key Ġ== Ġnull ) ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġenum ValueOf < T >( key ) ĊĠĠĠ Ġ} Ġcatch Ġ( err : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġ< T > Ġthread Local ( supplier : Ġ() Ġ-> ĠT ): ĠReadOnly Property < Any , ĠT > Ġ{ ĊĠĠĠ Ġreturn Ġobject Ġ: ĠThread Local < T >(), ĠReadOnly Property < Any , ĠT > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinitial Value (): ĠT Ġ= Ġsupplier () ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠAny , Ġproperty : ĠK Property < *> ): ĠT Ġ= Ġget () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException (" No Ġvalue Ġin Ġthread Ġlocal .") ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< T Ġ: ĠAny > ĠT . trace ( msg : Ġ() Ġ-> ĠString ) Ġ{ ĊĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġtrace Type ( this ) ĊĠĠĠĠĠĠĠ ĠLogger (" Trace "). debug Ġ{ Ġ"$ type .${ msg () }" Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< T Ġ: ĠAny , ĠR Ġ: ĠAny ?> ĠT . trace ( msg : ĠString , Ġblock : Ġ() Ġ-> ĠR ): ĠR Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġtrace Type ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġwatch Ġ= ĠStop watch () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger (" Trace "). debug Ġ{ Ġ"$ type .$ msg Ġtook Ġ$ watch " Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġtrace Type ( obj : ĠAny ): ĠString Ġ{ ĊĠĠĠ Ġ// Ġjump Ġto Ġparent Ġclass Ġif Ġinside Ġa Ġcompanion Ġobject . ĊĠĠĠ Ġvar Ġclazz : ĠClass < *> Ġ= Ġobj . java Class ĊĠĠĠ Ġif Ġ( clazz . direct Name Ġ== Ġ" Companion ") Ġ{ ĊĠĠĠĠĠĠĠ Ġclazz Ġ= Ġclazz . enc lo sing Class Ġ?: Ġclazz ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġid Ġ= ĠInteger . to HexString ( System . identity HashCode ( obj )) ĊĠĠĠ Ġval Ġtype Ġ= Ġclazz . direct Name ĊĠĠĠ Ġreturn Ġ"$ type ($ id )" Ċ } Ċ Ċ fun ĠClose able ?. close Quiet ly () Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġthis ?. close () ĊĠĠĠ Ġ} Ġcatch Ġ( err : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLogger (" Close Quiet ly "). warn (" Ign oring Ġexception Ġduring Ġclose ", Ġerr ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġfun ĠSharedPreferences . getString OrNull ( key : ĠString ): ĠString ? Ġ{ ĊĠĠĠ Ġreturn ĠgetString ( key , Ġnull ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠE Ġ: ĠEnum < E >> ĠSharedPreferences . get EnumValue ( name : ĠString , Ġdefault : ĠE ): ĠE Ġ{ ĊĠĠĠ Ġreturn Ġtry Enum ValueOf < E >( getString OrNull ( name )) Ġ?: Ġdefault Ċ } Ċ Ċ fun ĠBundle . getString OrThrow ( name : ĠString ): ĠString Ġ{ ĊĠĠĠ Ġreturn ĠgetString ( name ) Ġ?: Ġthrow ĠIllegalArgumentException (" missing Ġvalue Ġin Ġbundle : Ġ'$ name '") Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠActivity > Ġactivity Intent ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , Ġuri : ĠUri ? Ġ= Ġnull , Ġconfigure : ĠIntent . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠIntent Ġ{ ĊĊĠĠĠ Ġreturn ĠIntent ( context , ĠT :: class . java ). apply Ġ{ Ġthis . data Ġ= Ġuri Ġ}. apply ( configure ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠActivity > ĠContext . startActivity ( configure Intent : Ġ( Intent ) Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠ ĠstartActivity ( Intent ( this , ĠT :: class . java ). also ( configure Intent )) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠActivity > ĠActivity . startActivity ( request Code : ĠInt Ġ= Ġ- 1 , Ġconfigure Intent : Ġ( Intent ) Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠT :: class . java ). also ( configure Intent ) ĊĠĠĠ ĠstartActivity For Result ( intent , Ġrequest Code ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠActivity > ĠFragment . startActivity ( configure Intent : Ġ( Intent ) Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠ ĠstartActivity ( Intent ( require Context (), ĠT :: class . java ). also ( configure Intent )) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠActivity > ĠFragment . startActivity ( request Code : ĠInt Ġ= Ġ- 1 , Ġconfigure Intent : Ġ( Intent ) Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( require Context (), ĠT :: class . java ). also ( configure Intent ) ĊĠĠĠ ĠstartActivity For Result ( intent , Ġrequest Code ) Ċ } Ċ Ċ fun ĠContent Provider . require Context (): ĠContext Ġ{ ĊĠĠĠ Ġreturn Ġcontext Ġ?: Ġthrow ĠIllegalStateException (" context Ġnot Ġset Ġon ĠContent Provider ") Ċ } Ċ Ċ val ĠClass <* >. direct Name : ĠString ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġname . take Last While Ġ{ Ġit Ġ!= Ġ'.' Ġ}. replace ('$ ', Ġ'.') ĊĠĠĠ Ġ} Ċ Ċ fun ĠTextView . add TextChanged Listener ( listener : Ġ( CharSequence ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġadd TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ( s ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ } Ċ Ċ fun ĠSeek Bar . setOn Progress Changed ( listener : Ġ( value : ĠInt , Ġfrom User : ĠBoolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġthis . setOn Seek Bar ChangeListener ( object Ġ: ĠSeek Bar . On Seek Bar ChangeListener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( seek Bar : ĠSeek Bar , Ġprogress : ĠInt , Ġfrom User : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ( progress , Ġfrom User ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonStart Tracking Touch ( seek Bar : ĠSeek Bar ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Stop Tracking Touch ( seek Bar : ĠSeek Bar ) Ġ{} ĊĠĠĠ Ġ}) Ċ } Ċ Ċ fun ĠView . add On Attach State ChangeListener ( listener : Ġ( is Attach : ĠBoolean ) Ġ-> ĠUnit ): ĠView . On Attach State ChangeListener Ġ{ ĊĠĠĠ Ġval Ġstate ChangeListener Ġ= Ġobject Ġ: ĠView . On Attach State ChangeListener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon View Attached To Window ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon View Detached From Window ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġadd On Attach State ChangeListener ( state ChangeListener ) ĊĊĠĠĠ Ġreturn Ġstate ChangeListener Ċ } Ċ Ċ fun ĠView . add On Attach Listener ( listener : Ġ() Ġ-> ĠUnit ): ĠView . On Attach State ChangeListener Ġ{ ĊĠĠĠ Ġreturn Ġadd On Attach State ChangeListener Ġ{ Ġis Attach Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( is Attach ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠView . add On Detach Listener ( listener : Ġ() Ġ-> ĠUnit ): ĠView . On Attach State ChangeListener Ġ{ ĊĠĠĠ Ġreturn Ġadd On Attach State ChangeListener Ġ{ Ġis Attach Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Attach ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun Ġrun Every ( period : ĠDuration , Ġinitial : ĠDuration Ġ= ĠDuration . Zero , Ġtask : Ġsuspend Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( initial . in Millis Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelay ( initial ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( err : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Utility . log To Crash ly t ics ( err ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdelay ( period ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun Ġdelay ( duration : ĠDuration ) Ġ{ ĊĠĠĠ Ġkotlinx . coroutines . delay ( duration . in Millis ) Ċ } Ċ Ċ fun ĠFile . update Timestamp (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġset LastModified ( System . currentTimeMillis ()) Ċ } Ċ Ċ val ĠUri . is Local File Ġget (): ĠBoolean Ġ= Ġscheme Ġ== Ġ" file " Ċ Ċ fun ĠAppCompat TextView . setText Future ( text : ĠCharSequence ) Ġ{ ĊĠĠĠ Ġset Text Future ( Pre computed Text Compat . getText Future ( text , Ġtext Metrics Params Compat , Ġnull )) Ċ } Ċ Ċ fun ĠTextView . setText Future ( text : ĠCharSequence ) Ġ{ ĊĠĠĠ Ġif Ġ( this Ġis ĠCompat ible TextView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Text Future ( text ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠLogger (" TextView "). warn Ġ{ Ġ" setText Future Ġcalled Ġon Ġnon - compatible Ġtext Ġview ." Ġ} ĊĠĠĠĠĠĠĠ Ġset Text ( text ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠSharedPreferences . get JSON ( key : ĠString ): ĠT ? Ġ{ ĊĠĠĠ Ġval Ġencoded Ġ= ĠgetString OrNull ( key ) Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġreturn ĠM oshi Instance . adapter < T >(). fromJson ( encoded ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠSharedPreferences . Editor . set Object ( key : ĠString , Ġvalue : ĠT ?): ĠSharedPreferences . Editor Ġ{ ĊĠĠĠ Ġif Ġ( value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġremove ( key ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġput String ( key , ĠM oshi Instance . adapter < T >(). toJson ( value )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ /** Ċ Ġ* ĠMit igate Ġcrashes Ġin Ġolder Ġandroid Ġversions Ġthat Ġare Ġrelying Ġon ĠAlarm Manager . Ċ Ġ* ĠChanging Ġa Ġconstraint Ġleads Ġto Ġa Ġcrash Ġof Ġthe Ġapplication . Ċ Ġ*/ Ċ fun Ġ< W Ġ: ĠWork Request , ĠB Ġ: ĠWork Request . Builder < B , ĠW >> ĠB . set Constraints Compat ( constraints : ĠConstraints ): ĠB Ġ{ ĊĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ<= ĠBuild . VERSION _ CODES . LO L LI POP _ MR 1 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĊĠĠĠ Ġreturn Ġset Constraints ( constraints ) Ċ } Ċ Ċ fun ĠDialog Fragment . maybe Show ( fm : ĠFragment Manager ?, Ġtag : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġif Ġ( fm Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow ( fm , Ġtag ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< T > ĠBoolean . then ( block : Ġ() Ġ-> ĠT ): ĠT ? Ġ= Ġif Ġ( this ) Ġblock () Ġelse Ġnull ĊĊ Ċ fun ĠDrawable . with Insets ( left : ĠInt Ġ= Ġ 0 , Ġtop : ĠInt Ġ= Ġ 0 , Ġright : ĠInt Ġ= Ġ 0 , Ġbottom : ĠInt Ġ= Ġ 0 ): ĠIn set Drawable Ġ{ ĊĠĠĠ Ġreturn ĠIn set Drawable ( this , Ġleft , Ġtop , Ġright , Ġbottom ) Ċ } Ċ Ċ fun ĠNumber . format Size () Ġ= Ġ"% 1 . 3 f kb ". format ( Locale . ROOT , Ġto Double () Ġ/ Ġ 1 0 2 4 . 0 ) ĊĊ Ċ val Ġis Currently Testing : ĠBoolean Ġby Ġlazy Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠClass . forName (" android x . test . espress o . Esp ress o ") ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠClass NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġskip In Testing ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( is Currently Testing ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġblock () Ċ } Ċ Ċ inline Ġfun Ġui Test Only ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( is Currently Testing ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġblock () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġ< T > ĠMutable LiveData < T >. post Or SetValue ( value : ĠT ) Ġ{ ĊĠĠĠ Ġif Ġ( Looper . get Main Looper (). thread Ġ=== ĠThread . currentThread ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġvalue ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . post Value ( value ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠString ?. equalsIgnoreCase ( other : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġequals ( other , Ġignore Case Ġ= Ġtrue ) Ċ } Ċ Ċ val ĠView . parent View : ĠViewGroup ? ĊĠĠĠ Ġget () Ġ= Ġparent Ġas ? ĠViewGroup Ċ Ċ fun ĠView . require Parent View (): ĠViewGroup Ġ= Ġparent Ġas ĠViewGroup Ċ Ċ fun ĠCompound Button . setOn Checked ChangeListener With Initial ( checked State : ĠBoolean , Ġlistener : Ġ( isChecked : ĠBoolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġset On Checked ChangeListener ( null ) ĊĠĠĠ Ġis Checked Ġ= Ġchecked State ĊĊĠĠĠ Ġset On Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> Ġlistener ( isChecked ) Ġ} Ċ } Ċ Ċ fun Ġ< T > ĠFlow < T >. to State Flow ( context : ĠCor outine Scope , Ġinitial Value : ĠT ): ĠState Flow < T > Ġ{ ĊĠĠĠ Ġval Ġstate Ġ= ĠMutable State Flow < T >( initial Value ) ĊĊĠĠĠ Ġcontext . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġcollect Ġ{ Ġvalue Ġ-> Ġstate . value Ġ= Ġvalue Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġstate Ċ } ĊĊ Ċ fun Ġticker ( interval : ĠDuration , Ġdelay : ĠDuration Ġ= ĠDuration ( 0 )): ĠFlow < Int > Ġ{ ĊĠĠĠ Ġreturn Ġflow Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġidx Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġdelay ( delay ) ĊĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( idx ++) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( interval ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ type alias ĠListener < T > Ġ= Ġ( value : ĠT ) Ġ-> ĠUnit Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġoperator Ġfun Ġ< T > ĠListener < T > ?. invoke ( value : ĠT ) Ġ{ ĊĠĠĠ Ġthis ?. invoke ( value ) Ċ } Ċ type alias ĠOn ClickListener Ġ= Ġ() Ġ-> ĠUnit Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġoperator Ġfun ĠOn ClickListener ?. invoke () Ġ{ ĊĠĠĠ Ġthis ?. invoke () Ċ } ĊĊ Ċ type alias ĠOn View ClickListener Ġ= ĠListener < View > ĊĊ Ċ fun ĠIterable < String >. contains IgnoreCase ( text : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġany Ġ{ Ġit . equalsIgnoreCase ( text ) Ġ} Ċ } Ċ Ċ fun ĠAny . identity HashCode (): ĠInt Ġ{ ĊĠĠĠ Ġreturn ĠSystem . identity HashCode ( this ) Ċ } Ċ Ċ fun ĠView Property Animator . scale ( amount : ĠFloat ): ĠView Property Animator Ġ{ ĊĠĠĠ Ġreturn Ġscale X ( amount ). scale Y ( amount ) Ċ } Ċ Ċ fun ĠFragment . hide Soft Keyboard () Ġ{ ĊĠĠĠ Ġactivity ?. hide Soft Keyboard () Ċ } Ċ Ċ fun ĠDialog Fragment . hide Soft Keyboard () Ġ{ ĊĠĠĠ ĠAndroid Utility . hide Soft Keyboard ( dialog ?. window ?. decor View ?. root View ) Ċ } Ċ Ċ fun ĠActivity . hide Soft Keyboard () Ġ{ ĊĠĠĠ ĠAndroid Utility . hide Soft Keyboard ( window ?. decor View ?. root View ) Ċ } Ċ Ċ fun ĠFragment Activity . show ( dialog : ĠDialog Fragment , Ġtag : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġdialog . show Now ( support FragmentManager , Ġtag ) Ċ } Ċ Ċ fun ĠFragment . show ( dialog : ĠDialog Fragment , Ġtag : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġdialog . show Now ( child FragmentManager , Ġtag ) Ċ } Ċ