package Ġir . ari . tts Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . speech . tts . Text ToS peech Ċ import Ġandroid . view . Context Theme Wrapper Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . webkit . WebView Client Ċ import Ġandroid . widget .* Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġjava . util .* ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġed t 1 : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġspinner 1 : ĠSp inner ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġspinner 2 : Spinner ? Ġ= Ġnull ĊĠĠĠ Ġ// Switch Ġswitch 1 ; ĊĠĠĠ Ġprivate Ġvar Ġbtn : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġt ts : ĠText ToS peech ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġed t 1 Ġ= ĠfindViewById ( R . id . main EditText 1 ) ĊĠĠĠĠĠĠĠ Ġ// ed t 2 Ġ= ĠfindViewById ( R . id . main EditText 2 ) ĊĠĠĠĠĠĠĠ Ġspinner 1 Ġ= ĠfindViewById ( R . id . main Spinner 1 ) ĊĠĠĠĠĠĠĠ Ġspinner 2 Ġ= ĠfindViewById ( R . id . main Spinner 2 ) ĊĠĠĠĠĠĠĠ Ġ// switch 1 Ġ= ĠfindViewById ( R . id . main Switch 1 ) ĊĠĠĠĠĠĠĠ Ġbtn Ġ= ĠfindViewById ( R . id . main Button 1 ) Ċ // ĠĠĠĠĠĠĠ Ġspinner 1 ?. setOn ItemSelected Listener ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġadapter 1 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArray Adapter . createFrom Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . array . rate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . layout . simple _ spinner _ item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġadapter 1 . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠ Ġspinner 1 ?. adapter Ġ= Ġadapter 1 ĊĠĠĠĠĠĠĠ Ġspinner 1 ?. setSelection ( 2 ) Ċ Ċ // ĠĠĠĠĠĠĠ Ġspinner 2 ?. setOn ItemSelected Listener ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġadapter 2 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArray Adapter . createFrom Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . array . dialect , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . layout . simple _ spinner _ item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġadapter 2 . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠ Ġspinner 2 ?. adapter Ġ= Ġadapter 2 ĊĠĠĠĠĠĠĠ Ġ// spinner 2 . setSelection ( 0 ); ĊĊĠĠĠĠĠĠĠ Ġ// spinner 2 . setSelection ( 0 ); ĊĠĠĠĠĠĠĠ Ġt ts Ġ= ĠText ToS peech ( this @ MainActivity ) Ġ{ Ġstatus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ!= ĠText ToS peech . ERROR ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts !!. language Ġ= ĠLocale . EN GL ISH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġto S peak Ġ= Ġed t 1 ?. text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( to S peak . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto S peak Ġ= Ġ" Nothing Ġto Ġspeech !" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , ĠR . string . nothing , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( spinner 1 ?. selected Item Position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġt ts !!. set Speech Rate ( 0 . 1 . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġt ts !!. set Speech Rate ( 0 . 5 . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġt ts !!. set Speech Rate ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġt ts !!. set Speech Rate ( 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġt ts !!. set Speech Rate ( 6 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( spinner 2 ?. selected Item Position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġt ts !!. language Ġ= ĠLocale . EN GL ISH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġt ts !!. language Ġ= ĠLocale . US ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġt ts !!. language Ġ= ĠLocale . UK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġt ts !!. language Ġ= ĠLocale . CAN ADA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġt ts !!. language Ġ= ĠLocale . F REN CH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġ-> Ġt ts !!. language Ġ= ĠLocale . CAN ADA _ F REN CH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts !!. speak ( to S peak , ĠText ToS peech . QUEUE _ FLUSH , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts !!. speak ( to S peak , ĠText ToS peech . QUEUE _ FLUSH , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . about Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalert Ġ= ĠAlertDialog . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Theme Wrapper ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ MainActivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style . Theme _ TT S ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert . setTitle ( R . string . about ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġw v Ġ= ĠWebView ( application Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// wv . get Settings (). set BuiltIn Zoom Controls ( true ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw v . is Vertical ScrollBar Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// wv . setHorizontal ScrollBar Enabled ( false ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// wv . load Data With Base URL ( null , Ġ" HTML Ġcontent Ġhere ", Ġ" text / html ", Ġ" utf - 8 ", Ġnull ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw v . load Url (" file :/// android _ asset / LICENSE . html ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert . setView ( wv ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert . set Negative Button ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . close ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġdialog , Ġ_ Ġ-> Ġdialog . dismiss () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ }