/** Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠSK ĠTele com ĠCo ., ĠLtd . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp : www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . sk t . n ugu . sdk . platform . android . login . auth Ċ Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ Ġbase Ġclass Ġfor Ġan Ġauthorized Ġidentity Ċ Ġ**/ Ċ data Ġclass ĠCredentials ( ĊĠĠĠ Ġ/** ĠThe ĠNU GU Ġauth Ġtoken Ġ**/ ĊĠĠĠ Ġvar ĠaccessToken : ĠString , ĊĠĠĠ Ġ/** ĠThe ĠNU GU Ġrefresh Ġtoken Ġ**/ ĊĠĠĠ Ġvar Ġrefresh Token : ĠString , ĊĠĠĠ Ġ/** ĠThe Ġlifetime Ġin Ġseconds Ġof Ġthe Ġaccess Ġtoken Ġ**/ ĊĠĠĠ Ġvar Ġexpires In Second : ĠLong , ĊĠĠĠ Ġ/** ĠOAuth ĠAccess ĠToken ĠType Ġ**/ ĊĠĠĠ Ġvar Ġtoken Type : ĠString Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġclear Ġall Ġof Ġthe Ġelements Ġfrom Ġthis Ġlist . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ ĠaccessToken Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġexpires In Second Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġrefresh Token Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġtoken Type Ġ= Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa Ġstring Ġrepresentation Ġof Ġthe Ġobject . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠ Ġjson . put (" access _ token ", ĠaccessToken ) ĊĠĠĠĠĠĠĠ Ġjson . put (" token _ type ", Ġtoken Type ) ĊĠĠĠĠĠĠĠ Ġjson . put (" expires _ in ", Ġexpires In Second ) ĊĠĠĠĠĠĠĠ Ġjson . put (" refresh _ token ", Ġrefresh Token ) ĊĠĠĠĠĠĠĠ Ġreturn Ġjson . toString () ĊĠĠĠ Ġ} ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComp anion Ġobjects ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠDefault Ġconstructor Ġof ĠCredentials ĊĠĠĠĠĠĠĠĠ Ġ**/ ĊĠĠĠĠĠĠĠ Ġfun ĠDEFAULT () Ġ= ĠCredentials ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠaccessToken Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Token Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpires In Second Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Type Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠParse Ġto Ġa ĠCredentials ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġstring Ġis Ġjson Ġformat ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġa ĠCredentials ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġparse ( string : ĠString ): ĠCredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJSONObject ( string ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCredentials ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaccessToken Ġ= Ġif Ġ(! has (" access _ token ")) Ġ"" Ġelse Ġget (" access _ token "). toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Token Ġ= Ġif Ġ(! has (" refresh _ token ")) Ġ"" Ġelse Ġget (" refresh _ token "). toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpires In Second Ġ= ĠDate (). time Ġ+ Ġif Ġ(! has (" expires _ in ")) Ġ 0 Ġelse Ġget (" expires _ in "). toString (). to Long () Ġ* Ġ 1 0 0 0 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Type Ġ= Ġif Ġ(! has (" token _ type ")) Ġ"" Ġelse Ġget (" token _ type "). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDEFAULT () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructs Ġa Ġnew Ġ[ Credentials ] Ġbuilder , ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe ĠNU GU Ġauth Ġtoken . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠaccessToken : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe ĠNU GU Ġrefresh Ġtoken . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġrefresh Token : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġlifetime Ġin Ġseconds Ġof Ġthe Ġaccess Ġtoken . ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġtime Ġwhen Ġcredentials Ġshould Ġbe Ġconsidered Ġexpired . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġexpires In Second : ĠLong Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠOAuth ĠAccess ĠToken ĠType ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// tools . ietf . org / html / rfc 6 7 5 0 ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġtoken Type : ĠString Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠReturns Ġa Ġnew Ġinstance Ġof Ġan ĠCredentials Ġbased Ġon Ġthis Ġbuilder . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġbuild () Ġ= ĠCredentials ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠaccessToken , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Token , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpires In Second , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Type ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }