package Ġcom . example . custom sn ackbar . chef Ċ Ċ import Ġandroid . animation . Animator Set Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . view . animation . Over shoot Interpolator Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġcom . example . custom sn ackbar . R Ċ import Ġcom . google . android . material . sn ackbar . ContentView Callback Ċ Ċ class ĠChef Snackbar View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠConstraint Layout ( context , Ġattrs , Ġdef Style Attr ), ĠContent View Callback Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġchef Image : ĠImageView ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠView . inflate ( context , ĠR . layout . view _ sn ackbar _ chef , Ġthis ) ĊĠĠĠĠĠĠĠ Ġclip To Padding Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġthis . chef Image Ġ= ĠfindViewById ( R . id . chef _ image ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġanimate Content In ( delay : ĠInt , Ġduration : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscale X Ġ= ĠObject Animator . of Float ( chef Image , ĠView . SCALE _ X , Ġ 0 f , Ġ 1 f ) ĊĠĠĠĠĠĠĠ Ġval Ġscale Y Ġ= ĠObject Animator . of Float ( chef Image , ĠView . SCALE _ Y , Ġ 0 f , Ġ 1 f ) ĊĠĠĠĠĠĠĠ Ġval Ġanim ator Set Ġ= ĠAn imator Set (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterpol ator Ġ= ĠOver shoot Interpolator () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Duration ( 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplay To gether ( scale X , Ġscale Y ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġanim ator Set . start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġanimate Content Out ( delay : ĠInt , Ġduration : ĠInt ) Ġ{ ĊĠĠĠ Ġ} Ċ }