package Ġxyz . b 5 1 5 . schedule . util Ċ Ċ import Ġcom . jr ummy apps . android . color picker . Color Picker Dialog Ċ import Ġorg . js oup . J soup Ċ import Ġxyz . b 5 1 5 . schedule . db . Course Manager Ċ import Ġxyz . b 5 1 5 . schedule . entity . Course Ċ import Ġxyz . b 5 1 5 . schedule . entity . Sp ac etime Ċ import Ġjava . util .* Ċ Ċ object ĠCourse Parser Ġ{ ĊĠĠĠ Ġprivate Ġval Ġweek day Time Pattern Ġ= Ġ" åĳ¨ ( .) ç¬¬ (. +) èĬĤ \\ { ç¬¬ (\\ d +) -( \\ d +) åĳ¨ \\ }". to Regex () ĊĊĠĠĠ Ġfun Ġparse ( text : ĠString , Ġmanager : ĠCourse Manager ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnames Ġ= ĠArrayList < String >() ĊĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= ĠJ soup . parse ( text ) ĊĠĠĠĠĠĠĠ Ġval Ġcourses Ġ= Ġdocument . getElementById (" Table 1 "). getElementsBy Tag (" td ") ĊĠĠĠĠĠĠĠ Ġfor Ġ( td Ġin Ġcourses ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" åĳ¨ " Ġ! in Ġtd . text ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( nodes Ġin Ġtd . text Nodes (). map Ġ{ Ġit . text () Ġ}. chunk ed ( 4 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġnodes [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcourse : ĠCourse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name Ġ! in Ġnames ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnames . add ( name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcourse Ġ= ĠCourse () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcourse . name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcourse . teacher Ġ= Ġnodes [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= ĠColor Picker Dialog . MAT ERIAL _ COLORS [ Random (). nextInt ( 1 8 )] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcourse . color Ġ= ĠColor Helper . shade Color ( color , Ġ 0 . 3 3 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanager . insert Course ( course ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcourse Ġ= Ġmanager . getC ourse ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp ac etime Ġ= ĠSp ac etime () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ac etime . course Ġ= Ġcourse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġweek day Time Pattern . find ( nodes [ 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= Ġm . group Values ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweeks Ġ= Ġvalues [ 2 ]. split (",") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( spac etime ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek day Ġ= Ġtranslate Week day ( values [ 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartTime Ġ= Ġweeks . first (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠendTime Ġ= Ġweeks . last (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Week Ġ= Ġvalues [ 3 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Week Ġ= Ġvalues [ 4 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= Ġnodes [ 3 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġodd Week Ġ= Ġ" åįķ åĳ¨ " Ġin Ġnodes [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeven Week Ġ= Ġ" åıĮ åĳ¨ " Ġin Ġnodes [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanager . insert Sp ac etime ( spac etime ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtranslate Week day ( s : ĠString ) Ġ= Ġwhen Ġ( s ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" ä¸Ģ " Ġ-> ĠCalendar . MON DAY ĊĠĠĠĠĠĠĠ Ġ" äºĮ " Ġ-> ĠCalendar . T UES DAY ĊĠĠĠĠĠĠĠ Ġ" ä¸ī " Ġ-> ĠCalendar . W ED N ES DAY ĊĠĠĠĠĠĠĠ Ġ" åĽĽ " Ġ-> ĠCalendar . TH UR SD AY ĊĠĠĠĠĠĠĠ Ġ" äºĶ " Ġ-> ĠCalendar . FR ID AY ĊĠĠĠĠĠĠĠ Ġ" åħŃ " Ġ-> ĠCalendar . S ATUR DAY ĊĠĠĠĠĠĠĠ Ġ" æĹ¥ " Ġ-> ĠCalendar . S UND AY ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 ĊĠĠĠ Ġ} Ċ Ċ } Ċ