/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// 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 Ġandroidx . compose . material Ċ Ċ import Ġandroidx . compose . animation . Color Prop Key Ċ import Ġandroidx . compose . animation . Dp Prop Key Ċ import Ġandroidx . compose . animation . core . Float Prop Key Ċ import Ġandroidx . compose . animation . core . Linear E asing Ċ import Ġandroidx . compose . animation . core . Transition Spec Ċ import Ġandroidx . compose . animation . core . transition Definition Ċ import Ġandroidx . compose . animation . core . t ween Ċ import Ġandroidx . compose . animation . transition Ċ import Ġandroidx . compose . foundation . Experimental Foundation Api Ċ import Ġandroidx . compose . foundation . Interaction Ċ import Ġandroidx . compose . foundation . Interaction State Ċ import Ġandroidx . compose . foundation . click able Ċ import Ġandroidx . compose . foundation . layout . Box Ċ import Ġandroidx . compose . foundation . layout . default Min Size Constraints Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . preferred Size In Ċ import Ġandroidx . compose . foundation . text . Basic TextField Ċ import Ġandroidx . compose . foundation . text . Keyboard Options Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . Providers Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . draw . alpha Ċ import Ġandroidx . compose . ui . focus . Focus Reference Ċ import Ġandroidx . compose . ui . focus . focus Reference Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . graphics . Shape Ċ import Ġandroidx . compose . ui . graphics . take OrElse Ċ import Ġandroidx . compose . ui . layout . Layout Modifier Ċ import Ġandroidx . compose . ui . layout . Meas ur able Ċ import Ġandroidx . compose . ui . layout . Measure Result Ċ import Ġandroidx . compose . ui . layout . Measure Scope Ċ import Ġandroidx . compose . ui . layout . Place able Ċ import Ġandroidx . compose . ui . node . Ref Ċ import Ġandroidx . compose . ui . platform . Inspector Value Info Ċ import Ġandroidx . compose . ui . platform . debug Inspector Info Ċ import Ġandroidx . compose . ui . text . Software Keyboard Controller Ċ import Ġandroidx . compose . ui . text . TextStyle Ċ import Ġandroidx . compose . ui . text . input . I me Action Ċ import Ġandroidx . compose . ui . text . input . TextField Value Ċ import Ġandroidx . compose . ui . text . input . Visual Transformation Ċ import Ġandroidx . compose . ui . text . lerp Ċ import Ġandroidx . compose . ui . unit . Constraints Ċ import Ġandroidx . compose . ui . unit . Dp Ċ import Ġandroidx . compose . ui . unit . constr ain Width Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . compose . ui . unit . offset Ċ Ċ internal Ġenum Ġclass ĠText FieldType Ġ{ ĊĠĠĠ ĠF illed , ĠOut lined Ċ } Ċ Ċ /** Ċ Ġ* ĠImplementation Ġof Ġthe Ġ[ TextField ] Ġand Ġ[ Outlined TextField ] Ċ Ġ*/ Ċ @ Composable Ċ @ Opt In ( Experimental Foundation Api :: class ) Ċ internal Ġfun ĠTextField Impl ( ĊĠĠĠ Ġtype : ĠText FieldType , ĊĠĠĠ Ġenabled : ĠBoolean , ĊĠĠĠ ĠreadOnly : ĠBoolean , ĊĠĠĠ Ġvalue : ĠText FieldValue , ĊĠĠĠ Ġon Value Change : Ġ( TextField Value ) Ġ-> ĠUnit , ĊĠĠĠ Ġmodifier : ĠModifier , ĊĠĠĠ Ġsingle Line : ĠBoolean , ĊĠĠĠ Ġtext Style : ĠTextStyle , ĊĠĠĠ Ġlabel : Ġ@ Composable Ġ(() Ġ-> ĠUnit )? , ĊĠĠĠ Ġplaceholder : Ġ@ Composable Ġ(() Ġ-> ĠUnit )? , ĊĠĠĠ Ġleading : Ġ@ Composable Ġ(() Ġ-> ĠUnit )? , ĊĠĠĠ Ġtrailing : Ġ@ Composable Ġ(() Ġ-> ĠUnit )? , ĊĠĠĠ Ġis Error Value : ĠBoolean , ĊĠĠĠ Ġvisual Transformation : ĠVisual Transformation , ĊĠĠĠ Ġkeyboard Options : ĠKeyboard Options Ġ= ĠKeyboard Options . Default , ĊĠĠĠ Ġmax Lines : ĠInt Ġ= ĠInt . MAX _ VALUE , ĊĠĠĠ Ġon I me ActionPerformed : Ġ( I me Action , ĠSoftware Keyboard Controller ?) Ġ-> ĠUnit , ĊĠĠĠ Ġon TextInput Started : Ġ( Software Keyboard Controller ) Ġ-> ĠUnit , ĊĠĠĠ Ġinteraction State : ĠInteraction State , ĊĠĠĠ Ġactive Color : ĠColor , ĊĠĠĠ Ġinactive Color : ĠColor , ĊĠĠĠ Ġerror Color : ĠColor , ĊĠĠĠ ĠbackgroundColor : ĠColor , ĊĠĠĠ Ġshape : ĠShape Ċ ) Ġ{ ĊĠĠĠ Ġ// ĠTODO ( so bo le va ): Ġb / 1 7 1 3 0 5 3 3 8 Ġprovide Ġcolors Ġobject Ġand Ġapply Ġalpha Ġthere Ġinstead ĊĠĠĠ Ġ// ĠIf Ġcolor Ġis Ġnot Ġprovided Ġvia Ġthe Ġtext Ġstyle , Ġuse Ġcontent Ġcolor Ġas Ġa Ġdefault ĊĠĠĠ Ġval ĠtextColor Ġ= Ġtext Style . color . take OrElse Ġ{ ĊĠĠĠĠĠĠĠ ĠAmb ient Content Color . current ĊĠĠĠ Ġ}. copy ( alpha Ġ= Ġif Ġ( enabled ) ĠAmb ient Content Alpha . current Ġelse ĠContent Alpha . disabled ) ĊĠĠĠ Ġval Ġmerged TextStyle Ġ= Ġtext Style . merge ( TextStyle ( color Ġ= ĠtextColor )) ĊĊĠĠĠ Ġval Ġkeyboard Controller : ĠRef < Software Keyboard Controller > Ġ= Ġremember Ġ{ ĠRef () Ġ} ĊĊĠĠĠ Ġval Ġis Focused Ġ= Ġinteraction State . contains ( Interaction . Focused ) ĊĠĠĠ Ġval Ġinput State Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġis Focused Ġ-> ĠInput Phase . Focused ĊĠĠĠĠĠĠĠ Ġvalue . text . isEmpty () Ġ-> ĠInput Phase . Un focused Empty ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠInput Phase . Un focused NotEmpty ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdecor ated TextField : Ġ@ Composable Ġ( Modifier ) Ġ-> ĠUnit Ġ= Ġ@ Composable Ġ{ Ġtag Modifier Ġ-> ĊĠĠĠĠĠĠĠ ĠDecor ation ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Color Ġ= Ġinactive Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġty pography Ġ= ĠMaterial Theme . typography . subtitle 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Alpha Ġ= Ġif Ġ( enabled ) ĠContent Alpha . high Ġelse ĠContent Alpha . disabled ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBasic TextField ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġtag Modifier . default Min Size Constraints ( min Width Ġ= ĠTextField Min Width ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Style Ġ= Ġmerged TextStyle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġenabled , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠreadOnly Ġ= ĠreadOnly , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change Ġ= Ġon Value Change , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Color Ġ= Ġif Ġ( isError Value ) Ġerror Color Ġelse Ġactive Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisual Transformation Ġ= Ġvisual Transformation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Options Ġ= Ġkeyboard Options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Lines Ġ= Ġmax Lines , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinteraction State Ġ= Ġinteraction State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon I me ActionPerformed Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon I me ActionPerformed ( it , Ġkeyboard Controller . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon TextInput Started Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Controller . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon TextInput Started ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Ġ= Ġsingle Line ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġfocus Reference Ġ= ĠFocus Reference () ĊĠĠĠ Ġval Ġtext Field Modifier Ġ= Ġif Ġ( enabled ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmodifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. focus Reference ( focus Reference ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. click able ( interaction State Ġ= Ġinteraction State , Ġindication Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfocus Reference . request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO ( b / 1 6 3 1 0 9 4 4 9 ): ĠShow ing Ġand Ġhiding Ġkeyboard Ġshould Ġbe Ġhandled Ġby ĠBase TextField . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ĠThe Ġrequest Focus () Ġcall Ġhere Ġshould Ġbe Ġenough Ġto Ġtrigger Ġthe Ġsoftware Ġkeyboard . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ĠInvest iate Ġwhy Ġthis Ġis Ġneeded Ġhere . ĠIf Ġit Ġis Ġreally Ġneeded , Ġinstead Ġof Ġdoing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġthis Ġin Ġthe ĠonClick Ġcallback , Ġwe Ġshould Ġmove Ġthis Ġlogic Ġto Ġon Focus Changed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġso Ġthat Ġit Ġcan Ġshow Ġor Ġhide Ġthe Ġkeyboard Ġbased Ġon Ġthe Ġfocus Ġstate . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! readOnly ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Controller . value ?. show Software Keyboard () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġmodifier ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠTextField Transition Scope . Transition ( ĊĠĠĠĠĠĠĠ Ġinput State Ġ= Ġinput State , ĊĠĠĠĠĠĠĠ Ġshow Label Ġ= Ġlabel Ġ!= Ġnull , ĊĠĠĠĠĠĠĠ Ġactive Color Ġ= Ġif Ġ( isError Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Color ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactive Color . apply Alpha ( alpha Ġ= ĠContent Alpha . high ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġlabel Inactive Color Ġ= Ġif Ġ( isError Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Color ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinactive Color . apply Alpha ( if Ġ( enabled ) ĠContent Alpha . medium Ġelse ĠContent Alpha . disabled ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġindicator Inactive Color Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Error Value Ġ-> Ġerror Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ== ĠText FieldType . Filled Ġ-> Ġinactive Color . apply Alpha ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( enabled ) ĠIndicator Inactive Alpha Ġelse ĠContent Alpha . disabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġinactive Color . apply Alpha ( alpha Ġ= ĠContent Alpha . disabled ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ) Ġ{ Ġlabel Progress , Ġanimated Label Color , Ġindicator Width , Ġindicator Color , Ġplaceholder Alpha Ġ-> ĊĊĠĠĠĠĠĠĠ Ġval Ġleading Color Ġ= Ġinactive Color . apply Alpha ( alpha Ġ= ĠTr ailing Leading Alpha ) ĊĠĠĠĠĠĠĠ Ġval Ġtrailing Color Ġ= Ġif Ġ( isError Value ) Ġerror Color Ġelse Ġleading Color ĊĊĠĠĠĠĠĠĠ Ġval Ġdecor ated Label : Ġ@ Composable Ġ(() Ġ-> ĠUnit )? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( label Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlabel Animated Style Ġ= Ġl erp ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Theme . typography . subtitle 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Theme . typography . caption , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Progress ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDecor ation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Color Ġ= Ġanimated Label Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġty pography Ġ= Ġlabel Animated Style , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġlabel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġdecor ated Placeholder : Ġ@ Composable Ġ(( Modifier ) Ġ-> ĠUnit )? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( placeholder Ġ!= Ġnull Ġ&& Ġvalue . text . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġ{ Ġmodifier Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBox ( modifier . alpha ( placeholder Alpha )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDecor ation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Color Ġ= Ġinactive Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġty pography Ġ= ĠMaterial Theme . typography . subtitle 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Alpha Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( enabled ) ĠContent Alpha . medium Ġelse ĠContent Alpha . disabled , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġplaceholder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText FieldType . Filled Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTextField Layout ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. preferred Size In ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠminWidth Ġ= ĠTextField Min Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠminHeight Ġ= ĠTextField Min Height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. then ( textField Modifier ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor ated TextField Ġ= Ġdecor ated TextField , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor ated Placeholder Ġ= Ġdecor ated Placeholder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor ated Label Ġ= Ġdecor ated Label , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleading Ġ= Ġleading , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Ġ= Ġtrailing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Ġ= Ġsingle Line , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleading Color Ġ= Ġleading Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Color Ġ= Ġtrailing Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Progress Ġ= Ġlabel Progress , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Width Ġ= Ġindicator Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Color Ġ= Ġindicator Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠbackgroundColor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshape Ġ= Ġshape ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText FieldType . Outlined Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOut lined TextField Layout ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. preferred Size In ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠminWidth Ġ= ĠTextField Min Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠminHeight Ġ= ĠTextField Min Height Ġ+ ĠOut lined TextField Top Padding ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. then ( textField Modifier ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( top Ġ= ĠOut lined TextField Top Padding ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor ated TextField Ġ= Ġdecor ated TextField , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor ated Placeholder Ġ= Ġdecor ated Placeholder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor ated Label Ġ= Ġdecor ated Label , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleading Ġ= Ġleading , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Ġ= Ġtrailing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Ġ= Ġsingle Line , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleading Color Ġ= Ġleading Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Color Ġ= Ġtrailing Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Progress Ġ= Ġlabel Progress , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Width Ġ= Ġindicator Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Color Ġ= Ġindicator Color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠSet Ġalpha Ġif Ġthe Ġcolor Ġis Ġnot Ġtrans luc ent Ċ Ġ*/ Ċ internal Ġfun ĠColor . apply Alpha ( alpha : ĠFloat ): ĠColor Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( this . alpha Ġ!= Ġ 1 f ) Ġthis Ġelse Ġthis . copy ( alpha Ġ= Ġalpha ) Ċ } Ċ Ċ /** Ċ Ġ* ĠSet Ġcontent Ġcolor , Ġty pography Ġand Ġemp hasis Ġfor Ġ[ content ] Ġcomp osable Ċ Ġ*/ Ċ @ Composable Ċ internal Ġfun ĠDecor ation ( ĊĠĠĠ Ġcontent Color : ĠColor , ĊĠĠĠ Ġty pography : ĠTextStyle ? Ġ= Ġnull , ĊĠĠĠ Ġcontent Alpha : ĠFloat ? Ġ= Ġnull , ĊĠĠĠ Ġcontent : Ġ@ Composable Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġval Ġcolor And Emp hasis Ġ= Ġ@ Composable Ġ{ ĊĠĠĠĠĠĠĠ ĠPro viders ( Ambient Content Color Ġprovides Ġcontent Color ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( content Alpha Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPro viders ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAmb ient Content Alpha Ġprovides Ġcontent Alpha , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġcontent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPro viders ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAmb ient Content Alpha Ġprovides Ġcontent Color . alpha , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġcontent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( typography Ġ!= Ġnull ) ĠProvide TextStyle ( typography , Ġcolor And Emp hasis ) Ġelse Ġcolor And Emp hasis () Ċ } Ċ Ċ private Ġval ĠPlace able . non Zero : ĠBoolean Ġget () Ġ= Ġthis . width Ġ!= Ġ 0 Ġ|| Ġthis . height Ġ!= Ġ 0 Ċ internal Ġfun Ġwidth Or Zero ( place able : ĠPlace able ?) Ġ= Ġplace able ?. width Ġ?: Ġ 0 Ċ internal Ġfun Ġheight Or Zero ( place able : ĠPlace able ?) Ġ= Ġplace able ?. height Ġ?: Ġ 0 Ċ Ċ /** Ċ Ġ* ĠA Ġmodifier Ġthat Ġapplies Ġpadding Ġonly Ġif Ġthe Ġsize Ġof Ġthe Ġelement Ġis Ġnot Ġzero Ċ Ġ*/ Ċ internal Ġfun ĠModifier . icon Padding ( start : ĠD p Ġ= Ġ 0 . dp , Ġend : ĠD p Ġ= Ġ 0 . dp ) Ġ= ĊĠĠĠ Ġthis . then ( ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠLayout Modifier , ĠIns pector Value Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Inspector Info Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" icon Padding " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties [" start "] Ġ= Ġstart ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties [" end "] Ġ= Ġend ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠMeasure Scope . measure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeas ur able : ĠMe as ur able , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstraints : ĠConstraints ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠMeasure Result Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhorizontal Ġ= Ġstart . toInt Px () Ġ+ Ġend . toInt Px () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplace able Ġ= Ġmeas ur able . measure ( constraints . offset (- horizontal )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġif Ġ( place able . non Zero ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstraints . constr ain Width ( place able . width Ġ+ Ġhorizontal ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlayout ( width , Ġplace able . height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace able . place Relative ( start . toInt Px (), Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ Ċ private Ġobject ĠTextField Transition Scope Ġ{ ĊĠĠĠ Ġprivate Ġval ĠLabel Color Prop Ġ= ĠColor Prop Key () ĊĠĠĠ Ġprivate Ġval ĠLabel Progress Prop Ġ= ĠFloat Prop Key () ĊĠĠĠ Ġprivate Ġval ĠIndicator Color Prop Ġ= ĠColor Prop Key () ĊĠĠĠ Ġprivate Ġval ĠIndicator Width Prop Ġ= ĠD p Prop Key () ĊĠĠĠ Ġprivate Ġval ĠPlace holder Opacity Prop Ġ= ĠFloat Prop Key () ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun ĠTransition ( ĊĠĠĠĠĠĠĠ Ġinput State : ĠInput Phase , ĊĠĠĠĠĠĠĠ Ġshow Label : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġactive Color : ĠColor , ĊĠĠĠĠĠĠĠ Ġlabel Inactive Color : ĠColor , ĊĠĠĠĠĠĠĠ Ġindicator Inactive Color : ĠColor , ĊĠĠĠĠĠĠĠ Ġcontent : Ġ@ Composable Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Progress : ĠFloat , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Color : ĠColor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Width : ĠD p , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Color : ĠColor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder Opacity : ĠFloat ĊĠĠĠĠĠĠĠ Ġ) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdefinition Ġ= Ġremember ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Label , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactive Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Inactive Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Inactive Color ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate Label Transition Definition ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Label , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactive Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Inactive Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Inactive Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġtransition ( definition Ġ= Ġdefinition , Ġto State Ġ= Ġinput State ) ĊĠĠĠĠĠĠĠ Ġcontent ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate [ Label Progress Prop ], ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate [ Label Color Prop ], ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate [ Indicator Width Prop ], ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate [ Indicator Color Prop ], ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate [ Placeholder Opacity Prop ] ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgenerate Label Transition Definition ( ĊĠĠĠĠĠĠĠ Ġshow Label : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġactive Color : ĠColor , ĊĠĠĠĠĠĠĠ Ġlabel Inactive Color : ĠColor , ĊĠĠĠĠĠĠĠ Ġindicator Inactive Color : ĠColor ĊĠĠĠ Ġ) Ġ= Ġtransition Definition < Input Phase > Ġ{ ĊĠĠĠĠĠĠĠ Ġstate ( Input Phase . Focused ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Label Color Prop ] Ġ= Ġactive Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Indicator Color Prop ] Ġ= Ġactive Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Label Progress Prop ] Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Indicator Width Prop ] Ġ= ĠIndicator Focused Width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Placeholder Opacity Prop ] Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstate ( Input Phase . Un focused Empty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Label Color Prop ] Ġ= Ġlabel Inactive Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Indicator Color Prop ] Ġ= Ġindicator Inactive Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Label Progress Prop ] Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Indicator Width Prop ] Ġ= ĠIndicator Un focused Width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Placeholder Opacity Prop ] Ġ= Ġif Ġ( show Label ) Ġ 0 f Ġelse Ġ 1 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstate ( Input Phase . Un focused NotEmpty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Label Color Prop ] Ġ= Ġlabel Inactive Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Indicator Color Prop ] Ġ= Ġindicator Inactive Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Label Progress Prop ] Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Indicator Width Prop ] Ġ= Ġ 1 . dp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Placeholder Opacity Prop ] Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtransition ( from State Ġ= ĠInput Phase . Focused , Ġto State Ġ= ĠInput Phase . Un focused Empty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Transition () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Transition () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder Dis appear Transition () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtransition ( from State Ġ= ĠInput Phase . Focused , Ġto State Ġ= ĠInput Phase . Un focused NotEmpty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Transition () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtransition ( from State Ġ= ĠInput Phase . Un focused NotEmpty , Ġto State Ġ= ĠInput Phase . Focused ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Transition () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtransition ( from State Ġ= ĠInput Phase . Un focused Empty , Ġto State Ġ= ĠInput Phase . Focused ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Transition () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Transition () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder Ap pear Transition () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġbelow Ġstates Ġare Ġneeded Ġto Ġsupport Ġcase Ġwhen Ġa Ġsingle Ġstate Ġis Ġused Ġto Ġcontrol Ġmultiple ĊĠĠĠĠĠĠĠ Ġ// Ġtext Ġfields . ĊĠĠĠĠĠĠĠ Ġtransition ( from State Ġ= ĠInput Phase . Un focused NotEmpty , Ġto State Ġ= ĠInput Phase . Un focused Empty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Transition () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder Ap pear Transition () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtransition ( from State Ġ= ĠInput Phase . Un focused Empty , Ġto State Ġ= ĠInput Phase . Un focused NotEmpty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Transition () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTransition Spec < Input Phase >. indicator Transition () Ġ{ ĊĠĠĠĠĠĠĠ ĠIndicator Color Prop Ġusing Ġt ween ( duration Millis Ġ= ĠAnimation Duration ) ĊĠĠĠĠĠĠĠ ĠIndicator Width Prop Ġusing Ġt ween ( duration Millis Ġ= ĠAnimation Duration ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTransition Spec < Input Phase >. label Transition () Ġ{ ĊĠĠĠĠĠĠĠ ĠLabel Color Prop Ġusing Ġt ween ( duration Millis Ġ= ĠAnimation Duration ) ĊĠĠĠĠĠĠĠ ĠLabel Progress Prop Ġusing Ġt ween ( duration Millis Ġ= ĠAnimation Duration ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTransition Spec < Input Phase >. placeholder Ap pear Transition () Ġ{ ĊĠĠĠĠĠĠĠ ĠPlace holder Opacity Prop Ġusing Ġt ween ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration Millis Ġ= ĠPlace holder Animation Duration , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Millis Ġ= ĠPlace holder Animation Delay Or Duration , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeasing Ġ= ĠLinear E asing ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTransition Spec < Input Phase >. placeholder Dis appear Transition () Ġ{ ĊĠĠĠĠĠĠĠ ĠPlace holder Opacity Prop Ġusing Ġt ween ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration Millis Ġ= ĠPlace holder Animation Delay Or Duration , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeasing Ġ= ĠLinear E asing ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠAn Ġinternal Ġstate Ġused Ġto Ġanimate Ġa Ġlabel Ġand Ġan Ġindicator . Ċ Ġ*/ Ċ private Ġenum Ġclass ĠInput Phase Ġ{ ĊĠĠĠ Ġ// ĠText Ġfield Ġis Ġfocused ĊĠĠĠ ĠF ocused , ĊĊĠĠĠ Ġ// ĠText Ġfield Ġis Ġnot Ġfocused Ġand Ġinput Ġtext Ġis Ġempty ĊĠĠĠ ĠUn focused Empty , ĊĊĠĠĠ Ġ// ĠText Ġfield Ġis Ġnot Ġfocused Ġbut Ġinput Ġtext Ġis Ġnot Ġempty ĊĠĠĠ ĠUn focused NotEmpty Ċ } Ċ Ċ internal Ġconst Ġval ĠTextField Id Ġ= Ġ" TextField " Ċ internal Ġconst Ġval ĠPlace holder Id Ġ= Ġ" Hint " Ċ internal Ġconst Ġval ĠLabel Id Ġ= Ġ" Label " Ċ Ċ private Ġconst Ġval ĠAnimation Duration Ġ= Ġ 1 5 0 Ċ private Ġconst Ġval ĠPlace holder Animation Duration Ġ= Ġ 8 3 Ċ private Ġconst Ġval ĠPlace holder Animation Delay Or Duration Ġ= Ġ 6 7 Ċ Ċ private Ġval ĠIndicator Un focused Width Ġ= Ġ 1 . dp Ċ private Ġval ĠIndicator Focused Width Ġ= Ġ 2 . dp Ċ private Ġconst Ġval ĠTr ailing Leading Alpha Ġ= Ġ 0 . 5 4 f Ċ private Ġval ĠTextField Min Height Ġ= Ġ 5 6 . dp Ċ private Ġval ĠTextField Min Width Ġ= Ġ 2 8 0 . dp Ċ internal Ġval ĠTextField Padding Ġ= Ġ 1 6 . dp Ċ internal Ġval ĠHorizontal Icon Padding Ġ= Ġ 1 2 . dp Ċ Ċ // ĠF illed Ġtext Ġfield Ġuses Ġ 4 2 % Ġopacity Ġto Ġmeet Ġthe Ġcontrast Ġrequirements Ġfor Ġaccessibility Ġreasons Ċ private Ġconst Ġval ĠIndicator Inactive Alpha Ġ= Ġ 0 . 4 2 f Ċ Ċ /* Ċ This Ġpadding Ġis Ġused Ġto Ġallow Ġlabel Ġnot Ġoverlap Ġwith Ġthe Ġcontent Ġabove Ġit . ĠThis Ġ 8 . dp Ġwill Ġwork Ċ for Ġdefault Ġcases Ġwhen Ġdevelopers Ġdo Ġnot Ġoverride Ġthe Ġlabel 's Ġfont Ġsize . ĠIf Ġthey Ġdo , Ġthey Ġwill Ċ need Ġto Ġadd Ġadditional Ġpadding Ġthemselves Ċ */ Ċ private Ġval ĠOut lined TextField Top Padding Ġ= Ġ 8 . dp Ċ