package Ġcom . yout h . banner . common Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . view binding . View Binding Ċ import Ġcom . google . android . material . color . Material Colors Ċ import Ġcom . google . android . material . transition . platform . Material Container Transform Ċ import Ġcom . google . android . material . transition . platform . Material Container Transform Shared Element Callback Ċ Ċ abstract Ġclass ĠBase View Binding Activity < out ĠT Ġ: ĠView Binding > Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġ_ binding : ĠT Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġget View Binding () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġbinding Ġget () Ġ= Ġ_ binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( should SetUp Container Transform ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRemove Ġthe Ġtransition Ġname Ġto Ġavoid Ġthe Ġsuper Ġclass , ĠDemo Activity , Ġfrom Ġconfiguring Ġthe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwindow Ġwith Ġits Ġown Ġtransition Ġsetup . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . allow Enter Transition Overlap Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransition Name Ġ= Ġintent . getString Extra ( EXTRA _ TRANS ITION _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < View >( android . R . id . content ). transition Name Ġ= Ġtransition Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Enter Shared Element Callback ( Material Container Transform Shared Element Callback ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . shared Element Enter Transition Ġ= Ġbuild Container Transform ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . shared Element Return Transition Ġ= Ġbuild Container Transform ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView (_ binding . root ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Container Transform ( enter ing : ĠBoolean ): ĠMaterial Container Transform Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtransform Ġ= ĠMaterial Container Transform ( this , Ġentering ) ĊĠĠĠĠĠĠĠ Ġtransform . add Target ( android . R . id . content ) ĊĠĠĠĠĠĠĠ Ġtransform . container Color Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Colors . getColor ( findViewById ( android . R . id . content ), ĠR . attr . color On Primary ) ĊĠĠĠĠĠĠĠ Ġtransform . fade Mode Ġ= ĠMaterial Container Transform . FA DE _ MODE _ TH ROUGH ĊĠĠĠĠĠĠĠ Ġreturn Ġtransform ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġshould SetUp Container Transform (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġintent . getString Extra ( EXTRA _ TRANS ITION _ NAME ) Ġ!= Ġnull ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġabstract Ġfun Ġget View Binding (): ĠT ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ TRANS ITION _ NAME Ġ= Ġ" EXTRA _ TRANS ITION _ NAME " ĊĠĠĠ Ġ} Ċ }