package Ġeu . kan ade . t ach iy omi . ui . manga . chapter Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . PopupMenu Ċ import Ġeu . kan ade . t ach iy omi . R Ċ import Ġeu . kan ade . t ach iy omi . data . database . models . M anga Ċ import Ġeu . kan ade . t ach iy omi . data . download . model . Download Ċ import Ġeu . kan ade . t ach iy omi . ui . base . adapter . Flex ible ViewHolder Ċ import Ġeu . kan ade . t ach iy omi . util . getResource Color Ċ import Ġkotlinx . android . synt hetic . main . item _ chapter . view .* Ċ import Ġjava . text . DateFormat Ċ import Ġjava . text . Decimal Format Ċ import Ġjava . text . Decimal Format Symbols Ċ import Ġjava . util .* Ċ Ċ class ĠChapter s Holder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġview : ĠView , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġadapter : ĠChapter s Adapter , ĊĠĠĠĠĠĠĠ Ġlistener : ĠFlex ible ViewHolder . On ListItem ClickListener ) Ċ : ĠFlex ible ViewHolder ( view , Ġadapter , Ġlistener ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġread Color Ġ= Ġview . context . getResource Color ( android . R . attr . textColor Hint ) ĊĠĠĠ Ġprivate Ġval Ġunread Color Ġ= Ġview . context . getResource Color ( android . R . attr . textColor Primary ) ĊĠĠĠ Ġprivate Ġval Ġbook marked Color Ġ= Ġview . context . getResource Color ( R . attr . color Accent ) ĊĠĠĠ Ġprivate Ġval Ġdecimal Format Ġ= ĠDecimal Format ("# . ### ", ĠDecimal Format Symbols (). apply Ġ{ Ġdecimal Separator Ġ= Ġ'.' Ġ}) ĊĠĠĠ Ġprivate Ġval Ġdf Ġ= ĠDate Format . getDate Instance ( DateFormat . SHORT ) ĊĊĠĠĠ Ġprivate Ġvar Ġitem : ĠChapter Model ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġneed Ġto Ġpost Ġa ĠRunnable Ġto Ġshow Ġthe Ġpopup Ġto Ġmake Ġsure Ġthat Ġthe ĠPopup Menu Ġis ĊĠĠĠĠĠĠĠ Ġ// Ġcorrectly Ġposition ed . ĠThe Ġreason Ġbeing Ġthat Ġthe Ġview Ġmay Ġchange Ġposition Ġbefore Ġthe ĊĠĠĠĠĠĠĠ Ġ// ĠPopup Menu Ġis Ġshown . ĊĠĠĠĠĠĠĠ Ġview . chapter _ menu . setOnClickListener Ġ{ Ġit . post Ġ{ Ġshow PopupMenu ( it ) Ġ} Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Set Values ( chapter : ĠChapter Model , Ġm anga : ĠM anga ?) Ġ= Ġwith ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem Ġ= Ġchapter ĊĊĠĠĠĠĠĠĠ Ġchapter _ title . text Ġ= Ġwhen Ġ( manga ?. displayMode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠM anga . DISPLAY _ NUMBER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġformatted Number Ġ= Ġdecimal Format . format ( chapter . chapter _ number . toDouble ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . display _ mode _ chapter , Ġformatted Number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġchapter . name ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġcorrect Ġtext Ġcolor ĊĠĠĠĠĠĠĠ Ġchapter _ title . setTextColor ( if Ġ( chapter . read ) Ġread Color Ġelse Ġunread Color ) ĊĠĠĠĠĠĠĠ Ġif Ġ( chapter . bookmark ) Ġchapter _ title . setTextColor ( book marked Color ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( chapter . date _ upload Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchapter _ date . text Ġ= Ġdf . format ( Date ( chapter . date _ upload )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchapter _ date . setTextColor ( if Ġ( chapter . read ) Ġread Color Ġelse Ġunread Color ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchapter _ date . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġchapter _ pages . text Ġ= Ġif Ġ(! chapter . read Ġ&& Ġchapter . last _ page _ read Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . chapter _ progress , Ġchapter . last _ page _ read Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġnotify Status ( chapter . status ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnotify Status ( status : ĠInt ) Ġ= Ġwith ( view . download _ text ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDownload . QUEUE Ġ-> Ġset Text ( R . string . chapter _ queued ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDownload . DOWNLOAD ING Ġ-> Ġset Text ( R . string . chapter _ download ing ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDownload . DOWN LOADED Ġ-> Ġset Text ( R . string . chapter _ downloaded ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDownload . ERROR Ġ-> Ġset Text ( R . string . chapter _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġtext Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow PopupMenu ( view : ĠView ) Ġ= Ġitem ?. let Ġ{ Ġchapter Ġ-> ĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġa ĠPopup Menu , Ġgiving Ġit Ġthe Ġclicked Ġview Ġfor Ġan Ġanchor ĊĠĠĠĠĠĠĠ Ġval Ġpopup Ġ= ĠPopup Menu ( view . context , Ġview ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġour Ġmenu Ġresource Ġinto Ġthe ĠPopup Menu 's ĠMenu ĊĠĠĠĠĠĠĠ Ġpopup . menu Inflater . inflate ( R . menu . chapter _ single , Ġpopup . menu ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠHide Ġdownload Ġand Ġshow Ġdelete Ġif Ġthe Ġchapter Ġis Ġdownloaded ĊĠĠĠĠĠĠĠ Ġif Ġ( chapter . is Downloaded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . menu . find Item ( R . id . action _ download ). isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . menu . find Item ( R . id . action _ delete ). isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠHide Ġbookmark Ġif Ġbookmark ĊĠĠĠĠĠĠĠ Ġpopup . menu . find Item ( R . id . action _ bookmark ). isVisible Ġ= Ġ! chapter . bookmark ĊĠĠĠĠĠĠĠ Ġpopup . menu . find Item ( R . id . action _ remove _ bookmark ). isVisible Ġ= Ġchapter . bookmark ĊĊĠĠĠĠĠĠĠ Ġ// ĠHide Ġmark Ġas Ġunread Ġwhen Ġthe Ġchapter Ġis Ġunread ĊĠĠĠĠĠĠĠ Ġif Ġ(! chapter . read Ġ&& Ġchapter . last _ page _ read Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . menu . find Item ( R . id . action _ mark _ as _ unread ). isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠHide Ġmark Ġas Ġread Ġwhen Ġthe Ġchapter Ġis Ġread ĊĠĠĠĠĠĠĠ Ġif Ġ( chapter . read ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . menu . find Item ( R . id . action _ mark _ as _ read ). isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġa Ġlistener Ġso Ġwe Ġare Ġnotified Ġif Ġa Ġmenu Ġitem Ġis Ġclicked ĊĠĠĠĠĠĠĠ Ġpopup . setOn MenuItem ClickListener Ġ{ Ġmenu Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchapter List Ġ= ĠlistOf ( chapter ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( adapter . fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( menuItem . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ download Ġ-> Ġdownload Chapter s ( chapter List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ bookmark Ġ-> Ġbookmark Chapter s ( chapter List , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ remove _ bookmark Ġ-> Ġbookmark Chapter s ( chapter List , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ delete Ġ-> Ġdelete Chapter s ( chapter List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ mark _ as _ read Ġ-> Ġmark As Read ( chapter List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ mark _ as _ unread Ġ-> Ġmark As Un read ( chapter List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ mark _ previous _ as _ read Ġ-> Ġmark Previous As Read ( chapter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠFinally Ġshow Ġthe ĠPopup Menu ĊĠĠĠĠĠĠĠ Ġpopup . show () ĊĠĠĠ Ġ} Ċ Ċ } Ċ