package Ġcom . rob ol ancers . l ancers cout kotlin . adapters Ċ Ċ import Ġandroid . app . Activity Options Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . coordinator layout . widget . Coordinator Layout Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . rob ol ancers . l ancers cout kotlin . R Ċ import Ġcom . rob ol ancers . l ancers cout kotlin . activities . template . Template Activity Ċ import Ġcom . rob ol ancers . l ancers cout kotlin . activities . template . Template Editing Activity Ċ import Ġcom . rob ol ancers . l ancers cout kotlin . room . entities . Template Ċ import Ġcom . rob ol ancers . l ancers cout kotlin . room . view models . Template ViewModel Ċ import Ġcom . rob ol ancers . l ancers cout kotlin . utilities . adapters . De letable Ċ Ċ class ĠTemplate Adapter ( private Ġval Ġtemplate Activity : ĠTemplate Activity ): ĠRecyclerView . Adapter < RecyclerView . ViewHolder >(), ĠDe letable Ġ{ ĊĠĠĠ Ġinner Ġclass ĠTemplate Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Clicked ( view Holder : ĠRecyclerView . ViewHolder , Ġitem Clicked : ĠTemplate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( template Activity , ĠTemplate Editing Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" Template ", Ġitem Clicked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠActivity Options . make Scene Transition Animation ( template Activity , Ġ( view Holder Ġas ĠViewHolder ). textView , Ġ" title ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Activity . startActivity ( intent , Ġoptions . to Bundle ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar ĠtextView : ĠTextView Ġ= ĠitemView . findViewById ( R . id . list _ content ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrecently Deleted Item : ĠTemplate ĊĠĠĠ Ġprivate Ġvar Ġtemplates Ġ= Ġempty List < Template >() ĊĠĠĠ Ġprivate Ġval Ġlistener Ġ= ĠTemplate Listener () ĊĠĠĠ Ġprivate Ġval ĠviewModel Ġ= ĠViewModel Provider ( template Activity , ĠViewModel Provider . Android ViewModel Factory ( template Activity . application )). get ( ĊĠĠĠĠĠĠĠ ĠTemplate ViewModel :: class . java ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . list _ item _ text _ no _ handle , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġis ĠViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . textView . text Ġ= Ġtemplates [ position ]. name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Item Clicked ( holder , Ġtemplates [ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Templates ( templates : ĠList < Template >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . templates Ġ= Ġtemplates ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġtemplates . size ĊĊĠĠĠ Ġoverride Ġfun Ġshow Undo Snackbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġtemplate Activity . findViewById < Coordinator Layout >( R . id . template _ coordinator _ layout ) ĊĠĠĠĠĠĠĠ Ġval Ġsn ackbar Ġ= ĠSn ackbar . make ( view , Ġ" Deleted ", ĠSn ackbar . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠ Ġsn ackbar . setAction (" Undo ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġundo Delete () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsn ackbar . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Item ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrecently Deleted Item Ġ= Ġtemplates [ position ] ĊĠĠĠĠĠĠĠ ĠviewModel . delete ( templates [ position ]) ĊĠĠĠĠĠĠĠ Ġnotify Item Removed ( position ) ĊĠĠĠĠĠĠĠ Ġshow Undo Snackbar () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġundo Delete () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . insert ( recent ly Deleted Item ) ĊĠĠĠĠĠĠĠ Ġnotify Item Inserted ( templates . size Ġ- Ġ 1 ) ĊĠĠĠ Ġ} Ċ }