package Ġw ang . le al . a hel . storage Ċ Ċ import Ġandroid . os . Parcelable Ċ import Ġcom . tencent . mm kv . MM KV Ċ import Ġio . reactivex . rx java 3 . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . rx java 3 . core . Observable Ċ import Ġw ang . le al . a hel . storage . scheduler . Storage Scheduler Ċ Ċ class ĠK V Service ( name : ĠString ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm mk v : MM KV Ġ= ĠM MK V . mm kv With ID ( name ) ĊĠĠĠ Ġfun Ġencode ( key : ĠString , Ġvalue : ĠString ): ĠK V Service Ġ{ ĊĠĠĠĠĠĠĠ ĠObservable . create < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm mk v . encode ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). subscribe () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode String ( key : ĠString ): Observable < String >{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdecode String ( key ," ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode String ( key : ĠString , ĠdefaultValue : ĠString ): Observable < String >{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( mm kv . decode String ( key , defaultValue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onComplete () ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). observe On ( Android Schedulers . main Thread ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġencode ( key : ĠString , Ġvalue : ĠInt ): ĠK V Service Ġ{ ĊĠĠĠĠĠĠĠ ĠObservable . create < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm mk v . encode ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). subscribe () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode Int ( key : ĠString ): Observable < Int >{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdecode Int ( key , 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode Int ( key : ĠString , ĠdefaultValue : ĠInt ): Observable < Int >{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create < Int > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( mm kv . decode Int ( key , defaultValue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onComplete () ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). observe On ( Android Schedulers . main Thread ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġencode ( key : ĠString , Ġvalue : ĠFloat ): ĠK V Service Ġ{ ĊĠĠĠĠĠĠĠ ĠObservable . create < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm mk v . encode ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). subscribe () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode Float ( key : ĠString ): Observable < Float >{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdecode Float ( key , 0 . 0 F ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode Float ( key : ĠString , ĠdefaultValue : ĠFloat ): Observable < Float >{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create < Float > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( mm kv . decode Float ( key , defaultValue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onComplete () ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). observe On ( Android Schedulers . main Thread ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġencode ( key : ĠString , Ġvalue : ĠDouble ): ĠK V Service Ġ{ ĊĠĠĠĠĠĠĠ ĠObservable . create < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm mk v . encode ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). subscribe () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode Double ( key : ĠString ): Observable < Double >{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdecode Double ( key , 0 . 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode Double ( key : ĠString , ĠdefaultValue : ĠDouble ): Observable < Double >{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create < Double > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( mm kv . decode Double ( key , defaultValue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onComplete () ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). observe On ( Android Schedulers . main Thread ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġencode ( key : ĠString , Ġvalue : ĠByteArray ): ĠK V Service Ġ{ ĊĠĠĠĠĠĠĠ ĠObservable . create < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm mk v . encode ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). subscribe () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode ByteArray ( key : ĠString ): Observable < ByteArray >{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdecode ByteArray ( key , ĠByteArray ( 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode ByteArray ( key : ĠString , ĠdefaultValue : ĠByteArray ): Observable < ByteArray >{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create < ByteArray > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( mm kv . decode Bytes ( key , defaultValue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onComplete () ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). observe On ( Android Schedulers . main Thread ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġencode ( key : ĠString , Ġvalue : ĠLong ): ĠK V Service Ġ{ ĊĠĠĠĠĠĠĠ ĠObservable . create < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm mk v . encode ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). subscribe () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode Long ( key : ĠString ): Observable < Long >{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdecode Long ( key , Ġ 0 L ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode Long ( key : ĠString , ĠdefaultValue : ĠLong ): Observable < Long >{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create < Long > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( mm kv . decode Long ( key , defaultValue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onComplete () ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). observe On ( Android Schedulers . main Thread ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġencode ( key : ĠString , Ġvalue : ĠBoolean ): ĠK V Service Ġ{ ĊĠĠĠĠĠĠĠ ĠObservable . create < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm mk v . encode ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). subscribe () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode Boolean ( key : ĠString ): Observable < Boolean >{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdecode Boolean ( key , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode Boolean ( key : ĠString , ĠdefaultValue : ĠBoolean ): Observable < Boolean >{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create < Boolean > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( mm kv . decode Bool ( key , defaultValue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onComplete () ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). observe On ( Android Schedulers . main Thread ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġencode ( key : ĠString , Ġvalue : ĠParcel able ): ĠK V Service Ġ{ ĊĠĠĠĠĠĠĠ ĠObservable . create < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm mk v . encode ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). subscribe () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T : Parcelable > Ġdecode Parcelable ( key : ĠString , Ġclazz : Class < T >, defaultValue : ĠT ): Observable < T >{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( mm kv . decode Parcelable ( key , clazz , defaultValue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onComplete () ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). observe On ( Android Schedulers . main Thread ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġencode ( key : ĠString , Ġvalue : ĠSet < String >): ĠK V Service Ġ{ ĊĠĠĠĠĠĠĠ ĠObservable . create < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm mk v . encode ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). subscribe () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode String Set ( key : ĠString ): Observable < Set < String >> { ĊĠĠĠĠĠĠĠ Ġreturn Ġdecode String Set ( key , ĠHashSet ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdecode String Set ( key : ĠString , ĠdefaultValue : ĠSet < String >): Observable < Set < String >> { ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create < Set < String >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( mm kv . decode String Set ( key , defaultValue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onComplete () ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). observe On ( Android Schedulers . main Thread ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( key : String ): KV Service { ĊĠĠĠĠĠĠĠ ĠObservable . create < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm mk v . remove ( key ) ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Storage Scheduler . scheduler ()). subscribe () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ Ċ }