package Ġdemo . kotlin . vm . ui Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . v 7 . app . AlertDialog Ċ import Ġandroid . text . InputType Ċ import Ġandroid . widget . EditText Ċ import Ġdemo . kotlin . vm . R Ċ Ċ class ĠText Input Dialog ( private Ġval Ġcontext : ĠContext , Ġprivate Ġvar Ġtitle : ĠString ?) Ġ{ ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġresource : ĠInt ) Ġ: Ġthis ( context , Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . title Ġ= Ġcontext . getString ( resource ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġ! is ĠOn Text Result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ( Throwable ( context . getString ( R . string . text _ input _ dialog _ error ))) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( title . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġcontext . getString ( R . string . text _ input _ dialog _ title ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbuild (): ĠAlertDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠEditText ( context ) ĊĠĠĠĠĠĠĠ Ġinput . input Type Ġ= ĠInput Type . TYPE _ CLASS _ TEXT ĊĊĠĠĠĠĠĠĠ Ġbuilder . setTitle ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setView ( input ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . ok , Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( context Ġas ĠOn Text Result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Text Dialog Result ( input . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( R . string . cancel , Ġ{ Ġdialog , Ġ_ Ġ-> Ġdialog . cancel () Ġ}) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn Text Result Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Text Dialog Result ( input : ĠString ) ĊĠĠĠ Ġ} Ċ Ċ }