package Ġme . sh ou h eng . uix . widget . dialog . footer Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroidx . view binding . View Binding Ċ import Ġme . sh ou h eng . uix . widget . utils . Dialog Utils Ċ import Ġjava . lang . reflect . Parameterized Type Ċ Ċ abstract Ġclass ĠView Binding Dialog Footer < T Ġ: ĠView Binding > Ġ: ĠID ialog Footer Ġ{ ĊĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġbinding : ĠT ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġoverride Ġfun Ġget View ( ctx : ĠContext ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvb Class : ĠClass < T > Ġ= Ġ(( this . java Class . generic Super class Ġas ĠParameter ized Type ). actual Type Arguments ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull Ġ{ ĠView Binding :: class . java . isAssignableFrom ( it Ġas ĠClass <* >) Ġ} Ġas ? ĠClass < T > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException (" You Ġmust Ġspecify Ġa Ġview Ġbinding Ġclass .") ĊĠĠĠĠĠĠĠ Ġval Ġmethod Ġ= Ġvb Class . getDeclared Method (" inflate ", ĠLayoutInflater :: class . java ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding Ġ= Ġmethod . invoke ( null , ĠLayoutInflater . from ( ctx )) Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Create View ( ctx ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Utils . e (" Failed Ġto Ġinf late Ġview Ġbinding .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġdo Create View ( ctx : ĠContext ) Ċ } Ċ