package Ġcom . fib el att i . pin board . features . posts . data . model Ċ Ċ import Ġandroidx . room . Entity Ċ import Ġandroidx . room . Index Ċ import Ġandroidx . room . PrimaryKey Ċ import Ġcom . fib el att i . core . functional . Two Way Mapper Ċ import Ġcom . fib el att i . pin board . core . AppConfig . API _ ENCODING Ċ import Ġcom . fib el att i . pin board . core . AppConfig . Pin board Api L iterals Ċ import Ġcom . fib el att i . pin board . core . extension . replace Html Chars Ċ import Ġcom . fib el att i . pin board . features . posts . domain . model . Post Ċ import Ġcom . fib el att i . pin board . features . tags . domain . model . Tag Ċ import Ġcom . squareup . mos hi . Json Class Ċ import Ġjava . net . URL Decoder Ċ import Ġjava . net . URL Encoder Ċ import Ġjavax . inject . Inject Ċ Ċ const Ġval ĠPOST _ TABLE _ NAME Ġ= Ġ" Posts " Ċ Ċ @ Json Class ( generate Adapter Ġ= Ġtrue ) Ċ @ Entity ( ĊĠĠĠ ĠtableName Ġ= ĠPOST _ TABLE _ NAME , ĊĠĠĠ Ġindices Ġ= Ġ[ Index ( value Ġ= Ġ[" shared "]), ĠIndex ( value Ġ= Ġ[" to read "]) ] Ċ ) Ċ data Ġclass ĠPost Dto ( ĊĠĠĠ Ġval Ġhref : ĠString , ĊĠĠĠ Ġval Ġdescription : ĠString , ĊĠĠĠ Ġval Ġextended : ĠString , ĊĠĠĠ Ġ@ PrimaryKey Ġval Ġhash : ĠString , ĊĠĠĠ Ġval Ġtime : ĠString , ĊĠĠĠ Ġval Ġshared : ĠString , ĊĠĠĠ Ġval Ġto read : ĠString , ĊĠĠĠ Ġval Ġtags : ĠString , ĊĠĠĠ Ġval ĠimageUrl : ĠString ? Ċ ) Ċ Ċ class ĠPost Dto Mapper Ġ@ Inject Ġconstructor () Ġ: ĠTwo Way Mapper < Post Dto , ĠPost > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġmap ( param : ĠPost Dto ): ĠPost Ġ= Ġwith ( param ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPost ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= ĠURL Decoder . decode ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhref . replace ("% (? ![ 0 - 9 a - fA - F ]{ 2 }) ". to Regex (), Ġ"% 2 5 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAPI _ ENCODING ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġdescription , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġextended , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhash Ġ= Ġhash , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Ġ= Ġtime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġ= Ġshared Ġ== ĠPin board Api L iterals . NO , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġread Later Ġ= Ġto read Ġ== ĠPin board Api L iterals . YES , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtags Ġ= Ġif Ġ( tags . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtags . replace Html Chars () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. split ( Pin board Api L iterals . TAG _ SEPARATOR _ RESPONSE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map (:: Tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmap Reverse ( param : ĠPost ): ĠPost Dto Ġ= Ġwith ( param ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPost Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhref Ġ= ĠURL Encoder . encode ( url , ĠAPI _ ENCODING ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextended Ġ= Ġdescription , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhash Ġ= Ġhash , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Ġ= Ġtime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshared Ġ= Ġif Ġ( private ) ĠPin board Api L iterals . NO Ġelse ĠPin board Api L iterals . YES , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto read Ġ= Ġif Ġ( read Later ) ĠPin board Api L iterals . YES Ġelse ĠPin board Api L iterals . NO , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtags Ġ= Ġtags ?. join ToString ( Pin board Api L iterals . TAG _ SEPARATOR _ RESPONSE ) Ġ{ Ġit . name Ġ}. or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageUrl Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ