package Ġcom . gather ing hall stud ios . m hw or l dd atabase . features . bookmarks Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . gather ing hall stud ios . m hw or l dd atabase . R Ċ import Ġcom . gather ing hall stud ios . m hw or l dd atabase . adapters . common . Simple List Delegate Ċ import Ġcom . gather ing hall stud ios . m hw or l dd atabase . adapters . common . Simple ViewHolder Ċ import Ġcom . gather ing hall stud ios . m hw or l dd atabase . assets . Asset Loader Ċ import Ġcom . gather ing hall stud ios . m hw or l dd atabase . data . models .* Ċ import Ġkotlinx . android . synt hetic . main . list item _ bookmark . view .* Ċ Ċ class ĠItem Bookmark Delegate ( private Ġval ĠonSelect : Ġ( Item ) Ġ-> ĠUnit ) Ġ: ĠSimple List Delegate < Item >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġis For ViewType ( obj : ĠAny ) Ġ= Ġobj Ġis ĠItem ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( parent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . list item _ bookmark , Ġparent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( view Holder : ĠSimple ViewHolder , Ġdata : ĠItem ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= ĠAsset Loader . load Icon For ( data ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . generic _ icon . setImage Drawable ( icon ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . label _ text . text Ġ= Ġdata . name ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . setOnClickListener Ġ{ ĠonSelect ( data ) Ġ} Ċ // ĠĠĠĠĠĠĠ ĠviewHolder . item View . delete _ bookmark _ button . setOn Click Ġ{ onDelete ( data )} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠLocation Bookmark Delegate ( private Ġval ĠonSelect : Ġ( Location ) Ġ-> ĠUnit ) Ġ: ĠSimple List Delegate < Location >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġis For ViewType ( obj : ĠAny ) Ġ= Ġobj Ġis ĠLocation ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( parent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . list item _ bookmark , Ġparent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( view Holder : ĠSimple ViewHolder , Ġdata : ĠLocation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= ĠAsset Loader . load Icon For ( data ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . generic _ icon . setImage Drawable ( icon ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . label _ text . text Ġ= Ġdata . name ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . setOnClickListener Ġ{ ĠonSelect ( data ) Ġ} Ċ // ĠĠĠĠĠĠĠ ĠviewHolder . item View . delete _ bookmark _ button . setOn Click Ġ{ onDelete ( data )} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠCh arm Bookmark Delegate ( private Ġval ĠonSelect : Ġ( Char m ) Ġ-> ĠUnit ) Ġ: ĠSimple List Delegate < Char m >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġis For ViewType ( obj : ĠAny ) Ġ= Ġobj Ġis ĠCh arm ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( parent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . list item _ bookmark , Ġparent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( view Holder : ĠSimple ViewHolder , Ġdata : ĠCh arm ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= ĠAsset Loader . load Icon For ( data ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . generic _ icon . setImage Drawable ( icon ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . label _ text . text Ġ= Ġdata . name ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . setOnClickListener Ġ{ ĠonSelect ( data ) Ġ} Ċ // ĠĠĠĠĠĠĠ ĠviewHolder . item View . delete _ bookmark _ button . setOn Click Ġ{ onDelete ( data )} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠDecor ation Base Bookmark Delegate ( private Ġval ĠonSelect : Ġ( Decoration Base ) Ġ-> ĠUnit ) Ġ: ĠSimple List Delegate < Decoration Base >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġis For ViewType ( obj : ĠAny ) Ġ= Ġobj Ġis ĠDecor ation Base ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( parent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . list item _ bookmark , Ġparent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( view Holder : ĠSimple ViewHolder , Ġdata : ĠDecor ation Base ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= ĠAsset Loader . load Icon For ( data ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . generic _ icon . setImage Drawable ( icon ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . label _ text . text Ġ= Ġdata . name ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . setOnClickListener Ġ{ ĠonSelect ( data ) Ġ} Ċ // ĠĠĠĠĠĠĠ ĠviewHolder . item View . delete _ bookmark _ button . setOn Click Ġ{ onDelete ( data )} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠMon ster Base Bookmark Delegate ( private Ġval ĠonSelect : Ġ( Monster Base ) Ġ-> ĠUnit ) Ġ: ĠSimple List Delegate < Monster Base >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġis For ViewType ( obj : ĠAny ) Ġ= Ġobj Ġis ĠMon ster Base ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( parent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . list item _ bookmark , Ġparent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( view Holder : ĠSimple ViewHolder , Ġdata : ĠMon ster Base ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= ĠAsset Loader . load Icon For ( data ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . generic _ icon . setImage Drawable ( icon ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . label _ text . text Ġ= Ġdata . name ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . setOnClickListener Ġ{ ĠonSelect ( data ) Ġ} Ċ // ĠĠĠĠĠĠĠ ĠviewHolder . item View . delete _ bookmark _ button . setOn Click Ġ{ onDelete ( data )} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSkill Tree Bookmark Delegate ( private Ġval ĠonSelect : Ġ( Skill Tree ) Ġ-> ĠUnit ) Ġ: ĠSimple List Delegate < Skill Tree >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġis For ViewType ( obj : ĠAny ) Ġ= Ġobj Ġis ĠSkill Tree ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( parent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . list item _ bookmark , Ġparent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( view Holder : ĠSimple ViewHolder , Ġdata : ĠSkill Tree ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= ĠAsset Loader . load Icon For ( data ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . generic _ icon . setImage Drawable ( icon ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . label _ text . text Ġ= Ġdata . name ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . setOnClickListener Ġ{ ĠonSelect ( data ) Ġ} Ċ // ĠĠĠĠĠĠĠ ĠviewHolder . item View . delete _ bookmark _ button . setOn Click Ġ{ onDelete ( data )} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠWeapon Bookmark Delegate ( private Ġval ĠonSelect : Ġ( Weapon ) Ġ-> ĠUnit ) Ġ: ĠSimple List Delegate < Weapon >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġis For ViewType ( obj : ĠAny ) Ġ= Ġobj Ġis ĠWeapon ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( parent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . list item _ bookmark , Ġparent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( view Holder : ĠSimple ViewHolder , Ġdata : ĠWeapon ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= ĠAsset Loader . load Icon For ( data ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . generic _ icon . setImage Drawable ( icon ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . label _ text . text Ġ= Ġdata . name ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . setOnClickListener Ġ{ ĠonSelect ( data ) Ġ} Ċ // ĠĠĠĠĠĠĠ ĠviewHolder . item View . delete _ bookmark _ button . setOn Click Ġ{ onDelete ( data )} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠArm or Bookmark Delegate ( private Ġval ĠonSelect : Ġ( Armor ) Ġ-> ĠUnit ) Ġ: ĠSimple List Delegate < Armor >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġis For ViewType ( obj : ĠAny ) Ġ= Ġobj Ġis ĠArm or ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( parent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . list item _ bookmark , Ġparent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( view Holder : ĠSimple ViewHolder , Ġdata : ĠArm or ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= ĠAsset Loader . load Icon For ( data ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . generic _ icon . setImage Drawable ( icon ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . label _ text . text Ġ= Ġdata . name ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . setOnClickListener Ġ{ ĠonSelect ( data ) Ġ} Ċ // ĠĠĠĠĠĠĠ ĠviewHolder . item View . delete _ bookmark _ button . setOn Click Ġ{ onDelete ( data )} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠKin sect Bookmark Delegate ( private Ġval ĠonSelect : Ġ( Kin sect ) Ġ-> ĠUnit ) Ġ: ĠSimple List Delegate < Kin sect >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġis For ViewType ( obj : ĠAny ) Ġ= Ġobj Ġis ĠKin sect ĊĠĠĠ Ġprivate Ġ Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( parent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . list item _ bookmark , Ġparent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( view Holder : ĠSimple ViewHolder , Ġdata : ĠKin sect ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= ĠAsset Loader . load Icon For ( data ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . generic _ icon . setImage Drawable ( icon ) ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . label _ text . text Ġ= Ġdata . name ĊĠĠĠĠĠĠĠ ĠviewHolder . item View . setOnClickListener Ġ{ ĠonSelect ( data ) Ġ} Ċ // ĠĠĠĠĠĠĠ ĠviewHolder . item View . delete _ bookmark _ button . setOn Click Ġ{ onDelete ( data )} ĊĠĠĠ Ġ} Ċ } Ċ