package Ġorg . od k . collect . android . projects Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġorg . od k . collect . android . R Ċ import Ġorg . od k . collect . android . databinding . Add Project Dialog Layout Binding Ċ import Ġorg . od k . collect . android . injection . D agger Utils Ċ import Ġorg . od k . collect . material . Material FullScreen Dialog Fragment Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠAdd Project Dialog Ġ: ĠMaterial FullScreen Dialog Fragment () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġprojects Repository : ĠProjects Repository ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠAdd Project Dialog Layout Binding ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ ĠD agger Utils . getComponent ( context ). inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠAdd Project Dialog Layout Binding . inflate ( in flater ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetUp Toolbar () ĊĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġold TextString : ĠString ĊĠĠĠĠĠĠĠ Ġbinding . project Icon Input Text . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( char Sequence : ĠCharSequence , Ġi : ĠInt , Ġi 1 : ĠInt , Ġi 2 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold TextString Ġ= Ġchar Sequence . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( char Sequence : ĠCharSequence , Ġi : ĠInt , Ġi 1 : ĠInt , Ġi 2 : ĠInt ) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( editable : ĠEdit able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġnew TextString Ġ= Ġeditable . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( old TextString Ġ!= Ġnew TextString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Character . code Point Count ( new TextString , Ġ 0 , Ġnew TextString . length ) Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew TextString Ġ= Ġold TextString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . project Icon Input Text . setText ( new TextString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . project Icon Input Text . setSelection ( new TextString . length ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġbinding . cancel Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . add Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprojects Repository . add ( Project ( getProject Name (), Ġget Project Icon (), Ġget Project Color ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClose Clicked () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Toolbar (): ĠToolbar ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . add Project Toolbar . toolbar ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar ?. setTitle ( R . string . add _ project ) ĊĠĠĠĠĠĠĠ Ġtoolbar ?. navigation Icon Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget ProjectName () Ġ= Ġbinding . projectName . edit Text ?. text ?. trim (). toString () ĊĊĠĠĠ Ġprivate Ġfun Ġget Project Icon () Ġ= Ġbinding . project Icon . edit Text ?. text ?. trim (). toString () ĊĊĠĠĠ Ġprivate Ġfun Ġget Project Color () Ġ= Ġbinding . project Color . edit Text ?. text ?. trim (). toString () Ċ } Ċ