package Ġcom . ap pt ive . link it . presentation . view Ċ Ċ import Ġandroidx . compose . foundation . Experimental Foundation Api Ċ import Ġandroidx . compose . foundation . background Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . foundation . lazy . Lazy List State Ċ import Ġandroidx . compose . foundation . lazy . items Ċ import Ġandroidx . compose . foundation . lazy . remember Lazy List State Ċ import Ġandroidx . compose . material . Sca ffold Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . La unched Effect Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . setValue Ċ import Ġandroidx . compose . ui . Experimental Compose Ui Api Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġcom . ap pt ive . link it ._ constant . UI Constants Ċ import Ġcom . ap pt ive . link it ._ enums . UI Mode Ċ import Ġcom . ap pt ive . link it . presentation . component . AppBar Search Ċ import Ġcom . ap pt ive . link it . presentation . component . Card Link Ċ import Ġcom . ap pt ive . link it . presentation . model . Link View Ċ import Ġcom . ap pt ive . link it . presentation . navigation . Screen Ċ import Ġcom . ap pt ive . link it . presentation . view model . Search ViewModel Ċ Ċ @ Composable Ċ fun ĠSearch Result Screen ( ĊĠĠĠ Ġnav Controller : ĠNav Controller , ĊĠĠĠ ĠviewModel : ĠSearch ViewModel , Ċ ) Ġ{ ĊĠĠĠ Ġval Ġscroll State Ġ= Ġremember Lazy List State () ĊĠĠĠ Ġvar Ġsearch Text Ġby ĠviewModel . search Text ĊĠĠĠ Ġvar Ġsearch Type Ġby ĠviewModel . search Type ĊĠĠĠ Ġval Ġlinks Ġby ĠviewModel . sear ched Links ĊĊĠĠĠ ĠLa unched Effect ( search Text ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . search Links () ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠScaffold ( ĊĠĠĠĠĠĠĠ Ġtop Bar Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Bar Search ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . height ( UI Constants . HEIGHT _ APP _ BAR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġsearch Text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Type Ġ= Ġsearch Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Clear Clicked Ġ= Ġ{ Ġsearch Text Ġ= Ġ"" Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Text Change Ġ= Ġ{ Ġsearch Text Ġ= Ġit Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Search Clicked Ġ= Ġ{ ĠviewModel . search Links () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Search Type Change Ġ= Ġ{ Ġsearch Type Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ){ Ġinner Padding Ġ-> ĊĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( Color . Gray ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( inner Padding ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSearch Link Content ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller Ġ= Ġnav Controller , ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlinks Ġ= ĠviewModel . sear ched Links . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll State Ġ= Ġscroll State , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Opt In ( Experimental Foundation Api :: class , ĠExperimental Compose Ui Api :: class ) Ċ @ Composable Ċ fun ĠSearch Link Content ( ĊĠĠĠ Ġnav Controller : ĠNav Controller , ĊĠĠĠ Ġlinks : ĠList < Link View >, ĊĠĠĠ Ġscroll State : ĠLazy List State Ġ= Ġremember Lazy List State (), Ċ ) Ġ{ ĊĊĠĠĠ ĠLazy Column ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( top = 2 0 . dp , Ġstart = 2 5 . dp , Ġend = 2 5 . dp ), ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġscroll State ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitems ( links ) Ġ{ Ġlink Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( Modifier . height ( 2 0 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Link ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . height ( 8 0 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink Ġ= Ġlink , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Icon Click Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroute Ġ= ĠScreen . Content . route . plus ("/ ${ link . id }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui Mode Ġ= ĠUI Mode . NORMAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }