package Ġme . developers an cho . pref store . gson Ċ Ċ import Ġandroid . content . Context Ċ import Ġme . developers an cho . pref store . Pref Store Ċ Ċ /** Ċ Ġ* ĠMan ages ĠShared ĠPreferences Ġand Ġprovides Ġutility Ġfunctions Ċ Ġ* ĠCan Ġread Ġand Ġwrite Ġsimple Ġvalues Ġor Ġobjects Ċ Ġ* ĠUses ĠGson Ġas Ġthe Ġbackend Ġto Ġserialize Ġand Ġdeserialize Ġobjects Ċ Ġ* Ġ@ property Ġcontext ĠRequired Ġto Ġaccess ĠSharedPreferences Ċ Ġ* Ġ@ property Ġpref FileName ĠParent Ġname Ġof Ġthe ĠSharedPreferences Ġspace Ċ Ġ*/ Ċ class ĠGson Pref Store ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġpref FileName : ĠString ? Ġ= Ġnull Ċ ) Ġ: ĠPref Store ( context , Ġpref FileName ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReads Ġjson Ġfrom ĠSharedPreferences Ġand Ġcast s Ġit Ġto Ġrequested Ġtype Ġusing ĠGson ĊĠĠĠĠ Ġ* Ġ@ param ĠT ĠType Ġparameter Ġto Ġcast Ġgson Ġto ĊĠĠĠĠ Ġ* Ġ@ param Ġkey ĠKey Ġto Ġread Ġfrom ĊĠĠĠĠ Ġ* Ġ@ return ĠAn Ġobject Ġof Ġrequested Ġtype ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT > Ġread Object ( key : ĠString ): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġread Value Ġ= Ġread ( key , Ġ"") ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( readValue . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġread Value . convert Model < T >() ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStores Ġan Ġobject Ġunder Ġgiven Ġkey Ġor Ġclass Ġname . ĊĠĠĠĠ Ġ* Ġ@ param Ġkey ĠKey Ġto Ġwrite Ġobject Ġto . ĠIf Ġnot Ġgiven , Ġclass Ġname Ġwill Ġbe Ġused ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue ĠObject Ġto Ġstore . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwrite Object ( key : ĠString , Ġvalue : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite ( key , Ġvalue . convert Json ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRead Ġa Ġlist Ġobject Ġfrom Ġjson Ġstring Ġ Ġand Ġcast s Ġit Ġto Ġrequested Ġtype Ġusing ĠGson ĊĠĠĠĠ Ġ* Ġ@ param Ġkey ĠKey Ġto Ġread Ġfrom ĊĠĠĠĠ Ġ* Ġ@ return ĠList ĠObject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT > Ġread List Object ( key : ĠString ): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġread ( key , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . convert List < T >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }