package Ġcom . per ry . layout . library Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . annotation . Layout Res Ċ Ċ class ĠLayout Status Manage ( private Ġval Ġcontent Layout : ĠView ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠConfig ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġempty Layout : ĠView ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġvar Ġerror Layout : ĠView ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġvar Ġloading Layout : ĠView ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġvar ĠonClick Listener : ĠStatus Layout ClickListener ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Layout Res ĊĠĠĠ Ġprivate Ġvar Ġempty Layout Id : ĠInt ĊĊĠĠĠ Ġ@ Id Res ĊĠĠĠ Ġprivate Ġvar Ġempty Click Id : ĠInt ? ĊĊĠĠĠ Ġ@ Layout Res ĊĠĠĠ Ġprivate Ġvar Ġerror Layout Id : ĠInt ĊĊĠĠĠ Ġ@ Id Res ĊĠĠĠ Ġprivate Ġvar Ġerror Click Id : ĠInt ? ĊĊĠĠĠ Ġ@ Layout Res ĊĠĠĠ Ġprivate Ġvar Ġloading Layout Id : ĠInt ĊĊĠĠĠ Ġprivate Ġvar Ġhelper : ĠSwitch Layout Helper ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġempty Layout Id Ġ= Ġconfig . empty Layout Id ĊĠĠĠĠĠĠĠ Ġempty Click Id Ġ= Ġconfig . empty Click Id ĊĠĠĠĠĠĠĠ Ġempty Layout Ġ= Ġinf late ( empty Layout Id ) ĊĊĠĠĠĠĠĠĠ Ġerror Layout Id Ġ= Ġconfig . error Layout Id ĊĠĠĠĠĠĠĠ Ġerror Click Id Ġ= Ġconfig . error Click Id ĊĠĠĠĠĠĠĠ Ġerror Layout Ġ= Ġinf late ( error Layout Id ) ĊĊĠĠĠĠĠĠĠ Ġloading Layout Id Ġ= Ġconfig . loading Layout Id ĊĠĠĠĠĠĠĠ Ġloading Layout Ġ= Ġinf late ( loading Layout Id ) ĊĊĠĠĠĠĠĠĠ Ġset Empty Click Event () ĊĠĠĠĠĠĠĠ ĠsetError Click Event () ĊĊĠĠĠĠĠĠĠ Ġhelper Ġ= ĠSwitch Layout Helper ( content Layout ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinf late (@ Layout Res Ġlayout Id Res : ĠInt ): ĠView Ġ= ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( content Layout . context ). inflate ( layout Id Res , Ġnull ) ĊĊĠĠĠ Ġfun Ġset Empty Layout (@ Layout Res Ġlayout Id : ĠInt , Ġ@ Id Res Ġclick Ids : ĠInt ? Ġ= Ġnull ): ĠLayout Status Manage Ġ{ ĊĠĠĠĠĠĠĠ Ġempty Layout Id Ġ= Ġlayout Id ĊĠĠĠĠĠĠĠ Ġempty Click Id Ġ= Ġclick Ids ĊĠĠĠĠĠĠĠ Ġempty Layout Ġ= Ġinf late ( empty Layout Id ) ĊĠĠĠĠĠĠĠ Ġset Empty Click Event () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis @ Layout Status Manage ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetError Layout (@ Layout Res Ġlayout Id : ĠInt , Ġ@ Id Res Ġclick Id : ĠInt ? Ġ= Ġnull ): ĠLayout Status Manage Ġ{ ĊĠĠĠĠĠĠĠ Ġerror Layout Id Ġ= Ġlayout Id ĊĠĠĠĠĠĠĠ Ġerror Click Id Ġ= Ġclick Id ĊĠĠĠĠĠĠĠ Ġerror Layout Ġ= Ġinf late ( error Layout Id ) ĊĠĠĠĠĠĠĠ ĠsetError Click Event () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis @ Layout Status Manage ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Loading Layout (@ Layout Res Ġlayout Id : ĠInt ): ĠLayout Status Manage Ġ{ ĊĠĠĠĠĠĠĠ Ġloading Layout Id Ġ= Ġlayout Id ĊĠĠĠĠĠĠĠ Ġloading Layout Ġ= Ġinf late ( loading Layout Id ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis @ Layout Status Manage ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Content Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġhelper . show View ( content Layout ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Empty Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġhelper . show View ( empty Layout ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Error Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġhelper . show View ( error Layout ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Loading Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġhelper . show View ( loading Layout ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Custom ize Layout ( view : ĠView , Ġvar arg Ġclick View Ids : ĠInt ? Ġ= Ġempty Array ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Custom ize Click Event ( view , Ġ* click View Ids ) ĊĠĠĠĠĠĠĠ Ġhelper . show View ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Custom ize Layout (@ Layout Res Ġlayout Id : ĠInt , Ġvar arg Ġclick View Ids : ĠInt ? Ġ= Ġempty Array ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġinf late ( layout Id ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Custom ize Click Event ( it , Ġ* click View Ids ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhelper . show View ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠView > Ġfind Content Child View (@ Id Res Ġview Id : ĠInt ): ĠT ? Ġ= Ġcontent Layout . findViewById ( view Id ) ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠView > Ġfind Error Child View (@ Id Res Ġview Id : ĠInt ): ĠT ? Ġ= Ġerror Layout . findViewById ( view Id ) ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠView > Ġfind Empty Child View (@ Id Res Ġview Id : ĠInt ): ĠT ? Ġ= Ġempty Layout . findViewById ( view Id ) ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠView > Ġfind Loading Child View (@ Id Res Ġview Id : ĠInt ): ĠT ? Ġ= Ġloading Layout . findViewById ( view Id ) ĊĊĠĠĠ Ġprivate Ġfun Ġset Custom ize Click Event ( view : ĠView , Ġvar arg Ġclick View Ids : ĠInt ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġclick View Ids . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . findViewById < View >( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . setOnClickListener Ġ{ Ġview Ġ-> ĠonClick Listener ?. customize Click ( view ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Empty Click Event () Ġ{ ĊĠĠĠĠĠĠĠ Ġempty Click Id ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty Layout . findViewById < View >( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . setOnClickListener Ġ{ Ġview Ġ-> ĠonClick Listener ?. empty Click ( view ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetError Click Event () Ġ{ ĊĠĠĠĠĠĠĠ Ġerror Click Id ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Layout . findViewById < View >( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . setOnClickListener Ġ{ Ġview Ġ-> ĠonClick Listener ?. error Click ( view ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }