package Ġcom . existing . bo iler x . common . base . repository . base . database . realm Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġcom . existing . bo iler x . realm . Realm Config Store Ċ import Ġcom . existing . bo iler x . realm . model . Primitive Type Database Module Ċ import Ġio . realm . Realm Ċ import Ġio . realm . Realm Configuration Ċ Ċ object ĠRealm Config Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġconfig : ĠRealm Configuration ĊĊĊĠĠĠ Ġfun Ġinit ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġmodule : ĠAny , ĊĠĠĠĠĠĠĠ Ġversion : ĠInt ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ ĠRealm . init ( context ) ĊĊĠĠĠĠĠĠĠ Ġconfig Ġ= ĠRealm Configuration . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" bo iler x . realm ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. modules ( module , ĠPrimitive Type Database Module ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. encryption Key ( get Realm Encrypted Key ( context )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. schema Version ( version . to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ ĠRealm Config Store ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. init Module ( config , Ġmodule :: class . java , ĠPrimitive Type Database Module :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Realm Encrypted Key ( context : ĠContext ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġencrypted Key Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġval Ġvalue Id Ġ= Ġget Installed Time ( context ) ĊĠĠĠĠĠĠĠ Ġwhile Ġ( encrypted Key . length Ġ< ĠRealm Configuration . KEY _ LENGTH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġencrypted Key . append ( value Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( encrypted Key . length Ġ< ĠRealm Configuration . KEY _ LENGTH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencrypted Key . append ("| ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġencrypted Key . substring ( 0 , ĠRealm Configuration . KEY _ LENGTH ). toByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Installed Time ( context : ĠContext ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. package Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Package Info ( context . packageName , Ġ 0 ). first Install Time . toString () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignored : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ" N / A " ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ