package Ġcom . ev an is nor . hand y auth . client . internal . state Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġcom . ev an is nor . hand y auth . client . internal . state . model . Auth State Ċ import Ġcom . ev an is nor . hand y auth . client . internal . state . model . Auth State Json Adapter Ċ Ċ class ĠShared Prefs Cache ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġinstance Identifier : ĠString , ĊĠĠĠ Ġprivate Ġval Ġauth State Json Adapter : ĠAuth State Json Adapter Ċ ) Ġ: ĠAuth State Cache Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSTATE _ KEY Ġ= Ġ" auth State " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġshared Preferences : ĠSharedPreferences Ġ= Ġcontext . get SharedPreferences ( ĊĠĠĠĠĠĠĠ Ġ" com . ev an is nor . hand y auth . client . internal .$ instance Identifier ", ĊĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġsave ( auth State : ĠAuth State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshared Preferences . edit (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( STATE _ KEY , Ġauth State Json Adapter . toJson ( auth State )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġread (): ĠAuth State Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstate Json Ġ= Ġshared Preferences . getString ( STATE _ KEY , Ġnull ) Ġ?: Ġ"{} " ĊĠĠĠĠĠĠĠ Ġreturn Ġauth State Json Adapter . fromJson ( state Json ) Ġ?: ĠAuth State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear () Ġ= Ġshared Preferences . edit (). clear (). apply () Ċ Ċ }