package Ġcom . jb kal it . movies . presentation . ext Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . animation . Translate Animation Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ Ċ fun ĠView . setVisible () Ġ{ ĊĠĠĠ Ġthis . visibility Ġ= ĠView . VISIBLE Ċ } Ċ Ċ fun ĠView . show If ( condition : ĠBoolean ) Ġ{ ĊĠĠĠ Ġif Ġ( condition ) Ġset Visible () ĊĠĠĠ Ġelse Ġset G one () Ċ } Ċ Ċ fun ĠView . set G one () Ġ{ ĊĠĠĠ Ġthis . visibility Ġ= ĠView . GONE Ċ } Ċ Ċ fun ĠView . show Slide Up () Ġ{ ĊĠĠĠ Ġset Visible () ĊĠĠĠ Ġval Ġbottom Margin Ġ= Ġ( layout Params Ġas ĠViewGroup . Margin LayoutParams ). bottom Margin ĊĠĠĠ Ġstart Animation ( Translate Animation ( 0 f , Ġ 0 f , Ġheight . toFloat () Ġ+ Ġbottom Margin . toFloat (), Ġ 0 f ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġduration Ġ= Ġ 3 0 0 ĊĠĠĠĠĠĠĠ Ġfill After Ġ= Ġtrue ĊĠĠĠ Ġ}) Ċ } Ċ Ċ fun ĠView . hide Slide Down () Ġ{ ĊĠĠĠ Ġif Ġ( this . visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbottom Margin Ġ= Ġ( layout Params Ġas ĠViewGroup . Margin LayoutParams ). bottom Margin ĊĠĠĠĠĠĠĠ Ġstart Animation ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTranslate Animation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight . toFloat () Ġ+ Ġbottom Margin . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= Ġ 3 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill After Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġset G one () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠView . show Snackbar ( ĊĠĠĠ Ġmessage : ĠString Ġ= Ġ"", ĊĠĠĠ Ġaction Message : ĠString Ġ= Ġ"", ĊĠĠĠ Ġanchor View : ĠView ? Ġ= Ġnull , ĊĠĠĠ Ġlength : ĠInt Ġ= ĠSn ackbar . LENGTH _ LONG , ĊĠĠĠ Ġaction : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull Ċ ): ĠSn ackbar Ġ{ ĊĠĠĠ Ġval Ġsn ackbar Ġ= ĠSn ackbar . make ( this , Ġmessage , Ġlength ) ĊĠĠĠ Ġif Ġ( action Ġ!= Ġnull ) Ġsn ackbar . setAction ( action Message ) Ġ{ Ġaction . invoke () Ġ} ĊĠĠĠ Ġif Ġ( anchor View Ġ!= Ġnull ) Ġsn ackbar . anchor View Ġ= Ġanchor View ĊĠĠĠ Ġsn ackbar . show () ĊĠĠĠ Ġreturn Ġsn ackbar Ċ } Ċ