package Ġcom . stripe . android Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġorg . json . JSONObject Ċ Ċ internal Ġinterface ĠF ingerprint DataStore Ġ{ ĊĠĠĠ Ġfun Ġget (): ĠLive Data < Fingerprint Data > ĊĠĠĠ Ġfun Ġsave ( fingerprint Data : ĠF ingerprint Data ) ĊĊĠĠĠ Ġclass ĠDefault ( context : ĠContext ) Ġ: ĠF ingerprint DataStore Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġprefs Ġ= Ġcontext . get SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP REF _ FILE , ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget (): ĠLive Data < Fingerprint Data > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMutable LiveData ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF ingerprint Data . fromJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJSONObject ( prefs . getString ( KEY _ DATA , Ġnull ). or Empty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. get OrDefault ( Fingerprint Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsave ( fingerprint Data : ĠF ingerprint Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprefs . edit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putString ( KEY _ DATA , Ġfingerprint Data . toJson (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠP REF _ FILE Ġ= Ġ" Fingerprint Data Repository " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ DATA Ġ= Ġ" key _ fingerprint _ data " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ