package Ġcom . har is . h oul is . mov iem aze . extensions Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . view .* Ċ import Ġandroidx . core . view . Window Insets Compat . Type . ime Ċ Ċ fun ĠView . visible () Ġ{ ĊĠĠĠ Ġis Visible Ġ= Ġtrue Ċ } Ċ Ċ fun ĠView . g one () Ġ{ ĊĠĠĠ Ġis G one Ġ= Ġtrue Ċ } Ċ Ċ fun ĠView . hide I me And Clear Focus () Ġ{ ĊĠĠĠ ĠView Compat . getWindow Insets Controller ( this ) ĊĠĠĠĠĠĠĠ Ġ? . hide ( ime ()) ĊĠĠĠ Ġclear Focus () Ċ } Ċ Ċ fun ĠView . fit To System Windows ( view To Inset : ĠView ) Ġ{ ĊĠĠĠ Ġset On Apply Window Insets Listener Ġ{ Ġ_, Ġin sets Ġ-> ĊĠĠĠĠĠĠĠ Ġview To Inset . update Margins ( top Ġ= Ġin sets . system Window Inset Top ) ĊĠĠĠĠĠĠĠ Ġin sets ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠView . update Margins ( ĊĠĠĠ Ġtop : ĠInt Ġ= ĠmarginTop , ĊĠĠĠ Ġbottom : ĠInt Ġ= ĠmarginBottom , ĊĠĠĠ Ġstart : ĠInt Ġ= Ġmargin Start , ĊĠĠĠ Ġend : ĠInt Ġ= Ġmargin End Ċ ) Ġ{ ĊĠĠĠ Ġval Ġold Lp Ġ= Ġlayout Params Ġas ? ĠViewGroup . Margin LayoutParams Ġ?: Ġreturn ĊĠĠĠ Ġold Lp . let Ġ{ ĊĠĠĠĠĠĠĠ Ġit . top Margin Ġ= Ġtop ĊĠĠĠĠĠĠĠ Ġit . bottom Margin Ġ= Ġbottom ĊĠĠĠĠĠĠĠ Ġit . margin Start Ġ= Ġstart ĊĠĠĠĠĠĠĠ Ġit . margin End Ġ= Ġend ĊĠĠĠ Ġ} Ċ } Ċ