@@ -66,15 +66,17 @@ fun NewsDetailScreen(
6666 ) { padding ->
6767 when (val s = state) {
6868 is UiState .Loading -> LoadingIndicator (modifier = Modifier .padding(padding))
69- is UiState .Error -> ErrorRetry (
70- message = s.message,
71- onRetry = { vm.load() },
72- modifier = Modifier .padding(padding),
73- )
74- is UiState .Success -> NewsDetailContent (
75- news = s.data,
76- modifier = Modifier .padding(padding),
77- )
69+ is UiState .Error ->
70+ ErrorRetry (
71+ message = s.message,
72+ onRetry = { vm.load() },
73+ modifier = Modifier .padding(padding),
74+ )
75+ is UiState .Success ->
76+ NewsDetailContent (
77+ news = s.data,
78+ modifier = Modifier .padding(padding),
79+ )
7880 }
7981 }
8082}
@@ -89,10 +91,11 @@ private fun NewsDetailContent(
8991 val textColor = MaterialTheme .colorScheme.onSurface.toArgb()
9092
9193 Column (
92- modifier = modifier
93- .fillMaxSize()
94- .verticalScroll(rememberScrollState())
95- .padding(16 .dp),
94+ modifier =
95+ modifier
96+ .fillMaxSize()
97+ .verticalScroll(rememberScrollState())
98+ .padding(16 .dp),
9699 ) {
97100 Text (
98101 text = news.header,
@@ -131,28 +134,42 @@ private fun NewsDetailContent(
131134 @SuppressLint(" SetJavaScriptEnabled" )
132135 settings.javaScriptEnabled = true
133136 setBackgroundColor(bgColor)
134- webViewClient = object : android.webkit.WebViewClient () {
135- override fun onPageFinished (view : WebView ? , url : String? ) {
136- view?.evaluateJavascript(" document.body.scrollHeight" ) { heightStr ->
137- val heightPx = heightStr.toFloatOrNull() ? : return @evaluateJavascript
138- webViewHeight = (heightPx / density).dp + 16 .dp
137+ webViewClient =
138+ object : android.webkit.WebViewClient () {
139+ override fun onPageFinished (
140+ view : WebView ? ,
141+ url : String? ,
142+ ) {
143+ view?.evaluateJavascript(" document.body.scrollHeight" ) { heightStr ->
144+ val heightPx = heightStr.toFloatOrNull() ? : return @evaluateJavascript
145+ webViewHeight = (heightPx / density).dp + 16 .dp
146+ }
139147 }
140148 }
141- }
142149 loadDataWithBaseURL(null , htmlContent, " text/html" , " UTF-8" , null )
143150 }
144151 },
145152 update = { webView ->
146153 webView.setBackgroundColor(bgColor)
147- webView.loadDataWithBaseURL(null , buildNewsHtml(news.content, bgHex, fgHex), " text/html" , " UTF-8" , null )
154+ webView.loadDataWithBaseURL(
155+ null ,
156+ buildNewsHtml(news.content, bgHex, fgHex),
157+ " text/html" ,
158+ " UTF-8" ,
159+ null ,
160+ )
148161 },
149162 modifier = Modifier .fillMaxWidth().height(webViewHeight),
150163 )
151164 }
152165 }
153166}
154167
155- private fun buildNewsHtml (body : String , bgColor : String , fgColor : String ): String =
168+ private fun buildNewsHtml (
169+ body : String ,
170+ bgColor : String ,
171+ fgColor : String ,
172+ ): String =
156173 """
157174 <!DOCTYPE html><html><head>
158175 <meta name="viewport" content="width=device-width, initial-scale=1.0">
0 commit comments