package Ġeu . kan ade . t ach iy omi . data . database . models Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . annotation . String Res Ċ import Ġeu . kan ade . t ach iy omi . R Ċ import Ġeu . kan ade . t ach iy omi . ui . library . Library Sort Ċ import Ġjava . io . Serializable Ċ Ċ interface ĠCategory Ġ: ĠSerializable Ġ{ ĊĊĠĠĠ Ġvar Ġid : ĠInt ? ĊĊĠĠĠ Ġvar Ġname : ĠString ĊĊĠĠĠ Ġvar Ġorder : ĠInt ĊĊĠĠĠ Ġvar Ġflags : ĠInt ĊĊĠĠĠ Ġvar Ġm anga Order : ĠList < Long > ĊĊĠĠĠ Ġvar Ġm anga Sort : ĠChar ? ĊĊĠĠĠ Ġvar Ġis Al one : ĠBoolean ĊĊĠĠĠ Ġvar Ġis Hidden : ĠBoolean ĊĊĠĠĠ Ġvar Ġis Dynamic : ĠBoolean ĊĊĠĠĠ Ġvar Ġsource Id : ĠLong ? ĊĊĠĠĠ Ġfun Ġis Ascending (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ(( manga Sort ?. minus (' a ') Ġ?: Ġ 0 ) Ġ% Ġ 2 ) Ġ!= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsorting Mode ( null As D ND : ĠBoolean Ġ= Ġfalse ): ĠLibrary Sort ? Ġ= ĠLibrary Sort . valueOf ( manga Sort ) ĊĠĠĠĠĠĠĠ Ġ?: Ġif Ġ( null As D ND Ġ&& Ġ! is Dynamic ) ĠLibrary Sort . Drag And Drop Ġelse Ġnull ĊĊĠĠĠ Ġval Ġis Drag And Drop ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm anga Sort Ġ== Ġnull Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm anga Sort Ġ== ĠLibrary Sort . Drag And Drop . category Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ&& Ġ! is Dynamic ĊĊĠĠĠ Ġ@ String Res ĊĠĠĠ Ġfun Ġsort Res (): ĠInt Ġ= ĊĠĠĠĠĠĠĠ Ġ( Library Sort . valueOf ( manga Sort ) Ġ?: ĠLibrary Sort . Drag And Drop ). string Res ( is Dynamic ) ĊĊĠĠĠ Ġfun Ġchange Sort To ( sort : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm anga Sort Ġ= Ġ( Library Sort . valueOf ( sort ) Ġ?: ĠLibrary Sort . Title ). category Value ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( name : ĠString ): ĠCategory Ġ= ĠCategory Impl (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name Ġ= Ġname ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate Default ( context : ĠContext ): ĠCategory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate ( context . getString ( R . string . default _ value )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate Custom ( name : ĠString , Ġlib Sort : ĠInt , Ġascending : ĠBoolean ): ĠCategory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate ( name ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlibrary Sort Ġ= ĠLibrary Sort . valueOf ( lib Sort ) Ġ?: ĠLibrary Sort . Drag And Drop ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange Sort To ( library Sort . main Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( manga Sort Ġ!= ĠLibrary Sort . Drag And Drop . category Value Ġ&& Ġ! ascending ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm anga Sort Ġ= Ġm anga Sort ?. plus ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Dynamic Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate All ( context : ĠContext , Ġlib Sort : ĠInt , Ġascending : ĠBoolean ): ĠCategory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Custom ( context . getString ( R . string . all ), Ġlib Sort , Ġascending ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorder Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Al one Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ