package Ġnl . ent re co . g idd y app . history . models Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ sealed Ġclass ĠBase Model Ġ{ ĊĠĠĠ Ġabstract Ġval Ġid : ĠString ĊĊĠĠĠ Ġsealed Ġclass ĠHeader Model Ġ: ĠBase Model () Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠT xt ( val Ġ_ id : ĠInt , Ġval Ġtext : ĠString ) Ġ: ĠHeader Model () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġid : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ"$ _ id " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠRes ( val Ġresource : ĠInt ) Ġ: ĠHeader Model () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġid : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ"$ resource " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠLoading ( val Ġresource : ĠInt ) Ġ: ĠHeader Model () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġid : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ"$ resource " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsealed Ġclass ĠDescription Model Ġ: ĠBase Model () Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠT xt ( val Ġtext : ĠString ) Ġ: ĠDescription Model () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġid : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġtext ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠRes (@ String Res Ġval Ġresource : ĠInt ) Ġ: ĠDescription Model () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġid : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ"$ resource " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsealed Ġclass ĠDetail Model Ġ: ĠBase Model () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠRes (@ String Res Ġval Ġresource : ĠInt , Ġ@ Drawable Res Ġval Ġicon : ĠInt , Ġval Ġvalue : ĠString ) Ġ: ĠDetail Model () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġid : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ"$ resource :$ value " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠLoading ( val Ġresource : ĠInt ) Ġ: ĠDetail Model () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġid : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ"$ resource " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠBase Model ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ!= Ġother . id ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġid . hashCode () ĊĠĠĠ Ġ} Ċ } Ċ Ċ abstract Ġclass ĠBase ViewHolder < Model Ġ: ĠBase Model >( item View : ĠView ) Ġ: ĊĠĠĠ ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġbind ( model : ĠModel ?, Ġposition : ĠInt ) Ċ }