package Ġru . ite co . fm h android . adapter čĊč Ċ import Ġandroid . view . LayoutInflater č Ċ import Ġandroid . view . View č Ċ import Ġandroid . view . ViewGroup č Ċ import Ġandroidx . core . content . Context Compat č Ċ import Ġandroidx . recyclerview . widget . Diff Util č Ċ import Ġandroidx . recyclerview . widget . ListAdapter č Ċ import Ġandroidx . recyclerview . widget . RecyclerView č Ċ import Ġru . ite co . fm h android . R č Ċ import Ġru . ite co . fm h android . databinding . Item Our Mission Binding č Ċ import Ġru . ite co . fm h android . ui . view data . Our Mission Item ViewData č Ċ import Ġru . ite co . fm h android . view model . Our Mission ViewModel čĊč Ċ interface ĠOn Our Mission ItemClickListener Ġ{ čĊĠĠĠ Ġfun Ġon Card ( our Mission Item : ĠOur Mission Item ViewData ) č Ċ } čĊč Ċ class ĠOur Mission ItemList Adapter ( čĊĠĠĠ Ġprivate Ġval Ġon Our Mission ItemClickListener : ĠOn Our Mission ItemClickListener , čĊĠĠĠ Ġval ĠviewModel : ĠOur Mission ViewModel č Ċ ) Ġ: ĠList Adapter < Our Mission Item ViewData , ĠOur Mission ItemList Adapter . Our Mission ViewHolder >( čĊĠĠĠ ĠOur Mission Diff Callback č Ċ ) Ġ{ čĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( čĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , čĊĠĠĠĠĠĠĠ Ġview Type : ĠInt čĊĠĠĠ Ġ): ĠOur Mission ViewHolder Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠItem Our Mission Binding . inflate ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġreturn ĠOur Mission ViewHolder ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Our Mission ItemClickListener , čĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( čĊĠĠĠĠĠĠĠ Ġholder : ĠOur Mission ViewHolder , čĊĠĠĠĠĠĠĠ Ġposition : ĠInt čĊĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġour Mission Item Ġ= ĠgetItem ( position ) čĊĠĠĠĠĠĠĠ Ġholder . bind ( our Mission Item ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġclass ĠOur Mission ViewHolder ( čĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠItem Our Mission Binding , čĊĠĠĠĠĠĠĠ Ġval Ġon Our Mission ItemClickListener : ĠOn Our Mission ItemClickListener , čĊĠĠĠĠĠĠĠ Ġval ĠviewModel : ĠOur Mission ViewModel čĊĠĠĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġfun Ġbind ( our Mission Item : ĠOur Mission Item ViewData ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġour Mission Item Title TextView . text Ġ= Ġour Mission Item . title čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġour Mission Item Title TextView . set BackgroundColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġour Mission Item . title BackgroundColor čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġour Mission Item Description TextView . text Ġ= Ġour Mission Item . description čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( our Mission Item . isOpen ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġour Mission Item Description TextView . visibility Ġ= ĠView . VISIBLE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġour Mission Item Open Card Image Button . setImage Resource ( R . drawable . expand _ less _ 2 4 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġour Mission Item Description TextView . visibility Ġ= ĠView . GONE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġour Mission Item Open Card Image Button . setImage Resource ( R . drawable . expand _ more _ 2 4 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġour Mission Item Material Card View . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Our Mission ItemClickListener . on Card ( our Mission Item ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġobject ĠOur Mission Diff Callback Ġ: ĠDiff Util . Item Callback < Our Mission Item ViewData >() Ġ{ čĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Item : ĠOur Mission Item ViewData , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠOur Mission Item ViewData čĊĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Item : ĠOur Mission Item ViewData , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠOur Mission Item ViewData čĊĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ }