package Ġco . ge ek semp ire . circular popup menu Ċ Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View Tree Observer Ċ import Ġandroid . view . View Tree Observer . On Global Layout Listener Ċ import Ġandroidx . core . graphics . drawable . Drawable Compat Ċ import Ġandroidx . core . view . View Compat ĊĊ Ċ internal Ġfun ĠDrawable . set Tint Compat ( color : ĠInt ) Ġ{ ĊĠĠĠ Ġif Ġ( is L ol lip op ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Tint ( color ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwrapper Drawable Ġ= ĠDrawable Compat . wrap ( this ) ĊĠĠĠĠĠĠĠ ĠDrawable Compat . set Tint List ( wrapper Drawable , ĠColor State List . valueOf ( color )) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ internal Ġfun Ġis L ol lip op () Ġ= ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP Ċ Ċ fun ĠView . on La id Out ( listener : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġon La id Out ( true , Ġlistener ) Ċ } Ċ Ċ /** ĠExec utes Ġthe Ġgiven Ġ[ java . lang . Runnable ] Ġwhen Ġthe Ġview Ġis Ġla id Ġout Ġ Ġ*/ Ċ internal Ġfun ĠView . on La id Out ( remove Listener : ĠBoolean , Ġlistener : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( is La id Out ( this )) Ġ{ ĊĠĠĠĠĠĠĠ Ġlistener () ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġview Tree Observer . add On Global Layout Listener ( object Ġ: ĠOn Global Layout Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Global Layout () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( remove Listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove On Global Layout Listener ( view Tree Observer , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ } Ċ Ċ private Ġfun Ġremove On Global Layout Listener ( observer : ĠView Tree Observer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener : ĠOn Global Layout Listener ?) Ġ{ ĊĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 1 6 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġobserver . remove On Global Layout Listener ( listener ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġobserver . remove Global On Layout Listener ( listener ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** ĠReturns Ġwhether Ġor Ġnot Ġthe Ġview Ġhas Ġbeen Ġla id Ġout Ġ Ġ*/ Ċ private Ġfun ĠView . is La id Out ( view : ĠView ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn ĠView Compat . is La id Out ( view ) Ġ&& Ġview . width Ġ> Ġ 0 Ġ&& Ġview . height Ġ> Ġ 0 Ċ }