package Ġcom . bet an et . meta _ ip 1 8 . feature . com . bet an et . meta _ ip 1 8 . feature . service Ċ Ċ import Ġandroid . app . Service Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Binder Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . IB inder Ċ import Ġandroid . os . Looper Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ import Ġjava . util .* ĊĊ Ċ /** Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 ĠAlex ander ĠSh kir kov Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ // Local Ġbinding Ġservice Ċ class ĠCustom Local Binding Service Ġ: ĠService () Ġ{ ĊĊĠĠĠ Ġval ĠbaseUrl Ġ: ĠString Ġ= Ġ" https :// api . open weather map . org / data / 2 . 5 / weather " ĊĠĠĠ Ġval ĠappId Ġ: ĠString Ġ= Ġ" a 2 3 4 bbe 9 dd 7 1 5 c 7 fb 1 0 8 5 8 7 e 4 8 9 bcc 3 5 " ĊĊĠĠĠ Ġprivate Ġval Ġbinder Ġ= ĠCustom Binder () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠCustom Local Binding Service :: class . java . simple Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ( intent : ĠIntent ?): ĠI Binder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbinder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġtimer : ĠTimer ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġt Task : ĠTimer Task ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġinterval : ĠLong Ġ= Ġ 5 0 0 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ Ġtimer Ġ= ĠTimer () ĊĠĠĠĠĠĠĠ Ġschedule () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġstop () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate JsonObject ( json String Ġ: ĠString ?) Ġ: ĠString Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġresponse Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( json String Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= ĠJSONObject ( json String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ+= ĠjsonObject . getString (" name ") Ġ+ Ġ": Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ+= Ġ( jsonObject . getJSONObject (" main "). getDouble (" temp ") Ġ- Ġ 2 7 3 . 1 5 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e Ġ: ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" Json Ġparsing Ġerror : Ġ" Ġ+ Ġe . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġ" ÐĿ ÐµÐ² Ð¾Ð· Ð¼Ð¾Ð¶ Ð½Ð¾ ĠÐ· Ð°Ð³ ÑĢÑĥÐ· Ð¸ÑĤÑĮ ĠÐ¿ÑĢ Ð¾Ð³ Ð½ Ð¾Ð· ĠÐ´Ð»Ñı ĠÑįÑĤ Ð¾Ð³Ð¾ ĠÐ³ Ð¾ÑĢ Ð¾Ð´Ð° " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Local Ġbinding Ġ- Ġ$ response " ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġschedule () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( t Task Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt Task !!. cancel () ĊĠĠĠĠĠĠĠ Ġif Ġ( interval Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġurl Ġ= ĠbaseUrl Ġ+ Ġ"? id = 4 9 8 8 1 7 & appid =" Ġ+ ĠappId Ġ// S aint - Pet ers burg Ġweather ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġt Task Ġ= Ġobject Ġ: ĠTimer Task () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġjson Str Ġ= ĠHttp Handler (). make Service Call ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandler ( Looper . get Main Looper ()). post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , Ġ" Local Ġbinding : ĠHey !" Ġ/* create JsonObject ( json Str ) */, ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimer !!. schedule ( t Task , Ġ 0 , Ġinterval ) ĊĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( t Task Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt Task !!. cancel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġinner Ġclass ĠCustom Binder Ġ: ĠB inder () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġservice : ĠCustom Local Binding Service Ġ= Ġthis @ Custom Local Binding Service ĊĠĠĠ Ġ} Ċ }