package Ġcom . rod rig matrix . sig aa u fc . data Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Environment Ċ import Ġandroid . os . Strict Mode Ċ import Ġandroid . util . Log Ċ import Ġcom . rod rig matrix . sig aa u fc . data . network . Connectivity Interceptor Ċ import Ġcom . rod rig matrix . sig aa u fc . internal . No Connectivity Exception Ċ import Ġcom . rod rig matrix . sig aa u fc . internal . TimeoutException Ċ import Ġcom . rod rig matrix . sig aa u fc . persistence . Student Database Ċ import Ġcom . rod rig matrix . sig aa u fc . persistence . entity . History RU Ċ import Ġcom . rod rig matrix . sig aa u fc . persistence . entity . J avax Faces Ċ import Ġcom . rod rig matrix . sig aa u fc . persistence . entity . Student Ċ import Ġcom . rod rig matrix . sig aa u fc . persistence . entity . Student Class Ċ import Ġcom . rod rig matrix . sig aa u fc . serializer . Serializer Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġokhttp 3 . Form Body Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġjava . net . Socket TimeoutException ĊĊ Ċ @ Suppress (" DE PREC ATION ") Ċ class ĠSig aa Ok Http ( ĊĠĠĠ Ġprivate Ġval ĠhttpClient : ĠOk HttpClient . Builder , ĊĠĠĠ Ġprivate Ġval Ġsig aa Serializer : ĠSerializer , ĊĠĠĠ Ġprivate Ġval Ġstudent Database : ĠStudent Database , ĊĠĠĠ Ġprivate Ġval Ġconnectivity Interceptor : ĠConnect ivity Interceptor Ċ ) Ġ{ ĊĊĠĠĠ Ġsuspend Ġfun Ġget Cookie (): ĠBoolean { ĊĠĠĠĠĠĠĠ Ġvar Ġstatus Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcookie Ġ= Ġresponse . request . url . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarr Ġ= Ġcookie . split (" j session id =") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstudent Ġ= Ġstudent Database . student Dao (). get Student Async () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( student Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert Student ( Student ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarr [ 1 ], Ġ"", Ġ"", Ġ"", Ġ"", Ġ"", Ġfalse , Ġ"", Ġ"")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent . j session Ġ= Ġarr [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert Student ( student ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch ( e : ĠNo Connectivity Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠSocket TimeoutException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" Timeout ĠException ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġstatus ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave ViewState ( res : ĠString ? ){ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview State String Ġ= Ġres !!. split (" id =\" javax . faces . ViewState \" Ġvalue =\" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview State Id Ġ= Ġview State String [ 1 ]. split ("\" Ġ" )[ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview State Ġ= Ġstudent Database . student Dao (). getView State Async () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" view state Ġto Ġsave Ġ$ view State ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert ViewState ( J avax Faces ( true , Ġview State Id )) ĊĠĠĠĠĠĠĠ Ġ} catch ( e : ĠIndex OutOfBoundsException ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" SAVE VIEW STATE Ġ$ e ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġget ViewState Async (): ĠJ avax Faces ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Context Ġstudent Database . student Dao (). getView State Async () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġlogin ( cookie : ĠString , Ġlogin : ĠString , Ġpassword : ĠString ): ĠString { ĊĠĠĠĠĠĠĠ Ġprintln (" cookie Ġlogin Ġ$ cookie ") ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġstatus Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Body Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" width ", Ġ" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" height ", Ġ" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" user . login ", Ġlogin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" user . sen ha ", Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" ent rar ", Ġ" Entr ar ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" url Redirect ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" acao "," ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa / log ar . do ? dispatch = log On ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Content - Type ", Ġ" application / x - www - form - urlencoded ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Cookie ", Ġ" J SESSION ID =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Refer er ", Ġ" https :// si 3 . u fc . br / sig aa / ver T ela Login . do ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( form Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= Ġsig aa Serializer . parse Login ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġwhen ( parser ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Continu ar " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġredirect Menu ( cookie ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Menu ĠPrincipal " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġredirect Menu ( cookie ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Us u Ã¡rio Ġe / ou Ġsen ha Ġinv Ã¡l idos " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Us u Ã¡rio Ġou Ġsen ha Ġinv Ã¡l idos " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" V inc ulo " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). delete V inc ulos () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsig aa Serializer . get V inc ulo Id ( res ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert V inc ulos ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" V inc ulo " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparser ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Erro Ġde Ġconex Ã£o " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch ( e : ĠNo Connectivity Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Sem Ġconex Ã£o Ġcom Ġa Ġinternet " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠSocket TimeoutException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" catch Ġex pi ro u ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Temp o Ġde Ġconex Ã£o Ġex pi ro u " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Context Ġstatus ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġsuspend Ġfun Ġset V inc ulo ( cookie : ĠString , Ġv inc ulo Id : ĠString ){ ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa / es col ha V inc ulo . do ? dispatch = es col her & v inc ulo =$ v inc ulo Id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Content - Type ", Ġ" application / x - www - form - urlencoded ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Cookie ", Ġ" J SESSION ID =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Refer er ", Ġ" https :// si 3 . u fc . br / sig aa / v inc ulos . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Classes ( cookie ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch ( e : ĠNo Connectivity Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠSocket TimeoutException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" catch Ġex pi ro u ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġredirect Menu ( cookie : ĠString ): ĠString { ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa / pag ina In icial . do ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Cookie ", Ġ" J SESSION ID =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Refer er ", Ġ" https :// si 3 . u fc . br / sig aa / ver T ela Login . do % 3 bj session id =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġstatus Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( res !!. contains (" Menu ĠPrincipal ")){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġget Classes ( cookie ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġif ( res Ġ!= Ġ" Success "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Temp o Ġde Ġconex Ã£o Ġex pi ro u " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Success " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Temp o Ġde Ġconex Ã£o Ġex pi ro u " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Context Ġstatus ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġsuspend Ġfun Ġget Classes ( cookie : ĠString ): ĠString { ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa / ver Portal Dis cent e . do ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Cookie ", Ġ" J SESSION ID =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Refer er ", Ġ" https :// si 3 . u fc . br / sig aa / pag - ina In icial . do ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Host ", Ġ" si 3 . u fc . br ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġstatus Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave ViewState ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpair Ġ= Ġsig aa Serializer . parse Classes ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġnew Classes Ġ= Ġmutable ListOf < Student Class >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpair . second . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . sync ed Ġ= Ġstudent Database . student Dao (). getClass With Id Tur ma Async ( it . tur ma Id ). is Previous ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Classes . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcatch ( e : ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Classes Ġ= Ġpair . second ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). delete Classes () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Classes . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert Class ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstudent Ġ= Ġstudent Database . student Dao (). get Student Async () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( student Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpair Student Ġ= Ġpair . first ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent . course Ġ= Ġpair Student . course ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent . mat ric ula Ġ= Ġpair Student . mat ric ula ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent . name Ġ= Ġpair Student . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent . profile Pic Ġ= Ġpair Student . profile Pic ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent . n ivel Ġ= Ġpair Student . n ivel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent . ent rada Ġ= Ġpair Student . ent rada ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent . email Ġ= Ġpair Student . email ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent . last Update Ġ= Ġsig aa Serializer . parse I ra RequestId ( res ). first ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert Student ( student ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Success " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpair I ra Ġ= Ġsig aa Serializer . parse I ra RequestId ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget I ra ( pair I ra . first , Ġpair I ra . second , Ġcookie ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerror Ġ= Ġresponse . body ?. string () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror !!. contains (" Us u Ã¡rio ĠN Ã£o ĠA utor izado ") Ġ-> Ġ" A cesso Ġneg ado . ĠT ente Ġef et uar Ġlogin Ġnov amente " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror . contains (" O Ġsistema Ġcomport ou - se Ġde Ġforma Ġin es per ada ") Ġ-> Ġ" Erro Ġao Ġcar regar Ġdis cipl inas . ĠT ente Ġef et uar Ġlogin Ġnov amente " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Erro Ġao Ġef et uar Ġlogin . ĠT ente Ġnov amente " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Context Ġstatus ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Previous Classes ( cookie : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlist Classes Ġ= Ġmutable ListOf < Student Class >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa / port ais / dis cent e / tur mas . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Cookie ", Ġ" J SESSION ID =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Refer er ", Ġ" https :// si 3 . u fc . br / sig aa / port ais / dis cent e / dis cent e . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave ViewState ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Classes Ġ= Ġsig aa Serializer . parse Previous Classes ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Classes . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert Class ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch ( e : ĠTimeout Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġget I ra ( id : ĠString , Ġscript : ĠString , Ġcookie : ĠString ){ ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= Ġget ViewState Async ()?. value State . or Empty () ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġstatus Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlist Classes Ġ= Ġmutable ListOf < Student Class >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Body Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" menu : form _ menu _ dis cent e ", Ġ" menu : form _ menu _ dis cent e ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" js cook _ action ", Ġscript ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" javax . faces . ViewState ", Ġview State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa / port ais / dis cent e / dis cent e . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Cookie ", Ġ" J SESSION ID =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Refer er ", Ġ" https :// si 3 . u fc . br / sig aa / port ais / dis cent e / dis cent e . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( form Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). delete I ra () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert I ra ( sig aa Serializer . parse I ra ( res )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch ( e : ĠNo Connectivity Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Sem Ġconex Ã£o Ġcom Ġa Ġinternet " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠSocket TimeoutException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Temp o Ġde Ġconex Ã£o Ġex pi ro u " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget H istor ico ( id : ĠString , Ġcookie : ĠString ){ ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= Ġget ViewState Async ()?. value State . or Empty () ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Body Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" menu : form _ menu _ dis cent e ", Ġ" menu : form _ menu _ dis cent e ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" js cook _ action ", Ġ" menu _ form _ menu _ dis cent e _ j _ id _ jsp _ 4 4 0 1 8 1 9 7 2 _ 4 _ menu : A ] #{ Ġportal Dis cent e . h istor ico Ġ} ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" javax . faces . ViewState ", Ġview State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa / port ais / dis cent e / dis cent e . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Cookie ", Ġ" J SESSION ID =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Refer er ", Ġ" https :// si 3 . u fc . br / sig aa / port ais / dis cent e / dis cent e . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( form Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġresponse . body ?. byte Stream () !!. read Bytes () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdirectory Ġ= ĠEnvironment . get External Storage Directory (). toString () Ġ+ Ġ"/ Download " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir Ġ= Ġjava . io . File ( directory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! dir . exists ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdir . mkdir s () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġjava . io . File ("$ directory / h istor ico _ sig aa . pdf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile . createNew File () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava . io . File ( directory , Ġ" h istor ico _ sig aa . pdf "). write Bytes ( content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStrict Mode . Vm Policy . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStrict Mode . set Vm Policy ( builder . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . detect File Uri Exposure () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopen File Ġ= Ġjava . io . File ("$ directory / h istor ico _ sig aa . pdf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . setData And Type (( Uri . from File ( open File )), Ġ" application / pdf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ NO _ HISTORY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch ( e : ĠNo Connectivity Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠSocket TimeoutException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġsuspend Ġfun ĠgetClass ( id : ĠString , Ġid Tur ma : ĠString , Ġcookie : ĠString ){ ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= Ġget ViewState Async ()?. value State . or Empty () ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). delete Files ( id Tur ma ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Body Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" id Tur ma ", Ġid Tur ma ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" form _ ac ess ar Tur ma Virtual $ id ", Ġ" form _ ac ess ar Tur ma Virtual $ id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" form _ ac ess ar Tur ma Virtual $ id : tur ma Virtual $ id ", Ġ" form _ ac ess ar Tur ma Virtual $ id : tur ma Virtual $ id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" javax . faces . ViewState ", Ġview State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa / port ais / dis cent e / dis cent e . jsf # ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Content - Type ", Ġ" application / x - www - form - urlencoded ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Cookie ", Ġ" J SESSION ID =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Refer er ", Ġ" https :// si 3 . u fc . br / sig aa / port ais / dis cent e / dis cent e . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( form Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave ViewState ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= Ġsig aa Serializer . parse Files ( res , Ġid Tur ma ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiles . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert File ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnews RequestId Ġ= Ġsig aa Serializer . parse News RequestId ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstudent Class Ġ= Ġstudent Database . student Dao (). getClass With Id Tur ma Async ( id Tur ma ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Class . code Ġ= Ġnews RequestId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert Class ( student Class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Gr ades ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsig aa Serializer . parse Gr ades RequestId ( res ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Tur ma , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookie ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Attendance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsig aa Serializer . parse Attendance RequestId ( res ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Tur ma , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookie ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget News ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Tur ma , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnews RequestId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookie ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// println ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Previous Class ( id : ĠString , Ġid Tur ma : ĠString , Ġcookie : ĠString ){ ĊĠĠĠĠĠĠĠ Ġvar Ġstatus Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġmutable ListOf < Student Class >() ĊĠĠĠĠĠĠĠ Ġval Ġview State Id Ġ= Ġget ViewState Async ()?. value State . or Empty () ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Body Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" j _ id _ jsp _ 1 3 4 4 8 0 9 1 4 1 _ 2 ", Ġ" j _ id _ jsp _ 1 3 4 4 8 0 9 1 4 1 _ 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" j _ id _ jsp _ 1 3 4 4 8 0 9 1 4 1 _ 2 : j _ id _ jsp _ 1 3 4 4 8 0 9 1 4 1 _ 4 $ id ", Ġ" j _ id _ jsp _ 1 3 4 4 8 0 9 1 4 1 _ 2 : j _ id _ jsp _ 1 3 4 4 8 0 9 1 4 1 _ 4 $ id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" javax . faces . ViewState ", Ġview State Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" id Tur ma ", Ġid Tur ma ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa / port ais / dis cent e / tur mas . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Content - Type ", Ġ" application / x - www - form - urlencoded ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Cookie ", Ġ" J SESSION ID =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( form Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . is Successful Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave ViewState ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= Ġsig aa Serializer . parse Files ( res , Ġid Tur ma ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiles . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert File ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnews RequestId Ġ= Ġsig aa Serializer . parse News RequestId ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstudent Class Ġ= Ġstudent Database . student Dao (). get Previous Class With Id Tur ma Async ( id Tur ma ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Class . code Ġ= Ġnews RequestId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert Class ( student Class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Gr ades ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsig aa Serializer . parse Gr ades RequestId ( res ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Tur ma , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookie ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Attendance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsig aa Serializer . parse Attendance RequestId ( res ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Tur ma , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookie ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget News ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Tur ma , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnews RequestId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookie ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Success " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Temp o Ġde Ġconex Ã£o Ġex pi ro u " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġget Gr ades ( requestId : ĠString , Ġid Tur ma : ĠString , Ġcookie : ĠString ){ ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= Ġget ViewState Async ()?. value State . or Empty () ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġstatus Ġ= Ġ" Temp o Ġde Ġconex Ã£o Ġex pi ro u " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Body Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" form Menu ", Ġ" form Menu ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( requestId , ĠrequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" javax . faces . ViewState ", Ġview State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa / ava / index . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Content - Type ", Ġ" application / x - www - form - urlencoded ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Cookie ", Ġ" J SESSION ID =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Refer er ", Ġ" https :// si 3 . u fc . br / sig aa / ava / index . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( form Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave ViewState ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsig aa Serializer . parse Gr ades ( id Tur ma , Ġres ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert Grade ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch ( e : ĠNo Connectivity Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Sem Ġconex Ã£o Ġcom Ġa Ġinternet " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠSocket TimeoutException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Temp o Ġde Ġconex Ã£o Ġex pi ro u " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġget Attendance ( is Previous : ĠBoolean , ĠrequestId : ĠString , Ġid Tur ma : ĠString , Ġcookie : ĠString ){ ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= Ġget ViewState Async ()?. value State . or Empty () ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġstatus Ġ= Ġ" Temp o Ġde Ġconex Ã£o Ġex pi ro u " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Body Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" form Menu ", Ġ" form Menu ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( requestId , ĠrequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" javax . faces . ViewState ", Ġview State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa / ava / index . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" form Menu ", Ġ" form Menu ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Content - Type ", Ġ" application / x - www - form - urlencoded ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Cookie ", Ġ" J SESSION ID =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Refer er ", Ġ" https :// si 3 . u fc . br / sig aa / port ais / dis cent e / dis cent e . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( form Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġatt endance Ġ= Ġsig aa Serializer . parse Attendance ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstudent Class Ġ= Ġwhen ( is Previous ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġstudent Database . student Dao (). get Previous Class With Id Tur ma Async ( id Tur ma ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġstudent Database . student Dao (). getClass With Id Tur ma Async ( id Tur ma ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Class . attendance Ġ= Ġatt endance . at tended ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Class . missed Ġ= Ġatt endance . missed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert Class ( student Class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" erro ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch ( e : ĠNo Connectivity Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Sem Ġconex Ã£o Ġcom Ġa Ġinternet " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠSocket TimeoutException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Temp o Ġde Ġconex Ã£o Ġex pi ro u " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget News ( id Tur ma : ĠString , ĠrequestId : ĠString , Ġcookie : ĠString ){ ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= Ġget ViewState Async ()?. value State . or Empty () ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġstatus Ġ= Ġ" Temp o Ġde Ġconex Ã£o Ġex pi ro u " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Body Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" form Menu ", Ġ" form Menu ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( requestId , ĠrequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" javax . faces . ViewState ", Ġview State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa / ava / index . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" form Menu ", Ġ" form Menu ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Content - Type ", Ġ" application / x - www - form - urlencoded ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Cookie ", Ġ" J SESSION ID =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Refer er ", Ġ" https :// si 3 . u fc . br / sig aa / port ais / dis cent e / dis cent e . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( form Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnews Ġ= Ġsig aa Serializer . parse News ( id Tur ma , Ġres ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave ViewState ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). delete News ( id Tur ma ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnews . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). insert News ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" erro ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch ( e : ĠNo Connectivity Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Sem Ġconex Ã£o Ġcom Ġa Ġinternet " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠSocket TimeoutException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Temp o Ġde Ġconex Ã£o Ġex pi ro u " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġfetch News Content ( cookie : ĠString , Ġid : ĠString , ĠrequestId : ĠString , ĠrequestId 2 : ĠString ){ ĊĠĠĠĠĠĠĠ Ġval Ġview State Ġ= Ġget ViewState Async ()?. value State . or Empty () ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Body Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( requestId , ĠrequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" javax . faces . ViewState ", Ġview State ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( requestId 2 , ĠrequestId 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / sig aa / ava / Not icia Tur ma / list ar . jsf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Cookie ", Ġ" J SESSION ID =$ cookie ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( form Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġsig aa Serializer . parse News Content ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnews Ġ= Ġstudent Database . student Dao (). getNew sWith Id Async ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnews . content Ġ= Ġcontent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Database . student Dao (). upsert News Content ( news ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" erro ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch ( e : ĠNo Connectivity Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠSocket TimeoutException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget RU ( numero Cart ao : ĠString , Ġmat ric ula : ĠString ): ĠTrip le < String , ĠMutable List < History RU >, ĠPair < String , ĠInt >> { ĊĠĠĠĠĠĠĠ Ġval Ġform Body Ġ= ĠForm Body . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" codigo Cart ao ", Ġnumero Cart ao ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" mat ric ula At rel ada Cart ao ", Ġmat ric ula ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġhistory Ġ= Ġmutable ListOf < History RU >() ĊĠĠĠĠĠĠĠ Ġvar Ġstatus Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġname Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġcredits Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url (" https :// si 3 . u fc . br / public / rest aur ante Consult ar Sal do . do ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( form Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( connectivity Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġresponse . body ?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtriple Ġ= Ġsig aa Serializer . parse RU ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġtriple . first ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( triple . first Ġ== Ġ" Success "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġtriple . second . first ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredits Ġ= Ġtriple . second . second ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtriple . third . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhistory . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġtriple . first ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Erro Ġde Ġconex Ã£o " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch ( e : ĠNo Connectivity Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Sem Ġconex Ã£o Ġcom Ġa Ġinternet " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠSocket TimeoutException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġ" Temp o Ġde Ġconex Ã£o Ġex pi ro u " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Connectivity ", Ġ" No Ġinternet ĠConnection .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Context ĠTrip le ( status , Ġhistory , ĠPair ( name , Ġcredits )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }