package Ġcom . github . d run lin . webapp box . fragment Ċ Ċ import Ġandroid . databinding . ViewData Binding Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AlertDialog Ċ import Ġcom . github . d run lin . webapp box . BR Ċ import Ġcom . github . d run lin . webapp box . R Ċ import Ġcom . github . d run lin . webapp box . common . app Ċ import Ġcom . github . d run lin . webapp box . common . positive Button Ċ import Ġcom . github . d run lin . webapp box . common . string Ċ import Ġcom . github . d run lin . webapp box . data . UserAgent Ċ import Ġcom . github . d run lin . webapp box . model . UserAgent Manager Ċ import Ġcom . jak ew h art on . r xb ind ing . widget . Rx TextView Ċ import Ġkotlinx . android . synt hetic . main . fragment _ user _ ag net _ editor .* Ċ import Ġkotlinx . android . synt hetic . main . text _ input . view .* Ċ import Ġrx . Observable Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠUser Agent Editor Fragment ( id : ĠLong ?) Ġ: ĠEditor Dialog Fragment < UserAgent >( id ) Ġ{ ĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġuser Agent Manager : ĠUser Agent Manager ĊĊĠĠĠ Ġoverride Ġval Ġdata Ġby Ġlazy Ġ{ Ġid ?. let Ġ{ Ġuser Agent Manager . getUser Agent ( it ) Ġ} Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġtitle Res Id Ġ= Ġid ?. let Ġ{ ĠR . string . edit _ user _ agent Ġ} Ġ?: ĠR . string . add _ user _ agent ĊĠĠĠ Ġoverride Ġval Ġlayout Res Id Ġ= ĠR . layout . fragment _ user _ ag net _ editor ĊĊĠĠĠ Ġconstructor () Ġ: Ġthis ( null ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġapp . component . inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Dialog Created ( dialog : ĠAlertDialog , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Dialog Created ( dialog , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġname Observer Ġ= ĠRx TextView . text Changes ( name Input . edit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . trim (). toString () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġon Name Change ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġua Observer Ġ= ĠRx TextView . text Changes ( ua Input . edit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . trim (). toString () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġon UserAgent Change ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠObservable . combine Latest ( name Observer , Ġua Observer , Ġ{ Ġa , Ġb Ġ-> Ġa Ġ&& Ġb Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġdialog . positive Button . isEnabled Ġ= Ġit Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon UserAgent Change ( userAgent : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( userAgent . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġua Input . layout . isError Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( userAgent Ġ!= Ġdata ?. value Ġ&& Ġuser Agent Manager . is Value Exit ed ( userAgent )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġua Input . layout . error Ġ= ĠgetString ( R . string . exit ed _ ua ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġua Input . layout . isError Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Name Change ( name : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( name . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Input . layout . isError Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ!= Ġdata ?. name Ġ&& Ġuser Agent Manager . is Name Exit ed ( name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Input . layout . error Ġ= ĠgetString ( R . string . exit ed _ name ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Input . layout . isError Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Commit () Ġ{ ĊĠĠĠĠĠĠĠ Ġid ?. run Ġ{ Ġuser Agent Manager . update ( this , Ġname Input . edit . string , Ġua Input . edit . string ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġuser Agent Manager . insert ( name Input . edit . string , Ġua Input . edit . string ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind Data ( binding : ĠView Data Binding , Ġdata : ĠUser Agent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . set Variable ( BR . userAgent , Ġdata ) ĊĠĠĠ Ġ} Ċ } Ċ