package Ġcom . d oo ol . news Ċ Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . compose . foundation . Image Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . Row Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . layout . height Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . foundation . lazy . remember Lazy List State Ċ import Ġandroidx . compose . material . Local TextStyle Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . Composition Local Provider Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . text . TextStyle Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . compose . ui . view interop . Android View Ċ import Ġandroidx . core . text . Html Compat Ċ import Ġandroidx . h ilt . navigation . compose . h ilt ViewModel Ċ import Ġandroidx . paging . compose . Lazy Paging Items Ċ import Ġandroidx . paging . compose . collect As Lazy Paging Items Ċ import Ġandroidx . paging . compose . items Ċ import Ġco il . annotation . Experimental Co il Api Ċ import Ġco il . compose . remember Image Painter Ċ import Ġcom . d oo ol . core . widget . Space Ċ import Ġcom . d oo ol . core . widget . sticky AppBar Ċ import Ġcom . d oo ol . poke dex . domain . model . Pokemon News Ċ Ċ @ Composable Ċ fun ĠNews Screen ( viewModel : ĠNews ViewModel Ġ= Ġh ilt ViewModel ()) Ġ{ ĊĠĠĠ Ġval Ġnews Ġ= ĠviewModel . news . collect As Lazy Paging Items () ĊĊĠĠĠ ĠNews List ( news ) Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠNews List ( news : ĠLazy Paging Items < Pokemon News >) Ġ{ ĊĠĠĠ Ġval Ġstate Ġ= Ġremember Lazy List State () ĊĊĠĠĠ ĠLazy Column ( state Ġ= Ġstate ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsticky AppBar ( state Ġ= Ġstate , Ġtitle Ġ= ĠR . string . pokemon _ news _ title ) ĊĊĠĠĠĠĠĠĠ Ġitems ( news , Ġkey Ġ= Ġ{ Ġit . title Ġ}) Ġ{ Ġnews Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnews Ġ?: Ġreturn @ items ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNews ( news ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠNews ( news : ĠPokemon News ) Ġ{ ĊĠĠĠ ĠColumn ( modifier Ġ= ĠModifier . padding ( horizontal Ġ= Ġ 2 0 . dp )) Ġ{ ĊĠĠĠĠĠĠĠ ĠNews Thumbnail ( news . image ) ĊĠĠĠĠĠĠĠ ĠSpace ( height Ġ= Ġ 8 . dp ) ĊĠĠĠĠĠĠĠ ĠNews Info ( news ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Opt In ( Experimental Co il Api :: class ) Ċ @ Composable Ċ private Ġfun ĠNews Thumbnail ( imageUrl : ĠString ) Ġ{ ĊĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 4 0 0 . dp ), ĊĠĠĠĠĠĠĠ Ġpainter Ġ= Ġremember Image Painter ( imageUrl ), ĊĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠNews Info ( news : ĠPokemon News ) Ġ{ ĊĠĠĠ ĠComp osition Local Provider ( Local TextStyle Ġprovides ĠMaterial Theme . typography . body 1 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠData And Tags ( news . date , Ġnews . tags ) ĊĠĠĠĠĠĠĠ ĠSpace ( height Ġ= Ġ 8 . dp ) ĊĠĠĠĠĠĠĠ ĠHtml Text ( html Ġ= Ġnews . title ) ĊĠĠĠĠĠĠĠ ĠSpace ( height Ġ= Ġ 4 . dp ) ĊĠĠĠĠĠĠĠ ĠHtml Text ( html Ġ= Ġnews . short Description ) ĊĠĠĠĠĠĠĠ ĠSpace ( height Ġ= Ġ 1 2 . dp ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠData And Tags ( date : ĠString , Ġtags : ĠString ) Ġ{ ĊĠĠĠ ĠRow Ġ{ ĊĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġdate ) ĊĠĠĠĠĠĠĠ ĠSpace ( width Ġ= Ġ 1 2 . dp ) ĊĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġtags ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠHtml Text ( html : ĠString , Ġstyle : ĠTextStyle Ġ= ĠLocal TextStyle . current ) Ġ{ ĊĠĠĠ ĠAndroid View ( factory Ġ= Ġ{ ĊĠĠĠĠĠĠĠ ĠTextView ( it ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġstyle . fontSize . value ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}, Ġupdate Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġit . text Ġ= ĠHtml Compat . from Html ( html , ĠHtml Compat . FROM _ HTML _ MODE _ COMP ACT ) ĊĠĠĠ Ġ}) Ċ } Ċ