package Ġcom . example . android dev challenge . screens Ċ Ċ import Ġandroidx . compose . foundation . Image Ċ import Ġandroidx . compose . foundation . is System In Dark Theme Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . foundation . text . Keyboard Options Ċ import Ġandroidx . compose . material . Button Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . material . TextField Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . layout . Content Scale Ċ import Ġandroidx . compose . ui . res . p ainter Resource Ċ import Ġandroidx . compose . ui . text . input . Keyboard Type Ċ import Ġandroidx . compose . ui . text . input . Password Visual Transformation Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . navigation . compose . remember Nav Controller Ċ import Ġcom . example . android dev challenge . HOME _ SCREEN Ċ import Ġcom . example . android dev challenge . R Ċ import Ġcom . example . android dev challenge . ui . theme . My Theme Ċ import Ġcom . example . android dev challenge . view model . Navigation ViewModel Ċ import Ġcom . example . android dev challenge . view model . S ooth ViewModel Ċ Ċ @ Composable Ċ fun ĠLogin Screen ( ĊĠĠĠ Ġnavigation ViewModel : ĠNavigation ViewModel , Ċ ) Ġ{ ĠĠĠ Ġval Ġbackground Resource Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( is System In Dark Theme ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ dark _ login ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ light _ login ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ ĠBox ( modifier Ġ= ĠModifier . fill MaxSize (), Ġcontent Alignment Ġ= ĠAlignment . Center ) Ġ{ ĊĠĠĠĠĠĠĠ ĠImage ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( id Ġ= Ġbackground Resource ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill MaxSize (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Fill Bounds ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal Alignment Ġ= ĠAlignment . Center H orizontally , ĊĠĠĠĠĠĠĠ Ġ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" LOG ĠIN ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . h 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . colors . on Background ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . padding ( 3 2 . dp )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠTextField ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( start Ġ= Ġ 2 4 . dp , Ġend Ġ= Ġ 2 4 . dp ). height ( 5 6 . dp ). fill Max Width (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change Ġ= Ġ{ Ġ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" Email Ġaddress ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Options Ġ= ĠKeyboard Options ( keyboard Type Ġ= ĠKeyboard Type . Email ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . padding ( 8 . dp )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠTextField ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( start Ġ= Ġ 2 4 . dp , Ġend Ġ= Ġ 2 4 . dp ). height ( 5 6 . dp ). fill Max Width (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change Ġ= Ġ{ Ġ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġ{ ĠText (" Password ") Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisual Transformation Ġ= ĠPassword Visual Transformation (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Options Ġ= ĠKeyboard Options ( keyboard Type Ġ= ĠKeyboard Type . Password ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . padding ( 8 . dp )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( start Ġ= Ġ 2 4 . dp , Ġend Ġ= Ġ 2 4 . dp ). height ( 7 2 . dp ). fill Max Width (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġnavigation ViewModel . goto ( HOME _ SCREEN ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshape Ġ= ĠMaterial Theme . shapes . medium , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġ" LOG ĠIN Ġ", Ġstyle Ġ= ĠMaterial Theme . typography . button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . padding ( 8 . dp )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ @ Preview (" Light ĠTheme ĠLogin Screen ", Ġwidth Dp Ġ= Ġ 3 6 0 , Ġheight Dp Ġ= Ġ 6 4 0 ) Ċ @ Composable Ċ fun ĠLight Preview Login Screen () Ġ{ ĊĠĠĠ ĠMy Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠLogin Screen ( Navigation ViewModel ( remember Nav Controller ())) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview (" Dark ĠTheme ĠLogin Screen ", Ġwidth Dp Ġ= Ġ 3 6 0 , Ġheight Dp Ġ= Ġ 6 4 0 ) Ċ @ Composable Ċ fun ĠDark Preview Login Screen () Ġ{ ĊĠĠĠ ĠMy Theme ( dark Theme Ġ= Ġtrue ){ ĊĠĠĠĠĠĠĠ ĠLogin Screen ( Navigation ViewModel ( remember Nav Controller ())) ĊĠĠĠ Ġ} Ċ }