package Ġcom . ches ire . mal ime . mal . api Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Base 6 4 Ċ import Ġcom . ches ire . mal ime . core . api . Author izer Ċ import Ġcom . ches ire . mal ime . core . models . Auth Model Ċ import Ġcom . ches ire . mal ime . core . sec . Decrypt or Ċ import Ġcom . ches ire . mal ime . core . sec . Encrypt or Ċ import Ġcom . google . gson . Gson Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ private Ġconst Ġval ĠAUTH _ PRE F _ FILE Ġ= Ġ" mal ime _ mal _ auth _ pref " Ċ private Ġconst Ġval ĠAUTH _ ALIAS Ġ= Ġ" mal _ private _ auth " Ċ private Ġconst Ġval ĠP REFERENCE _ AUTH Ġ= Ġ" pref _ auth " Ċ private Ġconst Ġval ĠP REFERENCE _ USER Ġ= Ġ" pref _ user " Ċ Ċ // ĠThis Ġshould Ġperform Ġsome Ġcaching Ġon Ġthe Ġcredentials Ċ @ Singleton Ċ class ĠMal Author izer Ġ@ Inject Ġconstructor ( context : ĠContext ) Ġ: ĠAuthor izer < String > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġpref Ġ= Ġcontext . get SharedPreferences ( AUTH _ PRE F _ FILE , ĠContext . MODE _ PRIVATE ) ĊĠĠĠ Ġprivate Ġval Ġencrypt or Ġby Ġlazy Ġ{ ĠEncrypt or ( context . application Context ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġdecrypt or Ġby Ġlazy Ġ{ ĠDecrypt or () Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstore Auth Details ( model : ĠAuth Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġencrypted Ġ= Ġencrypt or . encrypt Text ( AUTH _ ALIAS , ĠGson (). toJson ( model )) ĊĠĠĠĠĠĠĠ Ġpref . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. putString ( PREFER ENCE _ AUTH , ĠBase 6 4 . encode ToString ( encrypted , ĠBase 6 4 . DEFAULT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġretrieve Auth Details (): ĠAuth Model Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġauth Ġ= Ġpref . getString ( PREFER ENCE _ AUTH , Ġ"") ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( auth . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecrypted Ġ= Ġdecrypt or . decrypt Data ( AUTH _ ALIAS , ĠBase 6 4 . decode ( auth , ĠBase 6 4 . DEFAULT )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGson (). fromJson ( de crypted , ĠAuth Model :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAuth Model ("", Ġ"", Ġ 0 , Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Default User ( user : ĠAny ?) Ġ= Ġ( user Ġas ? ĠString )?. isBlank () Ġ?: Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġstore User ( user : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpref . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. putString ( PREFER ENCE _ USER , Ġuser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġretrieve User () Ġ= Ġpref . getString ( PREFER ENCE _ USER , Ġ"") ĊĊĠĠĠ Ġoverride Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġpref . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. remove ( PREFER ENCE _ AUTH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. remove ( PREFER ENCE _ USER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĠĠĠ Ġ} Ċ } Ċ