package Ġcom . be ok . ch il ten . fre ed om board . detail Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . webkit . WebView Ċ import Ġandroidx . compose . foundation . Image Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . foundation . layout . height Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . width Ċ import Ġandroidx . compose . material . Divider Ċ import Ġandroidx . compose . material . Sca ffold Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . li ved ata . observe As State Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . layout . Content Scale Ċ import Ġandroidx . compose . ui . layout . layout Id Ċ import Ġandroidx . compose . ui . text . font . Font Weight Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . compose . ui . unit . sp Ċ import Ġandroidx . compose . ui . view interop . Android View Ċ import Ġandroidx . constraint layout . compose . Constraint Layout Ċ import Ġandroidx . constraint layout . compose . Constraint Set Ċ import Ġandroidx . lifecycle . Transform ations Ċ import Ġco il . annotation . Experimental Co il Api Ċ import Ġco il . compose . remember Image Painter Ċ import Ġcom . be ok . ch il ten . base . Base Top AppBar Ċ import Ġcom . be ok . ch il ten . ui . Ch il ten Theme Ċ Ċ @ Experimental Co il Api Ċ class ĠActivity F reed om Board Detail Ġ{ ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun ĠLayout ( ĊĠĠĠĠĠĠĠ ĠviewModel : ĠF reed om Board Detail ViewModel , ĊĠĠĠĠĠĠĠ Ġnavigation Event : Ġ() Ġ-> ĠUnit Ġ= Ġ{ Ġ} ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCh il ten Theme Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF reed om Board Detail Sca ffold ( viewModel Ġ= ĠviewModel , Ġnavigation Event Ġ= Ġnavigation Event ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun ĠF reed om Board Detail Sca ffold ( ĊĠĠĠĠĠĠĠ ĠviewModel : ĠF reed om Board Detail ViewModel , ĊĠĠĠĠĠĠĠ Ġnavigation Event : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠScaffold ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Bar Ġ= Ġ{ ĠBase Top AppBar ( navigation Event Ġ= Ġnavigation Event ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ{ ĠF reed om Board Detail Content ( viewModel Ġ= ĠviewModel ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun ĠF reed om Board Detail Content ( viewModel : ĠF reed om Board Detail ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠ ĠConstraint Layout ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstraint Set Ġ= Ġget Constraint Set (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF reed om Board Detail Header ( viewModel Ġ= ĠviewModel ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF reed om Board Detail Web Content ( viewModel Ġ= ĠviewModel ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġprivate Ġfun Ġget Constraint Set (): ĠConstraint Set Ġ= ĊĠĠĠĠĠĠĠ ĠConstraint Set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsubtitle Ġ= Ġcreate Ref For ( ID _ SUB TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpicture Ġ= Ġcreate Ref For ( ID _ PI CTURE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpost Info Ġ= Ġcreate Ref For ( ID _ POST _ INFO ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdivider Ġ= Ġcreate Ref For ( ID _ DI VIDER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweb Content Ġ= Ġcreate Ref For ( ID _ WEB _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstr ain ( subtitle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop . link To ( parent . top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( parent . start ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstr ain ( picture ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop . link To ( subtitle . bottom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( subtitle . start ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstr ain ( post Info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( picture . end ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop . link To ( picture . top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom . link To ( picture . bottom ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstr ain ( divider ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop . link To ( picture . bottom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( parent . start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend . link To ( parent . end ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstr ain ( web Content ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop . link To ( divider . bottom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( parent . start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend . link To ( parent . end ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġprivate Ġfun ĠF reed om Board Detail Header ( viewModel : ĠF reed om Board Detail ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsubtitle Text Ġ= ĠTransform ations ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( viewModel . fre ed om Board Detail Item ) Ġ{ Ġit . title Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe As State ("") ĊĠĠĠĠĠĠĠ Ġval Ġpicture Url Ġ= ĠTransform ations ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( viewModel . fre ed om Board Detail Item ) Ġ{ Ġit . picture Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe As State ("") ĊĠĠĠĠĠĠĠ Ġval Ġnick Name Text Ġ= ĠTransform ations ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( viewModel . fre ed om Board Detail Item ) Ġ{ Ġit . nick Name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe As State ("") ĊĠĠĠĠĠĠĠ Ġval Ġreg Date Text Ġ= ĠTransform ations ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( viewModel . fre ed om Board Detail Item ) Ġ{ Ġit . reg Date Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe As State ("") ĊĠĠĠĠĠĠĠ Ġval Ġhit Text Ġ= ĠTransform ations ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( viewModel . fre ed om Board Detail Item ) Ġ{ Ġ" ì¡° íļĮ ìĪĺ Ġ${ it . hit }" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe As State ("") ĊĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġsubtitle Text . value , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. layout Id ( ID _ SUB TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( start Ġ= Ġ 2 0 . dp , Ġend Ġ= Ġ 2 0 . dp , Ġbottom Ġ= Ġ 2 0 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 2 0 . sp , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight . Bold ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġremember Image Painter ( data Ġ= Ġpicture Url . value ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. layout Id ( ID _ PI CTURE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. width ( 7 4 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 7 4 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( start Ġ= Ġ 2 0 . dp , Ġbottom Ġ= Ġ 8 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Crop ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ"${ nick Name Text . value }\ n ${ reg Date Text . value } Ġ${ hit Text . value }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. layout Id ( ID _ POST _ INFO ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( start Ġ= Ġ 1 2 . dp ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠDiv ider ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor . Gray , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . layout Id ( ID _ DI VIDER ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġprivate Ġfun ĠF reed om Board Detail Web Content ( viewModel : ĠF reed om Board Detail ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Html Ġ= ĠTransform ations ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( viewModel . fre ed om Board Detail Item ) Ġ{ Ġit . content Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe As State ("") ĊĠĠĠĠĠĠĠ ĠAndroid View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfactory Ġ= Ġ:: WebView , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . layout Id ( ID _ WEB _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĠwebView Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( web View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Set JavaScript Enabled ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . java Script Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . use Wide View Port Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . minimum FontSize Ġ= Ġ 3 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Initial Scale ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Data With Base URL ("", Ġcontent Html . value , Ġ" text / html ", Ġ" utf - 8 ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠID _ SUB TITLE Ġ= Ġ" ID _ SUB TITLE " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠID _ PI CTURE Ġ= Ġ" ID _ PI CTURE " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠID _ POST _ INFO Ġ= Ġ" ID _ POST _ INFO " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠID _ DI VIDER Ġ= Ġ" ID _ DI VIDER " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠID _ WEB _ CONTENT Ġ= Ġ" ID _ WEB _ CONTENT " ĊĠĠĠ Ġ} Ċ } ĊĊ