package Ġcom . se th ch him . kub oo _ remote . task Ċ Ċ import Ġandroid . accounts . Network ErrorException Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . se th ch him . kub oo _ remote . K ub oo Remote Ċ import Ġcom . se th ch him . kub oo _ remote . model . Book Ċ import Ġcom . se th ch him . kub oo _ remote . model . Login Ċ import Ġcom . se th ch him . kub oo _ remote . model . Neighbors Ċ import Ġcom . se th ch him . kub oo _ remote . util . Settings . isDebug Ok Http Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . net . Malformed URLException Ċ import Ġjava . net . Socket TimeoutException Ċ Ċ class ĠTask _ Remote Neighbors Next Page ( kub oo Remote : ĠK ub oo Remote , Ġlogin : ĠLogin , Ġbook : ĠBook , Ġstring Url : ĠString ) Ġ{ ĊĊĠĠĠ Ġinternal Ġval Ġlive Data Ġ= ĠMutable LiveData < Neighbors >() ĊĊĠĠĠ Ġprivate Ġval Ġok Http Helper Ġ= Ġk ub oo Remote . ok Http Helper ĊĠĠĠ Ġprivate Ġval Ġparse Service Ġ= Ġok Http Helper . parse Service ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġk ub oo Remote . network IO . execute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcall Ġ= Ġok Http Helper . get Call ( login , Ġstring Url , Ġjava Class . simple Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġcall . execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠinputStream Ġ= Ġresponse . body ()?. byte Stream () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful Ġ&& ĠinputStream Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput AsString Ġ= ĠinputStream . buffered Reader (). use Ġ{ Ġit . read Text () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġparse Service . parse Neighbor Next Page ( login , Ġbook , Ġinput AsString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk ub oo Remote . main Thread . execute Ġ{ Ġlive Data . value Ġ= Ġresult Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠinputStream . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNetwork ErrorException (" Response Ġis Ġnot Ġsuccessful ! Ġ$ string Url ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSocket TimeoutException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isDebug Ok Http ) ĠTim ber . w (" Connection Ġtimed Ġout ! Ġ$ string Url ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk ub oo Remote . main Thread . execute Ġ{ Ġlive Data . value Ġ= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠMal formed URLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isDebug Ok Http ) ĠTim ber . e (" URL Ġis Ġbad ! Ġ$ string Url ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk ub oo Remote . main Thread . execute Ġ{ Ġlive Data . value Ġ= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isDebug Ok Http ) ĠTim ber . e (" Something Ġwent Ġwrong ! Ġ$ string Url ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk ub oo Remote . main Thread . execute Ġ{ Ġlive Data . value Ġ= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }