package Ġcom . sn or l ax . sn or l ax . utils Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . animation . Alpha Animation Ċ Ċ fun ĠView . fadeIn ( do On Start : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull , Ġdo On End : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġval ĠfadeIn Ġ= ĠAlpha Animation ( 0 f , Ġ 1 f ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġduration Ġ= Ġ 2 0 0 Ċ // ĠĠĠĠĠĠĠ Ġset Animation Listener ( object Ġ: ĠAnimation . Animation Listener Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( animation : ĠAnimation ?) Ġ{} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAnimation ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo On End ?. invoke () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( animation : ĠAnimation ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo On Start ?. invoke () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġstart Animation ( fadeIn ) Ċ } Ċ Ċ fun ĠView . fadeOut ( do On Start : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull , Ġdo On End : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġval Ġfade Out Ġ= ĠAlpha Animation ( 1 f , Ġ 0 f ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġduration Ġ= Ġ 2 0 0 Ċ // ĠĠĠĠĠĠĠ Ġset Animation Listener ( object Ġ: ĠAnimation . Animation Listener Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( animation : ĠAnimation ?) Ġ{} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation : ĠAnimation ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo On End ?. invoke () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( animation : ĠAnimation ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo On Start ?. invoke () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġstart Animation ( fadeOut ) Ċ }