package Ġm 7 md ra . com . html recycler . adapter ĊĊ Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . ViewGroup Ċ import Ġm 7 md ra . com . html recycler . elements . ElementType Ċ import Ġm 7 md ra . com . html recycler . elements .* Ċ Ċ abstract Ġclass ĠElements Adapter () Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġabstract Ġfun ĠonCreate Element ( parent : ĠViewGroup , Ġelement Type : ĠElementType ): ĠRecyclerView . ViewHolder ĊĠĠĠ Ġabstract Ġfun Ġon Bind Element ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) ĊĠĠĠ Ġval Ġelements Ġ= Ġmutable ListOf < Element >() ĊĊĊĠĠĠ Ġfun Ġadd Elements ( element List : ĠList < Element >) Ġ{ ĊĠĠĠĠĠĠĠ Ġelements . clear () ĊĠĠĠĠĠĠĠ Ġelements . addAll ( element List ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" ME GA ", Ġ"${ findElement With ( view Type )} ") ĊĠĠĠĠĠĠĠ Ġreturn ĠonCreate Element ( parent , Ġfind Element With ( view Type )) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Bind Element ( holder , Ġposition ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelements . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġelements [ position ] ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( element ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAnchor Link Element Ġ-> ĠTYPE _ AN CH OR _ LINK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠVideo Element Ġ-> ĠTYPE _ VIDEO ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBlock Quote Element Ġ-> ĠTYPE _ BLOCK _ QUOTE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHeading 1 Element Ġ-> ĠTYPE _ HEAD ING 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHeading 2 Element Ġ-> ĠTYPE _ HEAD ING 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHeading 3 Element Ġ-> ĠTYPE _ HEAD ING 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHeading 4 Element Ġ-> ĠTYPE _ HEAD ING 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHeading 5 Element Ġ-> ĠTYPE _ HEAD ING 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHeading 6 Element Ġ-> ĠTYPE _ HEAD ING 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠImage Element Ġ-> ĠTYPE _ IMAGE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠI Frame Element Ġ-> ĠTYPE _ IF R MA E ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAudio Element Ġ-> ĠTYPE _ AUDIO ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠParagraph Element Ġ-> ĠTYPE _ PAR AG R APH ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUnknown Element Ġ-> ĠTYPE _ UNKNOWN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDescription List Element Ġ-> ĠTYPE _ DESCRIPTION _ LIST ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUn Order List Element Ġ-> ĠTYPE _ UN ORDER ED _ LIST ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠOrder List Element Ġ-> ĠTYPE _ ORDER ED _ LIST ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ UNKNOWN Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ HEAD ING 1 Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ HEAD ING 2 Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ HEAD ING 3 Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ HEAD ING 4 Ġ= Ġ 4 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ HEAD ING 5 Ġ= Ġ 5 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ HEAD ING 6 Ġ= Ġ 6 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ IF R MA E Ġ= Ġ 7 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ BLOCK _ QUOTE Ġ= Ġ 8 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ PAR AG R APH Ġ= Ġ 9 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ AN CH OR _ LINK Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ IMAGE Ġ= Ġ 1 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ VIDEO Ġ= Ġ 1 2 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ AUDIO Ġ= Ġ 1 3 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ ORDER ED _ LIST Ġ= Ġ 1 4 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ DESCRIPTION _ LIST Ġ= Ġ 1 5 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ DIV Ġ= Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ TABLE Ġ= Ġ 1 7 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ UN ORDER ED _ LIST Ġ= Ġ 1 8 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfind Element With ( type : ĠInt ): ĠElementType Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( value Ġin ĠElementType . values ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value . ordinal Ġ== Ġtype ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠElementType . Unknown ĊĠĠĠ Ġ} ĊĊĊ Ċ } Ċ