package Ġjp . j ug g ler . sub way to oter . dialog čĊč Ċ import Ġandroid . annotation . Suppress Lint č Ċ import Ġandroid . app . Activity č Ċ import Ġandroid . app . Dialog č Ċ import Ġandroid . view . View č Ċ import Ġandroid . view . WindowManager č Ċ import Ġandroid . view . input method . Editor Info č Ċ import Ġandroid . widget . EditText č Ċ import Ġandroid . widget . TextView čĊč Ċ import Ġjp . j ug g ler . sub way to oter . R čĊč Ċ object ĠD lg TextInput Ġ{ čĊčĊĠĠĠ Ġinterface ĠCallback Ġ{ čĊĠĠĠĠĠĠĠ Ġfun Ġon OK ( dialog : ĠDialog , Ġtext : ĠString ) čĊčĊĠĠĠĠĠĠĠ Ġfun Ġon Empty Error () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Suppress Lint (" Inf late Params ") čĊĠĠĠ Ġfun Ġshow ( čĊĠĠĠĠĠĠĠ Ġactivity : ĠActivity , čĊĠĠĠĠĠĠĠ Ġcaption : ĠCharSequence , čĊĠĠĠĠĠĠĠ Ġinitial Text : ĠCharSequence ?, čĊĠĠĠĠĠĠĠ Ġallow Empty : ĠBoolean Ġ= Ġfalse , čĊĠĠĠĠĠĠĠ Ġcallback : ĠCallback , čĊĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġactivity . layout Inflater . inflate ( R . layout . dlg _ text _ input , Ġnull , Ġfalse ) čĊĠĠĠĠĠĠĠ Ġval Ġet Input Ġ= Ġview . findViewById < EditText >( R . id . et Input ) čĊĠĠĠĠĠĠĠ Ġval Ġbtn Ok Ġ= Ġview . findViewById < View >( R . id . btn Ok ) čĊĠĠĠĠĠĠĠ Ġval Ġtv Caption Ġ= Ġview . findViewById < TextView >( R . id . tv Caption ) čĊčĊĠĠĠĠĠĠĠ Ġtv Caption . text Ġ= Ġcaption čĊĠĠĠĠĠĠĠ Ġif Ġ( initial Text Ġ!= Ġnull Ġ&& Ġinitial Text . isNotEmpty ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġet Input . setText ( initial Text ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġet Input . setSelection ( initial Text . length ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġet Input . setOn Editor ActionListener Ġ{ Ġ_, Ġaction Id , Ġ_ Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Id Ġ== ĠEditor Info . IME _ ACTION _ DONE ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Ok . perform Click () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠDialog ( activity ) čĊĠĠĠĠĠĠĠ Ġdialog . set ContentView ( view ) čĊĠĠĠĠĠĠĠ Ġbtn Ok . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġet Input . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( token . isEmpty () Ġ&& Ġ! allow Empty ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Empty Error () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on OK ( dialog , Ġtoken ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġview . findViewById < View >( R . id . btn Cancel ). setOnClickListener Ġ{ Ġdialog . cancel () Ġ} čĊčĊĠĠĠĠĠĠĠ Ġdialog . window ?. setLayout ( WindowManager . LayoutParams . MATCH _ PARENT , ĠWindow Manager . LayoutParams . WRAP _ CONTENT ) čĊĠĠĠĠĠĠĠ Ġdialog . show () čĊĠĠĠ Ġ} č Ċ } čĊ