package Ġcom . alt am ir ano . fabric io . core . as yn ct ask s Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . alt am ir ano . fabric io . core . commons . Info Url Ċ import Ġcom . alt am ir ano . fabric io . core . listeners . Url Response Ċ import Ġcom . alt am ir ano . fabric io . core . tools . Core AsyncTask Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . InputStream Reader Ċ import Ġjava . net . URL Ċ Ċ /** Ċ Ġ* Ġ@ autor ĠCreated Ġby ĠFabric io ĠAlt am ir ano Ġon Ġ 2 7 / 3 / 1 8 . Ċ Ġ*/ Ċ class ĠLoad Url Info Task ( private Ġvar Ġurl : ĠString ?, Ġprivate Ġval Ġlistener : ĠUrl Response ?) Ġ: ĠCore AsyncTask < Void , ĠVoid ?, ĠInfo Url ?> () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġdo In Background ( var arg Ġparams : ĠVoid ): ĠInfo Url ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinfo Url Ġ= ĠInfo Url () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( url Ġ!= Ġnull Ġ&& Ġurl !!. length Ġ> Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! url !!. startsWith (" http :// ") Ġ|| Ġ! url !!. startsWith (" https :// ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ" http :// $ url " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠURL ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ` in ` Ġ= ĠBufferedReader ( InputStream Reader ( url . open Stream ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġinput Line : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġour : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ(` in `. readLine (). also Ġ{ Ġinput Line Ġ= Ġit Ġ} Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w (" Load Url Info Task ", Ġinput Line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( input Line . contains ("< link Ġrel =\" icon \" ") Ġ&& Ġinfo Url . url _ icon Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġinput Line . indexOf (" href ") Ġ+ Ġ 6 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġour Ġ= Ġinput Line . indexOf (" \"", Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Url . url _ icon Ġ= Ġinput Line . substring ( index , Ġour ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( input Line . contains ("< title >") Ġ&& Ġinfo Url . get _ title () Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġinput Line . indexOf ("< title >") Ġ+ Ġ 7 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġour Ġ= Ġinput Line . indexOf ("</ title >", Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Url . set _ title ( input Line . substring ( index , Ġour )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( input Line . contains ("< description >") Ġ&& Ġinfo Url . description Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġinput Line . indexOf ("< description >") Ġ+ Ġ 1 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġour Ġ= Ġinput Line . indexOf ("</ description >", Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Url . set _ description ( input Line . substring ( index , Ġour )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` in `. close () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġinfo Url ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Post Execute ( result : ĠInfo Url ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġlistener ?. result ( result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pre Execute () Ġ{ ĊĊĠĠĠ Ġ} Ċ }