package Ġcom . cert ified . dependency injection example h ilt . util Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . room . Type Converter Ċ import Ġandroidx . room . Type Converters Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . lang . Exception Ċ import Ġjava . util .* Ċ Ċ class ĠConverter s Ġ{ ĊĊĠĠĠ Ġ@ Type Converter ĊĠĠĠ Ġfun Ġto ByteArray ( bitmap : ĠBitmap ?): ĠByteArray ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( bitmap Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠoutputStream Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap . compress ( Bitmap . Compress Format . PNG , Ġ 1 0 0 , ĠoutputStream ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠoutputStream . toByteArray () ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Type Converter ĊĠĠĠ Ġfun Ġto Bitmap ( byteArray : ĠByteArray ?): ĠBitmap ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( byteArray Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap Factory . decode ByteArray ( byteArray , Ġ 0 , ĠbyteArray . size ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Type Converter ĊĠĠĠ Ġfun Ġuri ToString ( uri : ĠUri ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuri ?. toString () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Type Converter ĊĠĠĠ Ġfun Ġstring To Uri ( string : ĠString ?): ĠUri ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( string Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse ( string ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Type Converter ĊĠĠĠ Ġfun Ġfrom TimeStamp ( value : ĠLong ?): ĠDate ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue ?. let Ġ{ ĠDate ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Type Converter ĊĠĠĠ Ġfun Ġdate To TimeStamp ( date : ĠDate ?): ĠLong ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdate ?. time ĊĠĠĠ Ġ} Ċ }