package Ġcom . optimizer . tooltip s Ċ Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Xml Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . View Tree Observer Ċ import Ġcom . optimizer . tooltip s . tips . Tip Ċ import Ġjava . util .* Ċ Ċ object ĠT ips Manager Ġ{ ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġshow Tips ( view Group : ĠViewGroup , Ġtips Queue : Ġ() Ġ-> ĠQueue < Tip >) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Group . view Tree Observer . add On Global Layout Listener ( object Ġ: ĠView Tree Observer . On Global Layout Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Global Layout () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Group . view Tree Observer . remove On Global Layout Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Tips Layout ( view Group , Ġtips Queue . invoke ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Tips Layout ( view Group : ĠViewGroup , Ġtips Queue : ĠQueue < Tip >) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġtooltip Layout Ġ= ĠTooltip Layout ( view Group . context ) ĊĠĠĠĠĠĠĠ Ġtooltip Layout . render Tooltip s ( tips Queue ) ĊĠĠĠĠĠĠĠ Ġtooltip Layout . layout Params Ġ= Ġview Group . generate LayoutParams ( fake Attribute Set ( view Group )) ĊĠĠĠĠĠĠĠ Ġview Group . addView ( tooltip Layout ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfake Attribute Set ( view Group : ĠViewGroup ): ĠAttributeSet Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= Ġview Group . getResources (). get Xml ( R . xml . fake _ layout ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparser . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparser . next Tag () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠXml . as Attribute Set ( parser ) ĊĠĠĠ Ġ} Ċ }