package Ġio . odd lot . spl end id . utils čĊč Ċ import Ġandroid . app . Activity č Ċ import Ġandroid . content . Context č Ċ import Ġandroid . text . InputType č Ċ import Ġandroid . view . View č Ċ import Ġandroid . view . ViewGroup č Ċ import Ġandroid . view . input method . Input Method Manager č Ċ import Ġandroid . widget . EditText č Ċ import Ġandroid . widget . Frame Layout č Ċ import Ġandroidx . core . content . res . Resources Compat č Ċ import Ġio . odd lot . spl end id . R č Ċ // import Ġio . odd lot . spl end id . application Font č Ċ import Ġjava . text . NumberFormat č Ċ import Ġjava . text . SimpleDateFormat č Ċ import Ġjava . time . Instant č Ċ import Ġjava . time . Zone Id č Ċ import Ġjava . time . format . DateTime Formatter č Ċ import Ġjava . util .* č Ċ import Ġkotlin . math . round čĊč Ċ class ĠStringUtils Ġ{ čĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊĠĠĠĠĠĠĠ Ġ/** čĊĠĠĠĠĠĠĠĠ Ġ* ĠConvert Ġlong Ġto Ġdate Ġstring čĊĠĠĠĠĠĠĠĠ Ġ* ĠExample : Ġy yyy / MM / dd Ġ= Ġ 1 9 8 8 / 1 0 / 1 4 čĊĠĠĠĠĠĠĠĠ Ġ*/ čĊĠĠĠĠĠĠĠ Ġ@ Jvm Static čĊĠĠĠĠĠĠĠ Ġfun Ġdate String From Millis ( millis : ĠLong , Ġdate Pattern : ĠString Ġ= Ġ" yyyy - MM - dd "): ĠString Ġ{ č Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd tf Ġ= ĠDateTime Formatter . of Pattern ( date Pattern ) č Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠInstant . of Epoch Milli ( millis ). at Zone ( Zone Id . system Default ()). to LocalDateTime (). format ( dt f ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsdf Ġ= ĠSimpleDateFormat ( date Pattern ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsdf . format ( Date ( millis )) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ/** čĊĠĠĠĠĠĠĠĠ Ġ* ĠConvert Ġdate Ġstring Ġto Ġlong čĊĠĠĠĠĠĠĠĠ Ġ*/ čĊĠĠĠĠĠĠĠ Ġ@ Jvm Static čĊĠĠĠĠĠĠĠ Ġfun Ġmillis From DateString ( date String : ĠString , Ġdate Pattern : ĠString Ġ= Ġ" yyyy - MM - dd "): ĠLong Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsdf Ġ= ĠSimpleDateFormat ( date Pattern ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsdf . parse ( date String ) !!. time čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊč Ċ fun ĠLong . toDate String ( pattern : ĠString Ġ= Ġ" yyyy - MM - dd "): ĠString Ġ{ čĊĠĠĠ Ġval Ġd tf Ġ= ĠDateTime Formatter . of Pattern ( pattern ) čĊčĊĠĠĠ Ġreturn ĠInstant . of Epoch Milli ( this ) čĊĠĠĠĠĠĠĠ Ġ. at Zone ( Zone Id . system Default ()) čĊĠĠĠĠĠĠĠ Ġ. to LocalDateTime () čĊĠĠĠĠĠĠĠ Ġ. format ( dt f ) č Ċ } čĊč Ċ /** čĊ Ġ* ĠDouble Ġro under čĊ Ġ*/ č Ċ fun ĠDouble . round ( decimals : ĠInt ): ĠDouble Ġ{ čĊĠĠĠ Ġvar Ġmultiplier Ġ= Ġ 1 . 0 čĊĠĠĠ Ġrepeat ( decimals ) Ġ{ čĊĠĠĠĠĠĠĠ Ġmultiplier Ġ*= Ġ 1 0 čĊĠĠĠ Ġ} čĊĠĠĠ Ġreturn Ġround ( this Ġ* Ġmultiplier ) Ġ/ Ġmultiplier č Ċ } čĊč Ċ fun Ġ< T : ĠAny > ĠT . com mat ize (): ĠString Ġ{ čĊĠĠĠ Ġreturn ĠNumber Format . getNumber Instance ( Locale . getDefault ()). format ( this ) č Ċ } čĊč Ċ fun Ġprompt Dialog ( message : ĠString ?, Ġcallback : Ġ(() Ġ-> ĠUnit )? ) Ġ{ čĊĠĠĠ Ġcallback ?. invoke () č Ċ } čĊč Ċ // fun Ġbasic Dialog ( context : ĠContext , Ġtitle : ĠString , Ġpos : ĠString ? Ġ= Ġnull , Ġneg : ĠString ? Ġ= Ġnull ): ĠAlertDialog Ġ{ č Ċ // ĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( context ). apply Ġ{ č Ċ // ĠĠĠĠĠĠĠ Ġval Ġcontainer Ġ= ĠFrame Layout ( context ) č Ċ // ĠĠĠĠĠĠĠ Ġ// ĠConfig Ġdialog Ġbox č Ċ // ĠĠĠĠĠĠĠ Ġset View ( container ) č Ċ // ĠĠĠĠĠĠĠ ĠsetTitle ( title ) č Ċ // č Ċ // ĠĠĠĠĠĠĠ Ġ// ĠConfig Ġclick Ġlisteners č Ċ // ĠĠĠĠĠĠĠ Ġset Positive Button ( pos ) Ġ{ Ġdialog , Ġwhich Ġ-> Ġ} č Ċ // ĠĠĠĠĠĠĠ Ġset Negative Button ( neg ) Ġ{ Ġdialog , Ġwhich Ġ-> Ġ} č Ċ // ĠĠĠ Ġ} č Ċ // č Ċ // ĠĠĠ Ġ// ĠReturn Ġdialog č Ċ // ĠĠĠ Ġreturn Ġbuilder . create () č Ċ //} čĊč Ċ fun Ġbasic EditText ( context : ĠContext ): ĠEditText Ġ{ čĊĠĠĠ Ġval Ġinput Ġ= ĠEditText ( context ). apply Ġ{ čĊĠĠĠĠĠĠĠ Ġinput Type Ġ= ĠInput Type . TYPE _ CLASS _ TEXT Ġor ĠInput Type . TYPE _ TEXT _ FLAG _ CAP _ WORDS čĊĠĠĠĠĠĠĠ Ġval Ġapplication Font Ġ= ĠR . font . vare la _ round č Ċ // ĠĠĠĠĠĠĠ Ġshow Soft Input On Focus Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġtype face Ġ= ĠResources Compat . getFont ( getContext (), Ġapplication Font ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġlp Ġ= ĠFrame Layout . LayoutParams ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT , čĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT čĊĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠ Ġlp . set Margins ( resources . get Dimension Pixel Size ( R . dim en . dialog _ input _ margin ), Ġ 1 0 , Ġresources . get Dimension Pixel Size ( R . dim en . dialog _ input _ margin ), Ġ 0 ) čĊčĊĠĠĠĠĠĠĠ Ġlayout Params Ġ= Ġlp čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġreturn Ġinput č Ċ } čĊč Ċ fun ĠView . hide Keyboard ( activity : ĠActivity ) Ġ{ čĊĠĠĠ Ġval Ġview Ġ= Ġactivity . current Focus čĊčĊĠĠĠ Ġview ?. let Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġactivity . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager čĊĠĠĠĠĠĠĠ Ġimm . hide Soft Input From Window ( it . window Token , Ġ 0 ) čĊĠĠĠ Ġ} č Ċ }