package Ġcom . android . it rip . adapters Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . animation . Animation Ċ import Ġandroid . view . animation . Animation Utils Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . lifecycle . Lifecycle Registry Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . android . it rip . R Ċ import Ġcom . android . it rip . databinding . Destination Item Binding Ċ import Ġcom . android . it rip . models . Ci udad Ċ import Ġcom . android . it rip . view Models . Destination ViewModel Ċ import Ġcom . squareup . pic asso . Pic asso Ċ Ċ class ĠDestination Adapter ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġdestination ViewModel : ĠDestination ViewModel , ĊĠĠĠ Ġprivate Ġval Ġadd City Callback : Ġ( Ci udad ) Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġview Activities for City Callback : Ġ( Ci udad ) Ġ-> ĠUnit Ċ ) Ġ: ĠRecyclerView . Adapter < Destination Adapter . Destination Holder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠDestination Holder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetItem ( position ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Click Scale Animation , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd City Callback , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Activities for City Callback ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġdestination ViewModel . ci ud ades . observe Fore ver Ġ{ Ġnotify DataSet Changed () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ) Ġ= Ġposition . to Long () ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ) Ġ= Ġposition ĊĊĠĠĠ Ġprivate Ġfun ĠgetItem ( position : ĠInt ) Ġ= Ġdestination ViewModel . ci ud ades . value ! ![ position ] ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġdestination ViewModel . ci ud ades . value ?. size Ġ?: Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠDestination Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠDestination Item Binding Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĠR . layout . destination _ item , Ġparent , Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval ĠviewHolder Ġ= ĠDestination Holder ( binding ) ĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= ĠviewHolder ĊĠĠĠĠĠĠĠ Ġreturn ĠviewHolder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠDestination Holder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding : ĠDestination Item Binding ĊĠĠĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ), ĠLifecycle Owner Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlifecycle Registry Ġ= ĠLifecycle Registry ( this ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Lifecycle (): ĠLifecycle Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlifecycle Registry ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem : ĠCi udad , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Click Scale Animation : ĠAnimation , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd City Callback : Ġ( Ci udad ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Activities for City Callback : Ġ( Ci udad ) Ġ-> ĠUnit ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Image ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext view Destination List Name . text Ġ= Ġitem . nombre ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġci udad Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrel ativ el ayout Destination List Add . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . start Animation ( button Click Scale Animation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd City Callback ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext view Destination List Activ idades . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . start Animation ( button Click Scale Animation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Activities for City Callback ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġset Image ( ci udad : ĠCi udad ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( ci udad . imagen ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . logo ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . image view Destination List Picture ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġbutton Click Scale Animation Ġ= ĊĠĠĠĠĠĠĠ ĠAnimation Utils . load Animation ( context , ĠR . anim . nav _ default _ pop _ enter _ anim ) Ċ Ċ }