package Ġcom . tu . pm u . the 1 0 0 th . data . network . dataSource Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . tu . pm u . the 1 0 0 th . data . network . dataSource . interfaces . Auth Login Network DataSource Ċ import Ġcom . tu . pm u . the 1 0 0 th . data . network . respon ces . Auth Login Response Ċ import Ġcom . tu . pm u . the 1 0 0 th . data . provider . Preference Provider Ċ import Ġcom . tu . pm u . the 1 0 0 th . data . services . Auth ApiService Ċ import Ġcom . tu . pm u . the 1 0 0 th . internal . utils . No Internet Exception Ċ import Ġretrofit 2 . HttpException Ċ Ċ class ĠAuth Login Network DataSource Impl ( private Ġval Ġauth ApiService : ĠAuth ApiService , Ġval Ġpreference Provider : ĠPreference Provider ) Ġ: ĊĠĠĠ ĠAuth Login Network DataSource Ġ{ ĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" Auth Login Network DataSource " ĊĠĠĠ Ġprivate Ġval Ġdownloaded Auth Data Mutable Ġ= ĠMutable LiveData < Auth Login Response >() ĊĠĠĠ Ġoverride Ġval Ġdownloaded Auth Data : ĠLive Data < Auth Login Response > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdownloaded Auth Data Mutable ĊĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġfetch Login Response ( email : ĠString , Ġpassword : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfetched Auth Ġ= Ġauth ApiService ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. user Login Async ( email , Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. await () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Provider . save AccessToken With String ( f etched Auth . accessToken ) Ġ// ĠRE WORK ĠDEBUG ĠACCESS ĠTOKEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdownloaded Auth Data Mutable . post Value ( f etched Auth ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . d (" TAG _ connectivity ", Ġ" CURRENT ĠWE ATHER : Ġ\ n $ f etched Auth \ n ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignored : ĠNo Internet Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" No ĠInternet ĠConnection :") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttp Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fetch Current Weather Ġwith Ġhttp Ġerror Ġcode :\ n Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ e . code ()}, Ġmessage : Ġ${ e . message ()}, Ġis Successful : Ġ${ e . response ()?. is Successful } Ġ${ e . response ()?. message ()} Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊ Ċ }