package Ġy utor i . tf . hang ul . exam Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . Activity Info Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . speech . tts . Text ToS peech Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . widget . Toast Ċ import Ġkotlinx . android . synt hetic . main . activity _ exam .* Ċ import Ġkotlinx . android . synt hetic . main . activity _ practice .* Ċ import Ġorg . jetbrains . ank o . toast Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġy utor i . tf . hang ul . R Ċ import Ġy utor i . tf . hang ul . data . Get Sentence Response Ċ import Ġy utor i . tf . hang ul . db . Shared Preference Controller Ċ import Ġy utor i . tf . hang ul . hang ul . Hang ul Classifier Ċ import Ġy utor i . tf . hang ul . hang ul . Paint View Ċ import Ġy utor i . tf . hang ul . network . Application Controller Ċ import Ġy utor i . tf . hang ul . network . Network Service Ċ import Ġy utor i . tf . hang ul . process . Num select Activity Ċ import Ġjava . util .* Ċ Ċ class ĠExam Kt Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġnetwork Service : ĠNetwork Service ĊĊĠĠĠ Ġprivate Ġvar Ġclassifier : ĠH ang ul Classifier ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcurrent Top Labels Ġ= ĠarrayOf Null s < String >( 5 ) ĊĊĠĠĠ Ġlateinit Ġvar Ġt ts : ĠText ToS peech ĊĠĠĠ Ġlateinit Ġvar Ġspeak Text : ĠString ĊĊĠĠĠ Ġprivate Ġval ĠFIN ISH _ INTERVAL _ TIME : ĠLong Ġ= Ġ 2 0 0 0 ĊĠĠĠ Ġprivate Ġvar Ġback Pressed Time : ĠLong Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ exam ) ĊĠĠĠĠĠĠĠ Ġrequested Orientation Ġ= ĠActivity Info . SCREEN _ OR IENTATION _ UNSPECIFIED ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġnetwork Service Ġ= ĠApplication Controller . instance . network Service ĊĠĠĠĠĠĠĠ Ġset ClickListener () ĊĠĠĠĠĠĠĠ Ġplay ToS peech () ĊĠĠĠĠĠĠĠ Ġinit Draw () ĊĠĠĠĠĠĠĠ Ġload Model () ĊĠĠĠĠĠĠĠ Ġget Sentence Response () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Override ĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemp Time Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġinterval Time Ġ= Ġtemp Time Ġ- Ġback Pressed Time ĊĊĠĠĠĠĠĠĠ Ġif Ġ( 0 Ġ<= Ġinterval Time Ġ&& ĠFIN ISH _ INTERVAL _ TIME Ġ>= Ġinterval Time ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( application Context , ĠNum select Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback Pressed Time Ġ= Ġtemp Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" íķľ ë²Ī ĠëįĶ Ġë Ī Ħ ë¥ ´ë © ´ Ġì¢ ħ ë£Į ëĲ ©ëĭĪëĭ¤ .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset ClickListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn _ write _ next . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumber Ġ= ĠShared Preference Controller . instance ?. get Pref Integer Data (" number _ of _ problem ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġ" answer "+ number . toString () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠShared Preference Controller . instance ?. set Pref Data ( key , Ġtv _ write _ result . text . toString ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠShared Preference Controller . instance ?. set Pref Data ( key , Ġ" íİ ĺìĿ´ ì§Ģ "+ number . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShared Preference Controller . instance ?. set Pref Data ( key , Ġ" ëĤĺ ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( number Ġ== Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( application Context , ĠCheck Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShared Preference Controller . instance ?. set Pref Data (" number _ of _ problem ", Ġnumber !!. plus ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( application Context , ĠExam Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ write _ prev . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumber Ġ= ĠShared Preference Controller . instance ?. get Pref Integer Data (" number _ of _ problem ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( number Ġ!= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShared Preference Controller . instance ?. set Pref Data (" number _ of _ problem ", Ġnumber !!. minus ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( application Context , ĠExam Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ write _ clear . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ exam _ out . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( application Context , ĠNum select Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġplay ToS peech () Ġ{ ĊĠĠĠĠĠĠĠ Ġt ts Ġ= ĠText ToS peech ( this , ĠText ToS peech . OnInit Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Override ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġon Init ( status : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ!= ĠText ToS peech . ERROR ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts . set Language ( Locale . K ORE AN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġbtn _ write _ speak . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts . speak ( speak Text , ĠText ToS peech . QUEUE _ FLUSH , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts . speak ( speak Text , ĠText ToS peech . QUEUE _ FLUSH , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Draw () Ġ{ ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 . set Draw Text ( tv _ write _ draw Here 1 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 2 . set Draw Text ( tv _ write _ draw Here 2 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 3 . set Draw Text ( tv _ write _ draw Here 3 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 4 . set Draw Text ( tv _ write _ draw Here 4 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 5 . set Draw Text ( tv _ write _ draw Here 5 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 6 . set Draw Text ( tv _ write _ draw Here 6 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 7 . set Draw Text ( tv _ write _ draw Here 7 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 8 . set Draw Text ( tv _ write _ draw Here 8 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 9 . set Draw Text ( tv _ write _ draw Here 9 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 0 . set Draw Text ( tv _ write _ draw Here 1 0 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 1 . set Draw Text ( tv _ write _ draw Here 1 1 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 2 . set Draw Text ( tv _ write _ draw Here 1 2 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 3 . set Draw Text ( tv _ write _ draw Here 1 3 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 4 . set Draw Text ( tv _ write _ draw Here 1 4 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 5 . set Draw Text ( tv _ write _ draw Here 1 5 ) ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 6 . set Draw Text ( tv _ write _ draw Here 1 6 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Touch Event ( event : ĠMotion Event ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( event . action Ġ== ĠMotion Event . ACTION _ DOWN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclassify _ timer Ġ= ĠTimer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtimer _ task : ĠTimer Task Ġ= Ġobject Ġ: ĠTimer Task () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclassify () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclassify _ timer . schedule ( timer _ task , Ġ 1 5 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 2 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 3 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 4 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 5 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 6 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 7 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 8 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 9 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 0 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 1 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 2 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 3 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 4 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 5 . reset () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 6 . reset () ĊĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 2 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 3 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 4 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 5 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 6 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 7 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 8 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 9 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 0 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 1 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 2 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 3 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 4 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 5 . invalidate () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 6 . invalidate () ĊĊĠĠĠĠĠĠĠ Ġtv _ write _ result . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 2 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 3 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 4 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 5 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 6 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 7 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 8 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 9 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 0 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 1 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 2 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 3 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 4 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 5 . touch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 6 . touch Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 2 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 3 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 4 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 5 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 6 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 7 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 8 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 9 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 0 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 1 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 2 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 3 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 4 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 5 . on Resume () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 6 . on Resume () ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 2 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 3 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 4 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 5 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 6 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 7 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 8 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 9 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 0 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 1 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 2 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 3 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 4 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 5 . on Pause () ĊĠĠĠĠĠĠĠ Ġpaint _ write _ 1 6 . on Pause () ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġif Ġ( tts Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt ts !!. stop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt ts !!. shutdown () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġt ts Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclassify () Ġ{ ĊĠĠĠĠĠĠĠ Ġtv _ write _ result . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġpixels Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 1 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 1 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 2 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 2 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 2 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 2 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 3 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 3 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 3 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 3 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 4 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 4 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 4 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 4 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 5 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 5 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 5 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 5 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 6 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 6 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 6 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 6 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 7 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 7 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 7 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 7 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 8 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 8 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 8 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 8 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 9 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 9 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 9 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 9 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 1 0 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 1 0 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 1 0 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 1 0 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 1 1 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 1 1 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 1 1 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 1 1 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 1 2 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 1 2 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 1 2 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 1 2 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 1 3 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 1 3 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 1 3 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 1 3 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 1 4 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 1 4 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 1 4 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 1 4 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 1 5 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 1 5 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 1 5 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 1 5 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpixels 1 6 Ġ: ĠFloat Array Ġ= Ġpaint _ write _ 1 6 . pixel Data ĊĠĠĠĠĠĠĠ Ġcurrent Top Labels Ġ= Ġclassifier !!. classify ( pixels 1 6 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( paint _ write _ 1 6 . touch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ result . append ( current Top Labels [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Sentence Response () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnumber Ġ= ĠShared Preference Controller . instance ?. get Pref Integer Data (" number _ of _ problem ") ĊĊĠĠĠĠĠĠĠ Ġval Ġauthorization Ġ= ĠShared Preference Controller . instance ?. get Pref String Data (" authorization ") ĊĠĠĠĠĠĠĠ Ġval Ġsentence Types Ġ= ĠShared Preference Controller . instance ?. get Pref String Data (" sentence Types ") ĊĠĠĠĠĠĠĠ Ġval Ġlevel Types Ġ= ĠShared Preference Controller . instance ?. get Pref String Data (" level Types ") ĊĠĠĠĠĠĠĠ Ġval Ġnum Types Ġ= ĠShared Preference Controller . instance ?. get Pref String Data (" num Types ") ĊĊĠĠĠĠĠĠĠ Ġval Ġget Sentence Response Ġ= Ġnetwork Service . get Sentence Response ( authorization , Ġsentence Types , Ġlevel Types , Ġnum Types ) ĊĊĠĠĠĠĠĠĠ Ġget Sentence Response . enqueue ( object Ġ: ĠCallback < List < Get Sentence Response >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < List < Get Sentence Response >>, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" Error ĠPract ice Ġ: Ġ", Ġt . message . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( t . message . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < List < Get Sentence Response >>, Ġresponse : ĠResponse < List < Get Sentence Response >>) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . code ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ write _ sentence Num . setText ( number . toString () Ġ+ Ġ". Ġë²Ī Ġë¬¸ìłľ " Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeak Text Ġ= Ġresponse . body ()?. get ( number !!. minus ( 1 )) ?. sentence . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" 4 0 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 4 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" 4 0 4 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 0 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" 5 0 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" else ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Model () Ġ{ ĊĠĠĠĠĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclassifier Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠH ang ul Classifier . create ( assets , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMODEL _ FILE , ĠLABEL _ FILE , ĠPaint View . FEED _ DIMENSION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" input ", Ġ" keep _ prob ", Ġ" output ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" Error Ġloading Ġpre - trained Ġmodel .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLABEL _ FILE Ġ= Ġ" 2 5 6 - common - hang ul . txt " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMODEL _ FILE Ġ= Ġ" optimized _ hang ul _ tensorflow . pb " ĊĠĠĠ Ġ} Ċ }