package Ġio . github . w ulkan owy . ui . modules . timetable Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View . GONE Ċ import Ġandroid . view . View . VISIBLE Ċ import Ġeu . dav idea . flex ible adapter . Flex ible Adapter Ċ import Ġeu . dav idea . flex ible adapter . items . Abstract Flex ible Item Ċ import Ġeu . dav idea . flex ible adapter . items . IF lex ible Ċ import Ġeu . dav idea . view holders . Flex ible ViewHolder Ċ import Ġio . github . w ulkan owy . R Ċ import Ġio . github . w ulkan owy . data . db . entities . Time table Ċ import Ġio . github . w ulkan owy . utils . get Theme Attr Color Ċ import Ġio . github . w ulkan owy . utils . to Formatted String Ċ import Ġkotlinx . android . extensions . Layout Container Ċ import Ġkotlinx . android . synt hetic . main . item _ timetable .* Ċ import Ġkotlinx . android . synt hetic . main . item _ timetable _ small .* Ċ Ċ class ĠTime table Item ( val Ġlesson : ĠTime table , Ġprivate Ġval Ġshow Whole Class Plan : ĠString ) Ġ: ĊĠĠĠ ĠAbstract Flex ible Item < Time table Item . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Res () Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Whole Class Plan Ġ== Ġ" small " Ġ&& Ġ! lesson . is Student Plan Ġ-> ĠR . layout . item _ timetable _ small ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . layout . item _ timetable ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ViewHolder ( view : ĠView , Ġadapter : ĠFlex ible Adapter < IF lex ible <* >> ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view , Ġadapter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġoverride Ġfun Ġbind ViewHolder ( adapter : ĠFlex ible Adapter < IF lex ible <* >>, Ġholder : ĠViewHolder , Ġposition : ĠInt , Ġpayload s : ĠMutable List < Any > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item ViewType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ timetable _ small Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Small Item Number . text Ġ= Ġlesson . number . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Small Item Subject . text Ġ= Ġlesson . subject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Small Item Time Start . text Ġ= Ġlesson . start . to Formatted String (" HH : mm ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Small Item Room . text Ġ= Ġlesson . room ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Small Item Teacher . text Ġ= Ġlesson . teacher ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ timetable Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Fields ( holder ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Subject . paint Flags Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lesson . c anceled ) Ġtime table Item Subject . paint Flags Ġor ĠPaint . STRI KE _ TH RU _ TEXT _ FLAG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġtime table Item Subject . paint Flags Ġand ĠPaint . STRI KE _ TH RU _ TEXT _ FLAG . inv () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Description ( holder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Colors ( holder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Fields ( holder : ĠViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Number . text Ġ= Ġlesson . number . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Subject . text Ġ= Ġlesson . subject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Room . text Ġ= Ġlesson . room ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Teacher . text Ġ= Ġlesson . teacher ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Time Start . text Ġ= Ġlesson . start . to Formatted String (" HH : mm ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Time Finish . text Ġ= Ġlesson . end . to Formatted String (" HH : mm ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Description ( holder : ĠViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lesson . info . isNotBlank () Ġ&& Ġ! lesson . changes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Description No Changes ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Description . visibility Ġ= ĠG ONE ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Room . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Teacher . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Description No Changes ( holder : ĠViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Description . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Description . text Ġ= Ġlesson . info ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Room . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Teacher . visibility Ġ= ĠG ONE ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Description . setTextColor ( holder . view . context . get Theme Attr Color ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lesson . c anceled ) ĠR . attr . color Primary ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠR . attr . color Time table Change ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Colors ( holder : ĠViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lesson . c anceled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Number . setTextColor ( holder . view . context . get Theme Attr Color ( R . attr . color Primary )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime table Item Subject . setTextColor ( holder . view . context . get Theme Attr Color ( R . attr . color Primary )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Number Color ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Subject Color ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Room Color ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Teacher Color ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Number Color ( holder : ĠViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . timetable Item Number . setTextColor ( holder . view . context . get Theme Attr Color ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lesson . changes Ġ|| Ġlesson . info . isNotBlank ()) ĠR . attr . color Time table Change ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġandroid . R . attr . textColor Primary ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Subject Color ( holder : ĠViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . timetable Item Subject . setTextColor ( holder . view . context . get Theme Attr Color ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lesson . subject Old . isNotBlank () Ġ&& Ġlesson . subject Old Ġ!= Ġlesson . subject ) ĠR . attr . color Time table Change ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġandroid . R . attr . textColor Primary ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Room Color ( holder : ĠViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . timetable Item Room . setTextColor ( holder . view . context . get Theme Attr Color ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lesson . room Old . isNotBlank () Ġ&& Ġlesson . room Old Ġ!= Ġlesson . room ) ĠR . attr . color Time table Change ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġandroid . R . attr . textColor Secondary ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Teacher Color ( holder : ĠViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . timetable Item Teacher . setTextColor ( holder . view . context . get Theme Attr Color ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lesson . teacher Old . isNotBlank () Ġ&& Ġlesson . teacher Old Ġ!= Ġlesson . teacher ) ĠR . attr . color Time table Change ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġandroid . R . attr . textColor Secondary ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠTime table Item ĊĊĠĠĠĠĠĠĠ Ġif Ġ( lesson Ġ!= Ġother . lesson ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġlesson . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġlesson . id . toInt () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( val Ġview : ĠView , Ġadapter : ĠFlex ible Adapter <* >) Ġ: ĠFlex ible ViewHolder ( view , Ġadapter ), ĠLayout Container Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġcontainer View : ĠView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġcontent View ĊĠĠĠ Ġ} Ċ } Ċ