package Ġde . opens ourced . mir r ord is play . services Ċ Ċ import Ġde . opens ourced . mir r ord is play . exceptions . Weather Request FailedException Ċ import Ġde . opens ourced . mir r ord is play . models . Open Weather Forecast Ċ import Ġde . opens ourced . mir r ord is play . util . Open Weather Loader ĊĊ Ċ class ĠFore cast Service ( private Ġval Ġlat : ĠString , Ġprivate Ġval Ġlong : ĠString , Ġprivate Ġval Ġopen Weather ApiKey : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback On Update : ĠRunnable , Ġcallback OnError : ĠRunnable ) Ġ: ĠBase Service ( callback On Update , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback OnError ) Ġ{ ĊĊĠĠĠ Ġvar Ġlatest Weather Forecast : ĠOpen Weather Forecast ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġlast Error : ĠWeather Request FailedException ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġget Interval Milliseconds (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 3 0 Ġ* Ġ 6 0 Ġ* Ġ 1 0 0 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwork () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġopen Weather Loader Ġ= ĠOpen Weather Loader ( open Weather ApiKey , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlat , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Weather Forecast Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Weather Loader . request Weather () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠWeather Request FailedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Error Ġ= Ġe ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }