package Ġtest . sa ad . d ind inn mini assignment . problems olving Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġtest . sa ad . d ind inn mini assignment . R Ċ import Ġtest . sa ad . d ind inn mini assignment . ass ing ment task . ui . Home Activity Ċ import Ġjava . lang . Number FormatException Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġletters : ĠString Ġ= Ġ" abcdefgh ijkl mnopqrst uvw xyz " ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġoutput Log : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġoutput : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġout Log : ĠString ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmove Input ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( validate Input ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Log Ġ= Ġ" Output :\ n " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Log Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcal Output () ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( view , Ġ" Invalid Ġinput !", ĠSn ackbar . LENGTH _ SHORT ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcal Output () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġinput String . edit Text ?. text !!. toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsteps Ġ= ĠInteger . parseInt ( input Steps . edit Text ?. text !!. toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. input . length Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcharacter Ġ= Ġinput [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Caps Ġ= Ġcharacter Ġ!= Ġcharacter . toLowerCase () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠindexOf Char Ġ= Ġletters . indexOf ( character . toLowerCase ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( steps Ġ< Ġletters . length ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmove Char ( indexOf Char , Ġsteps , Ġis Caps ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmove Char ( indexOf Char , Ġsteps Ġ% Ġletters . length , Ġis Caps ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Output Desc . text Ġ= Ġoutput Log Ġ+ Ġoutput Ġ+ Ġ"\ n " Ġ+ Ġout Log ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Number FormatException ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this ," Incorrect Ġinput ", Toast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmove Char ( indexOf Char : ĠInt , Ġsteps : ĠInt , Ġis Caps : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcharacter Ġ= Ġletters [ indexOf Char ] ĊĠĠĠĠĠĠĠ Ġif Ġ( indexOf Char Ġ+ Ġsteps Ġ< Ġletters . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshifted Char Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Caps ) Ġletters [ indexOf Char Ġ+ Ġsteps ]. toUpperCase () Ġelse Ġletters [ indexOf Char Ġ+ Ġsteps ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ+= Ġshifted Char ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Log Ġ+= Ġletters [ indexOf Char ] Ġ+ Ġ" Ġis Ġmoved Ġby Ġ" Ġ+ Ġsteps Ġ+ Ġ" Ġtimes Ġwhich Ġresult Ġin Ġcharacter Ġ" Ġ+ Ġshifted Char Ġ+ Ġ"\ n " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshifted Char Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Caps ) Ġletters [ indexOf Char Ġ+ Ġsteps Ġ- Ġletters . length ]. toUpperCase () Ġelse Ġletters [ indexOf Char Ġ+ Ġsteps Ġ- Ġletters . length ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ+= Ġshifted Char ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Log Ġ+= Ġcharacter Ġ+ Ġ" Ġis Ġmoved Ġby Ġ" Ġ+ Ġsteps Ġ+ Ġ" Ġtimes Ġwhich Ġresult Ġin Ġcharacter Ġ" Ġ+ Ġshifted Char Ġ+ Ġ"\ n " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalidate Input (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinput String . edit Text ?. text ?. length !! Ġ> Ġ 0 Ġ&& Ġinput Steps . edit Text ?. text ?. length !! Ġ> Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnavigate To Assignment ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠHome Activity :: class . java )) ĊĠĠĠ Ġ} Ċ }