package Ġcom . th om ask io ko . st arg azer . details . ui . compose Ċ Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroidx . compose . foundation . Image Ċ import Ġandroidx . compose . foundation . layout . Box Ċ import Ġandroidx . compose . foundation . layout . Box With Constraints Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . Row Ċ import Ġandroidx . compose . foundation . layout . Spacer Ċ import Ġandroidx . compose . foundation . layout . aspect Ratio Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . layout . height Ċ import Ġandroidx . compose . foundation . layout . offset Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . size Ċ import Ġandroidx . compose . foundation . layout . width Ċ import Ġandroidx . compose . foundation . remember Scroll State Ċ import Ġandroidx . compose . foundation . vertical Scroll Ċ import Ġandroidx . compose . material . Content Alpha Ċ import Ġandroidx . compose . material . Icon Ċ import Ġandroidx . compose . material . IconButton Ċ import Ġandroidx . compose . material . Local Content Alpha Ċ import Ġandroidx . compose . material . Local Content Color Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Sca ffold State Ċ import Ġandroidx . compose . material . Surface Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . material . Top AppBar Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . filled . Account Circle Ċ import Ġandroidx . compose . material . icons . rounded . Arrow Back Ċ import Ġandroidx . compose . material . remember Sca ffold State Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . Composition Local Provider Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . runtime . remember Coroutine Scope Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . graphics . Color Filter Ċ import Ġandroidx . compose . ui . layout . Content Scale Ċ import Ġandroidx . compose . ui . platform . Local Lifecycle Owner Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . compose . ui . semantics . semantics Ċ import Ġandroidx . compose . ui . text . font . Font Weight Ċ import Ġandroidx . compose . ui . text . style . Text Align Ċ import Ġandroidx . compose . ui . tool ing . preview . Devices Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . flow With Lifecycle Ċ import Ġandroidx . navigation . Nav Host Controller Ċ import Ġcom . google . ac comp an ist . in sets . status Bars Padding Ċ import Ġcom . th om ask io ko . st arg azer . details . R Ċ import Ġcom . th om ask io ko . st arg azer . details . model . Repo View DataModel Ċ import Ġcom . th om ask io ko . st arg azer . details . ui . Detail Action Ċ import Ġcom . th om ask io ko . st arg azer . details . ui . Detail ViewState Ċ import Ġcom . th om ask io ko . st arg azer . details . ui . compose . mock data . repo View DataModel Ċ import Ġcom . th om ask io ko . st arg azer . details . ui . view model . Repo Details ViewModel Ċ import Ġcom . th om ask io ko . st arg az ers . common . compose . components . Circular Loading View Ċ import Ġcom . th om ask io ko . st arg az ers . common . compose . components . Outlined Avatar Ċ import Ġcom . th om ask io ko . st arg az ers . common . compose . components . Sn ackBar Error Retry Ċ import Ġcom . th om ask io ko . st arg az ers . common . compose . components . St arg azer Fab Ċ import Ġcom . th om ask io ko . st arg az ers . common . compose . components . St arg az ers Sca ffold Ċ import Ġcom . th om ask io ko . st arg az ers . common . compose . components . util . Network Image Ċ import Ġcom . th om ask io ko . st arg az ers . common . compose . components . util . scri m Ċ import Ġcom . th om ask io ko . st arg az ers . common . compose . theme . St arg azer Theme Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ Ċ @ Composable Ċ internal Ġfun ĠRepo Detail Screen ( ĊĠĠĠ ĠviewModel : ĠRepo Details ViewModel , ĊĠĠĠ Ġnav Controller : ĠNav Host Controller , Ċ ) Ġ{ ĊĠĠĠ Ġval Ġscaffold State Ġ= Ġremember Sca ffold State () ĊĠĠĠ Ġval Ġcoroutine Scope Ġ= Ġremember Coroutine Scope () ĊĊĠĠĠ Ġval Ġlifecycle Owner Ġ= ĠLocal Lifecycle Owner . current ĊĠĠĠ Ġval Ġaction State Ġ= ĠviewModel . state Flow ĊĊĠĠĠ Ġval Ġaction State Life Cycle Aware Ġ= Ġremember ( action State , Ġlifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaction State . flow With Lifecycle ( lifecycle Owner . lifecycle , ĠLifecycle . State . STARTED ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġrepo Id Ġ= Ġnav Controller . current Back Stack Entry ?. arguments ?. getString (" repo Id ") ĊĠĠĠ Ġif Ġ( repo Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . dispatch Action ( Detail Action . Load Repo ( repo Id . to Long ())) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġ// TODO :: ĠShow ĠError ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġview State Ġby Ġaction State Life Cycle Aware ĊĠĠĠĠĠĠĠ Ġ. collect As State ( initial Ġ= ĠDetail ViewState . Loading ) ĊĊĠĠĠ ĠSt arg az ers Sca ffold ( ĊĠĠĠĠĠĠĠ Ġscaffold State Ġ= Ġscaffold State , ĊĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRepo Detail Content ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscaffold State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoroutine Scope , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Repo Book Marked Ġ= Ġ{ ĠviewModel . dispatch Action ( Detail Action . Update Repo ( it )) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed Ġ= Ġ{ Ġ Ġnav Controller . pop Back Stack () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠRepo Detail Content ( ĊĠĠĠ Ġview State : ĠDetail ViewState , ĊĠĠĠ Ġscaffold State : ĠScaffold State , ĊĠĠĠ Ġcoroutine Scope : ĠCor outine Scope , ĊĠĠĠ Ġon Repo Book Marked : Ġ( Repo View DataModel ) Ġ-> ĠUnit , ĊĠĠĠ Ġon Back Pressed : Ġ() Ġ-> ĠUnit Ġ= Ġ{ Ġ}, Ċ ) Ġ{ ĊĠĠĠ Ġwhen Ġ( view State ) Ġ{ ĊĠĠĠĠĠĠĠ ĠDetail ViewState . Loading Ġ-> ĠCircular Loading View () ĊĠĠĠĠĠĠĠ Ġis ĠDetail ViewState . Error Ġ-> ĠSn ackBar Error Retry ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackBar Host State Ġ= Ġscaffold State . sn ackbar Host State , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoroutine Scope Ġ= Ġcoroutine Scope , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠerrorMessage Ġ= Ġview State . message , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError Action Ġ= Ġ{} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġis ĠDetail ViewState . Success Ġ-> ĠRepo Details ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Repo Book Marked Ġ= Ġon Repo Book Marked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepo Ġ= Ġview State . view DataModel , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed Ġ= Ġon Back Pressed ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ internal Ġfun ĠRepo Details ( ĊĠĠĠ Ġrepo : ĠRepo View DataModel , ĊĠĠĠ Ġon Repo Book Marked : Ġ( Repo View DataModel ) Ġ-> ĠUnit Ġ= Ġ{ Ġ}, ĊĠĠĠ Ġon Back Pressed : Ġ() Ġ-> ĠUnit Ġ= Ġ{ Ġ}, Ċ ) Ġ{ ĊĠĠĠ Ġval Ġscroll State Ġ= Ġremember Scroll State () ĊĠĠĠ Ġval Ġtext Ġ= Ġif Ġ( repo . is Book marked ) Ġstring Resource ( id Ġ= ĠR . string . fab _ remove _ bookmark ) ĊĠĠĠ Ġelse Ġstring Resource ( id Ġ= ĠR . string . fab _ bookmark ) ĊĊĠĠĠ ĠColumn ( modifier Ġ= ĠModifier . fill MaxSize ()) Ġ{ ĊĠĠĠĠĠĠĠ ĠBox With Constraints ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. weight ( 1 f ), ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSurface Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. vertical Scroll ( scroll State ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRepo Details Header ( repo , Ġon Back Pressed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRepo Details Body ( repo ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSt arg azer Fab ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextended Ġ= Ġscroll State . value Ġ== Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Book marked Ġ= Ġrepo . is Book marked , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab Text Ġ= Ġtext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . align ( Alignment . Bottom End ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Repo Book Marked Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Repo Book Marked ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepo . copy ( is Book marked Ġ= Ġ! repo . is Book marked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ internal Ġfun ĠRepo Details Header ( ĊĠĠĠ Ġrepo : ĠRepo View DataModel , ĊĠĠĠ Ġon Back Pressed : Ġ() Ġ-> ĠUnit Ġ= Ġ{ Ġ}, Ċ ) Ġ{ ĊĊĠĠĠ ĠBox Ġ{ ĊĠĠĠĠĠĠĠ ĠNetwork Image ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġrepo . avatar Url , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. scri m ( colors Ġ= ĠlistOf ( Color ( 0 x 8 0 0 0 0 0 0 0 ), ĠColor ( 0 x 3 3 0 0 0 0 0 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. aspect Ratio ( 4 f Ġ/ Ġ 3 f ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠTop AppBar ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠColor . Transparent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelevation Ġ= Ġ 0 . dp , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Color Ġ= ĠColor . White , Ġ// Ġalways Ġwhite Ġas Ġimage Ġhas Ġdark Ġs cri m ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . status Bars Padding () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Button ( onClick Ġ= Ġon Back Pressed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= ĠIcons . Rounded . Arrow Back , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġstring Resource ( R . string . cd _ back ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . weight ( 1 f )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠOut lined Avatar ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġrepo . avatar Url , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutline Size Ġ= Ġ 3 . dp , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( end Ġ= Ġ 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( 4 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. align ( Alignment . Bottom End ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. offset ( y Ġ= Ġ 2 0 . dp ) Ġ// Ġoverlap Ġbottom Ġof Ġimage ĊĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Composable Ċ internal Ġfun ĠRepo Details Body ( repo : ĠRepo View DataModel ) Ġ{ ĊĊĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . height ( 1 6 . dp )) ĊĊĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġrepo . repo Name , ĊĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . h 4 , ĊĠĠĠĠĠĠĠ ĠtextAlign Ġ= ĠText Align . Center , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( horizontal Ġ= Ġ 1 6 . dp ) ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠ Ġvertical Alignment Ġ= ĠAlignment . Center Vert ically , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width (), ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Language ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . caption , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextAlign Ġ= ĠText Align . Center , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight . Bold , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( start Ġ= Ġ 1 6 . dp , Ġtop Ġ= Ġ 1 6 . dp ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġrepo . language , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . colors . secondary , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . caption , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextAlign Ġ= ĠText Align . Start , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( start Ġ= Ġ 8 . dp , Ġtop Ġ= Ġ 1 6 . dp ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠUser Metadata ( repo ) ĊĊĠĠĠ ĠComp osition Local Provider ( Local Content Alpha Ġprovides ĠContent Alpha . medium ) Ġ{ ĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġrepo . description , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . body 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 1 6 . dp ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠUser Metadata ( repo : ĠRepo View DataModel ) Ġ{ ĊĠĠĠ Ġval Ġty pography Ġ= ĠMaterial Theme . typography ĊĠĠĠ ĠRow ( ĊĠĠĠĠĠĠĠ Ġ// ĠMerge Ġsemantics Ġso Ġaccessibility Ġservices Ġconsider Ġthis Ġrow Ġa Ġsingle Ġelement ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( start Ġ= Ġ 1 6 . dp , Ġtop Ġ= Ġ 1 6 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. semantics ( merge Desc endants Ġ= Ġtrue ) Ġ{} ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= ĠIcons . Filled . Account Circle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . size ( 4 0 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Filter Ġ= ĠColor Filter . tint ( Local Content Color . current ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Fit ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠSp acer ( Modifier . width ( 8 . dp )) ĊĊĠĠĠĠĠĠĠ ĠColumn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġrepo . userName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġty pography . caption , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( top Ġ= Ġ 4 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠComp osition Local Provider ( Local Content Alpha Ġprovides ĠContent Alpha . medium ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġrepo . user Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġty pography . caption ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview ( ĊĠĠĠ Ġname Ġ= Ġ" Repo ĠDetails ", ĊĠĠĠ Ġui Mode Ġ= ĠConfiguration . UI _ MODE _ N IGHT _ NO , ĊĠĠĠ Ġdevice Ġ= ĠDevices . PIXEL _ 4 _ XL Ċ ) Ċ @ Preview ( ĊĠĠĠ Ġname Ġ= Ġ" Repo ĠDetails ĠâĢ¢ ĠDark ", ĊĠĠĠ Ġui Mode Ġ= ĠConfiguration . UI _ MODE _ N IGHT _ YES , ĊĠĠĠ Ġdevice Ġ= ĠDevices . PIXEL _ 4 _ XL Ċ ) Ċ @ Composable Ċ fun ĠRepo Details Preview () Ġ{ ĊĠĠĠ ĠSt arg azer Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠRepo Details ( repo Ġ= Ġrepo View DataModel ()) ĊĠĠĠ Ġ} Ċ } Ċ