/* čĊ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject čĊ Ġ* čĊ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); čĊ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . čĊ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat čĊ Ġ* čĊ Ġ* ĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 čĊ Ġ* čĊ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware čĊ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , čĊ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . čĊ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand čĊ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . čĊ Ġ*/ č Ċ package Ġcom . example . android dev challenge . ui . layout čĊč Ċ import Ġandroidx . compose . foundation . Image č Ċ import Ġandroidx . compose . foundation . layout . Arrange ment č Ċ import Ġandroidx . compose . foundation . layout . Box č Ċ import Ġandroidx . compose . foundation . layout . Column č Ċ 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 . padding č Ċ import Ġandroidx . compose . foundation . layout . padding From Baseline č Ċ import Ġandroidx . compose . material . Material Theme č Ċ import Ġandroidx . compose . material . Surface č Ċ 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 . res . string Resource č Ċ import Ġandroidx . compose . ui . unit . dp č Ċ import Ġandroidx . navigation . Nav Controller č Ċ import Ġandroidx . navigation . compose . navigate č Ċ import Ġcom . example . android dev challenge . R č Ċ import Ġcom . example . android dev challenge . ui . components . Primary Button č Ċ import Ġcom . example . android dev challenge . ui . components . Secondary Button č Ċ import Ġcom . example . android dev challenge . ui . components . Subtitle 1 čĊč Ċ @ Composable č Ċ fun ĠWelcome ( nav Controller : ĠNav Controller ) Ġ{ čĊĠĠĠ ĠSurface ( color Ġ= ĠMaterial Theme . colors . primary ) Ġ{ čĊčĊĠĠĠĠĠĠĠ ĠBox ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () čĊĠĠĠĠĠĠĠ Ġ) Ġ{ č Ċ // ĠĠĠĠĠĠĠ ĠBackground čĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( id Ġ= ĠR . drawable . welcome _ bg ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Crop čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) č Ċ // ĠĠĠĠĠĠĠ ĠContent čĊĠĠĠĠĠĠĠĠĠĠĠ ĠContent ( nav Controller ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊč Ċ @ Composable č Ċ fun ĠContent ( nav Controller : ĠNav Controller ) Ġ{ čĊĠĠĠ ĠColumn ( čĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width (), čĊĠĠĠĠĠĠĠ Ġvertical Arrange ment Ġ= ĠArrange ment . Center , čĊĠĠĠĠĠĠĠ Ġhorizontal Alignment Ġ= ĠAlignment . Center H orizontally , čĊčĊĠĠĠ Ġ) Ġ{ č Ċ // ĠĠĠĠĠĠĠ ĠIl los čĊĠĠĠĠĠĠĠ ĠImage ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( id Ġ= ĠR . drawable . welcome _ il los ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( start Ġ= Ġ 8 8 . dp , Ġtop Ġ= Ġ 7 2 . dp , Ġbottom Ġ= Ġ 4 8 . dp ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , č Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Scale Ġ= ĠContent Scale . Crop čĊĠĠĠĠĠĠĠ Ġ) č Ċ // ĠĠĠĠĠĠĠ ĠLogo čĊĠĠĠĠĠĠĠ ĠImage ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter Resource ( id Ġ= ĠR . drawable . logo ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull čĊĠĠĠĠĠĠĠ Ġ) č Ċ // ĠS log an čĊĠĠĠĠĠĠĠ ĠSub title 1 ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġstring Resource ( R . string . s log an ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding From Baseline ( top Ġ= Ġ 3 2 . dp , Ġbottom Ġ= Ġ 4 0 . dp ) čĊĠĠĠĠĠĠĠ Ġ) čĊč Ċ /* ĠĠĠĠĠĠĠ ĠText ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstring Resource ( R . string . s log an ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier č Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first Baseline To Top ( 3 2 . dp ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding From Baseline ( top Ġ= Ġ 3 2 . dp , Ġbottom Ġ= Ġ 4 0 . dp ), č Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( bottom Ġ= Ġ 4 0 . dp ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠMaterial Theme . typography . subtitle 1 , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠMaterial Theme . colors . on Surface čĊĠĠĠĠĠĠĠ Ġ) */ č Ċ // ĠĠĠĠĠĠ ĠCreate Ġaccount Ġbutton č Ċ /* ĠĠĠĠĠĠĠ ĠButton ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= ĠButton Defaults . button Colors ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠMaterial Theme . colors . secondary , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Color Ġ= ĠMaterial Theme . colors . on Secondary čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġshape Ġ= ĠMaterial Theme . shapes . medium , čĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġ}, Ġmodifier Ġ= ĠModifier čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( bottom Ġ= Ġ 8 . dp ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 4 8 . dp ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( horizontal Ġ= Ġ 1 6 . dp ) čĊĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġ" Create Ġaccount ") čĊĠĠĠĠĠĠĠ Ġ}*/ čĊĠĠĠĠĠĠĠ ĠPrimary Button ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Text Ġ= Ġstring Resource ( R . string . create _ account ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Button Click Ġ= Ġ{ Ġ/* nav Controller ?. navigate ("") */ Ġ}, čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( bottom Ġ= Ġ 8 . dp ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. height ( 4 8 . dp ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( horizontal Ġ= Ġ 1 6 . dp ) čĊĠĠĠĠĠĠĠ Ġ) čĊč Ċ // ĠĠĠĠĠĠĠ ĠLogin č Ċ /* čĊĠĠĠĠĠĠĠ ĠButton ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġborder Ġ= Ġnull , Ġelevation Ġ= Ġnull , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( top Ġ= Ġ 2 4 . dp ), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġnav Controller ?. navigate (" log _ in ") Ġ}, Ġcolors Ġ= ĠButton Defaults . button Colors ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠColor . Transparent , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Color Ġ= ĠMaterial Theme . colors . primary Variant čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġ" Log Ġin ") čĊĠĠĠĠĠĠĠ Ġ} č Ċ */ čĊĠĠĠĠĠĠĠ ĠSecondary Button ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Text Ġ= Ġstring Resource ( R . string . login ), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġnav Controller . navigate (" log _ in ") Ġ}, čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( top Ġ= Ġ 2 4 . dp ) čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠ Ġ} č Ċ } čĊ