import Ġandroid . os . Parcelable Ċ import Ġcom . tencent . mm kv . MM KV Ċ import Ġkotlin . properties . ReadWrite Property Ċ import Ġkotlin . reflect . K Property Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠT an J ia Jun Ġon Ġ 2 0 2 0 - 0 1 - 1 1 . Ċ Ġ*/ Ċ val Ġm mk v = MM KV . default MM KV () Ċ Ċ private Ġinline Ġfun Ġ< T > ĠM MK V . delegate ( ĊĠĠĠ Ġkey : ĠString ? Ġ= Ġnull , ĊĠĠĠ ĠdefaultValue : ĠT , ĊĠĠĠ Ġcross inline Ġgetter : ĠM MK V .( String , ĠT ) Ġ-> ĠT , ĊĠĠĠ Ġcross inline Ġsetter : ĠM MK V .( String , ĠT ) Ġ-> ĠBoolean Ċ ): ĠRead Write Property < Any , ĠT > Ġ= ĊĠĠĠ Ġobject Ġ: ĠRead Write Property < Any , ĠT > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠAny , Ġproperty : ĠK Property < *> ): ĠT Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgetter ( key Ġ?: Ġproperty . name , ĠdefaultValue ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠsetValue ( this Ref : ĠAny , Ġproperty : ĠK Property <* >, Ġvalue : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetter ( key Ġ?: Ġproperty . name , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ fun ĠM MK V . boolean ( ĊĠĠĠ Ġkey : ĠString ? Ġ= Ġnull , ĊĠĠĠ ĠdefaultValue : ĠBoolean Ġ= Ġfalse Ċ ): ĠRead Write Property < Any , ĠBoolean > Ġ= ĊĠĠĠ Ġdelegate ( key , ĠdefaultValue , ĠM MK V :: decode Bool , ĠM MK V :: encode ) Ċ Ċ fun ĠM MK V . int ( key : ĠString ? Ġ= Ġnull , ĠdefaultValue : ĠInt Ġ= Ġ 0 ): ĠRead Write Property < Any , ĠInt > Ġ= ĊĠĠĠ Ġdelegate ( key , ĠdefaultValue , ĠM MK V :: decode Int , ĠM MK V :: encode ) Ċ Ċ fun ĠM MK V . long ( key : ĠString ? Ġ= Ġnull , ĠdefaultValue : ĠLong Ġ= Ġ 0 L ): ĠRead Write Property < Any , ĠLong > Ġ= ĊĠĠĠ Ġdelegate ( key , ĠdefaultValue , ĠM MK V :: decode Long , ĠM MK V :: encode ) Ċ Ċ fun ĠM MK V . float ( key : ĠString ? Ġ= Ġnull , ĠdefaultValue : ĠFloat Ġ= Ġ 0 . 0 F ): ĠRead Write Property < Any , ĠFloat > Ġ= ĊĠĠĠ Ġdelegate ( key , ĠdefaultValue , ĠM MK V :: decode Float , ĠM MK V :: encode ) Ċ Ċ fun ĠM MK V . double ( key : ĠString ? Ġ= Ġnull , ĠdefaultValue : ĠDouble Ġ= Ġ 0 . 0 ): ĠRead Write Property < Any , ĠDouble > Ġ= ĊĠĠĠ Ġdelegate ( key , ĠdefaultValue , ĠM MK V :: decode Double , ĠM MK V :: encode ) Ċ Ċ private Ġinline Ġfun Ġ< T > ĠM MK V . nullable DefaultValue Delegate ( ĊĠĠĠ Ġkey : ĠString ? Ġ= Ġnull , ĊĠĠĠ ĠdefaultValue : ĠT ?, ĊĠĠĠ Ġcross inline Ġgetter : ĠM MK V .( String , ĠT ?) Ġ-> ĠT , ĊĠĠĠ Ġcross inline Ġsetter : ĠM MK V .( String , ĠT ) Ġ-> ĠBoolean Ċ ): ĠRead Write Property < Any , ĠT > Ġ= ĊĠĠĠ Ġobject Ġ: ĠRead Write Property < Any , ĠT > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠAny , Ġproperty : ĠK Property < *> ): ĠT Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgetter ( key Ġ?: Ġproperty . name , ĠdefaultValue ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠsetValue ( this Ref : ĠAny , Ġproperty : ĠK Property <* >, Ġvalue : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetter ( key Ġ?: Ġproperty . name , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ fun ĠM MK V . byteArray ( ĊĠĠĠ Ġkey : ĠString ? Ġ= Ġnull , ĊĠĠĠ ĠdefaultValue : ĠByteArray ? Ġ= Ġnull Ċ ): ĠRead Write Property < Any , ĠByteArray ?> Ġ= ĊĠĠĠ Ġnullable DefaultValue Delegate ( key , ĠdefaultValue , ĠM MK V :: decode Bytes , ĠM MK V :: encode ) Ċ Ċ fun ĠM MK V . string ( key : ĠString ? Ġ= Ġnull , ĠdefaultValue : ĠString ? Ġ= Ġnull ): ĠRead Write Property < Any , ĠString ?> Ġ= ĊĠĠĠ Ġnullable DefaultValue Delegate ( key , ĠdefaultValue , ĠM MK V :: decode String , ĠM MK V :: encode ) Ċ Ċ fun ĠM MK V . string Set ( ĊĠĠĠ Ġkey : ĠString ? Ġ= Ġnull , ĊĠĠĠ ĠdefaultValue : ĠSet < String >? Ġ= Ġnull Ċ ): ĠRead Write Property < Any , ĠSet < String > ?> Ġ= ĊĠĠĠ Ġnullable DefaultValue Delegate ( key , ĠdefaultValue , ĠM MK V :: decode String Set , ĠM MK V :: encode ) Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠParcel able > ĠM MK V . parcel able ( ĊĠĠĠ Ġkey : ĠString ? Ġ= Ġnull , ĊĠĠĠ ĠdefaultValue : ĠT ? Ġ= Ġnull Ċ ): ĠRead Write Property < Any , ĠT ?> Ġ= ĊĠĠĠ Ġobject Ġ: ĠRead Write Property < Any , ĠT ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠAny , Ġproperty : ĠK Property < *> ): ĠT ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecode Parcelable ( key Ġ?: Ġproperty . name , ĠT :: class . java , ĠdefaultValue ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠsetValue ( this Ref : ĠAny , Ġproperty : ĠK Property <* >, Ġvalue : ĠT ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġencode ( key Ġ?: Ġproperty . name , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}