package Ġtool . xf y 9 3 2 6 . schedule . ui . activity Ċ Ċ import Ġandroid . webkit . Javascript Interface Ċ import Ġandroid . webkit . WebView Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġkotlinx . coroutines . flow . first Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġlib . xf y 9 3 2 6 . li ved ata . observe Event Ċ import Ġtool . xf y 9 3 2 6 . schedule . beans . Schedule Import Request Params Ċ import Ġtool . xf y 9 3 2 6 . schedule . content . js . J SC ourse Parser Ċ import Ġtool . xf y 9 3 2 6 . schedule . content . js . J SC ourse Provider Ċ import Ġtool . xf y 9 3 2 6 . schedule . data . AppSettings DataStore Ċ import Ġtool . xf y 9 3 2 6 . schedule . databinding . Activity Fragment Container Binding Ċ import Ġtool . xf y 9 3 2 6 . schedule . ui . activity . base . Abstract Web Course Provider Activity Ċ import Ġtool . xf y 9 3 2 6 . schedule . ui . dialog . FullScreen Loading Dialog Ċ import Ġtool . xf y 9 3 2 6 . schedule . ui . vm . J SC ourse Provider ViewModel Ċ import Ġtool . xf y 9 3 2 6 . schedule . utils . JS Bridge Ċ import Ġtool . xf y 9 3 2 6 . schedule . utils . schedule . Schedule Import Manager Ċ import Ġtool . xf y 9 3 2 6 . schedule . utils . view . Dialog Utils Ċ Ċ class ĠJ SC ourse Provider Activity Ġ: ĠAbstract Web Course Provider Activity < String , ĠJ SC ourse Provider , ĠJ SC ourse Parser , ĠJ SC ourse Provider ViewModel >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġloading Controller Ġby Ġlazy Ġ{ ĠFull Screen Loading Dialog . Controller . newInstance ( this , Ġsupport FragmentManager ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġenable JS Network Ġ= Ġrun Blocking Ġ{ ĠApp Settings DataStore . js Course Import Enable Network Flow . first () Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġvm Class Ġ= ĠJ SC ourse Provider ViewModel :: class ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind LiveData ( view Binding : ĠActivity Fragment Container Binding , ĠviewModel : ĠJ SC ourse Provider ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Bind LiveData ( view Binding , ĠviewModel ) ĊĠĠĠĠĠĠĠ ĠviewModel . js Content . observe Event ( this , Ġobserver Ġ= Ġ:: on JS Loaded ) ĊĠĠĠĠĠĠĠ ĠviewModel . provider Error . observe Event ( this , Ġjava Class . simple Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Controller . hide () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Init View ( view Binding : ĠActivity Fragment Container Binding , ĠviewModel : ĠJ SC ourse Provider ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Init View ( view Binding , ĠviewModel ) ĊĠĠĠĠĠĠĠ Ġloading Controller . setOn Request Cancel Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Utils . show Cancel Schedule Import Dialog ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . finish Import () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Controller . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Setup WebView ( web View : ĠWebView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠwebView . add Javascript Interface ( object Ġ: ĠJ SB ridge . J SC ourse Provider JS Interface Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Javascript Interface ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon JS Provider Response ( result JSON : ĠString , Ġis Current Schedule : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Import Course ( Schedule Import Request Params ( is Current Schedule , Ġresult JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĠJ SB ridge . JS _ CO URSE _ PROVIDER _ JS _ INTERFACE _ NAME ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Import Course To Schedule ( is Current Schedule : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ViewModel (). request JS Content ( is Current Schedule ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon JS Loaded ( js Content : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfragment Contact . evaluate Javascript ( js Content ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Ready Import Course () Ġ{ ĊĠĠĠĠĠĠĠ Ġloading Controller . show () ĊĠĠĠĠĠĠĠ Ġif Ġ(!( require ViewModel (). is Require Network Ġ&& Ġenable JS Network )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Contact . set WebView Connection ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Course Import Finish ( result : ĠSchedule Import Manager . Import Result , Ġedit Schedule Id : ĠLong ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(!( require ViewModel (). is Require Network Ġ&& Ġenable JS Network )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Contact . set WebView Connection ( true ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Contact . refresh () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġloading Controller . hide () ĊĠĠĠ Ġ} Ċ }