package Ġcom . example . plan ter Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 Ċ import Ġcom . example . plan ter . databinding . Activity Details Binding Ċ import Ġcom . google . firebase . database . Database Reference Ċ import Ġcom . google . firebase . database . Firebase Database Ċ import Ġorg . tensorflow . lite . Interpreter Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . nio . ByteBuffer Ċ import Ġjava . nio . Byte Order Ċ import Ġjava . nio . Mapped ByteBuffer Ċ import Ġjava . nio . channels . File Channel Ċ import Ġjava . util .* Ċ import Ġkotlin . Comparator Ċ import Ġkotlin . collections . ArrayList Ċ import Ġcom . google . firebase . storage . Firebase Storage Ċ import Ġkotlinx . android . synt hetic . main . activity _ details .* Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . tasks . await Ċ import Ġkotlinx . coroutines . with Context ĊĊ Ċ class ĠDetails Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠIMAGE _ ME AN Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġval ĠIMAGE _ STD Ġ= Ġ 2 5 5 . 0 f ĊĠĠĠ Ġprivate Ġval ĠMAX _ RESULTS Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġval ĠTH RESH OLD Ġ= Ġ 0 . 1 f ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠLANGUAGE : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Details Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdatabase : ĠDatabase Reference ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Details Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĊĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= Ġget SharedPreferences (" lang Choice ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ ĠLANGUAGE Ġ= Ġshared Pref . getString (" language ", Ġ" english "). toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġaction Bar Ġ= Ġsupport ActionBar ĊĊĠĠĠĠĠĠĠ Ġif Ġ( LANGUAGE Ġ== Ġ" english ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Bar Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Bar . title Ġ= Ġ" Similar ĠResults " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( LANGUAGE Ġ== Ġ" sin hal a ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Bar Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Bar . title Ġ= Ġ" à· ĥ à¶ ¸ à· ı à¶ ± Ġ à¶ ´ à· Ĭ à¶ » à¶ Ń à· Ĵ à¶ µ à¶ ½ " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . top D tl . setText (" à· Ģ à· Ĵ à· ģ à· Ĭ à· Ģ à· ı à· ĥ à¶ º ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sy mptoms . setText (" à¶ » à· Ŀ à¶ ľ Ġ à¶ ½ à¶ ļ à· Ĭ à· Ĥ à¶ « ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . more Info Text . setText (" à· Ģ à· Ĳ à¶ © à· Ĵ Ġ à· Ģ à· Ĵ à· ĥ à· Ĭ à¶ Ń à¶ » ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . recommend ation Text . setText (" à¶ ± à· Ĵ à¶ » à· Ĭ à¶ ¯ à· ļ à· ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView 2 . setText (" à· ĥ à· ı à¶ ¸ à· ı à¶ ± à· Ĭ \ u 2 0 0 D à¶ º Ġ à¶ » à· Ŀ à¶ ľ Ġ à¶ ļ à· ħ à¶ ¸ à¶ ± à· ı à¶ ļ à¶ » à¶ « à¶ º ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView 5 . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" à¶ ļ à· Ĵ à· ĥ à· Ĵ à¶ º à¶ ¸ à· Ĭ Ġ à¶ ļ à· Ĭ \ u 2 0 0 D à¶ » à· Ĵ à¶ º à· ı à¶ ¸ à· ı à¶ » à· Ĭ à¶ ľ à¶ º à¶ ļ à· Ĭ Ġ à¶ ľ à· Ĳ à¶ ± à· ĵ à¶ ¸ à¶ § Ġ à¶ ´ à· Ļ à¶ » , Ġ à¶ ¸ à· Ļ à¶ ¸ Ġ à¶ ± à· Ĵ à¶ » à· Ĭ à¶ ¯ à· ļ à· ģ à· Ĵ à¶ Ń Ġ à¶ » à· Ŀ à¶ ľ Ġ à· Ģ à· Ĵ à¶ ± à· Ĵ à· ģ à· Ĭ à¶ ł à¶ º Ġ à¶ Ķ à¶ ¶ à· ļ Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" à¶ ľ à· Ĳ à¶ § à¶ ½ à· Ķ à· Ģ à¶ § Ġ à¶ ľ à· Ĳ à¶ ½ à¶ ´ à· Ļ à¶ ± Ġ à¶ ¶ à· Ģ à¶ § Ġ à· Ģ à¶ ľ Ġ à¶ ¶ à¶ ½ à· ı Ġ à¶ ľ à· Ĳ à¶ ± à· ĵ à¶ ¸ à¶ § Ġ à¶ » à· Ŀ à¶ ľ Ġ à¶ ½ à¶ ļ à· Ĭ à· Ĥ à¶ « Ġ à¶ ļ à· Ĵ à¶ º à· Ģ à¶ ± à· Ĭ à¶ ± ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . org Con Text . setText (" à¶ ļ à· ı à¶ ¶ à¶ ± à· Ĵ à¶ ļ Ġ à¶ ´ à· ı à¶ ½ à¶ ± à¶ º ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . chem Con Text . setText (" à¶ » à· ĥ à· ı à¶ º à¶ ± à· Ĵ à¶ ļ Ġ à¶ ´ à· ı à¶ ½ à¶ ± à¶ º ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView 6 . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" à¶ ħ à· Ģ à· Ģ à· ı à¶ ¯ à¶ º à¶ º à· Ĵ : Ġ à· Ģ à· Ĵ à· ģ à· Ĭ à· Ģ à· ı à· ĥ à¶ ± à· ĵ à¶ º Ġ à¶ ¸ à¶ § à· Ĭ à¶ § à¶ ¸ Ġ à· ĥ à· Ĳ à¶ ½ à¶ ļ à· Ĵ à¶ º Ġ à¶ º à· Ķ à¶ Ń à· Ķ Ġ à¶ ½ à· Ļ à· ĥ Ġ à¶ ħ à¶ © à· Ķ Ġ à¶ ± à¶ ¸ à· Ĭ , Ġ à· Ģ à· Ļ à¶ ± à¶ Ń à· Ĭ Ġ à¶ ļ à· Ŀ à¶ « à¶ º à¶ ļ à· Ĵ à¶ ± à· Ĭ Ġ à¶ ± à· Ģ Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" à¶ » à· ĸ à¶ ´ à¶ º à¶ ļ à· Ĭ Ġ à¶ ľ à· Ĳ à¶ ± à· ĵ à¶ ¸ Ġ à· Ħ à· Ŀ Ġ à¶ Ń à¶ ± à· Ĵ Ġ à¶ ´ à¶ Ń à· Ĭ \ u 2 0 0 D à¶ » à¶ º à¶ ļ Ġ à· Ģ à· Ĳ à¶ © à· Ĵ Ġ à¶ ħ à· Ģ à¶ ° à· ı à¶ ± à¶ º à¶ ļ à· Ĭ Ġ à¶ º à· ľ à¶ ¸ à· Ķ Ġ à¶ ļ à¶ » Ġ à¶ ¡ à· ı à¶ º à· ı à¶ » à· ĸ à¶ ´ à¶ º à¶ ļ à· Ĭ Ġ à¶ ľ à· Ĳ à¶ ± à· ĵ à¶ ¸ à¶ § Ġ à¶ ĭ à¶ Ń à· Ĭ à· ĥ à· ı à· Ħ Ġ à¶ ļ à· Ĵ à¶ » à· ĵ à¶ ¸ Ġ à· Ħ à· ľ à¶ ³ à¶ º ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( LANGUAGE Ġ== Ġ" t amil ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Bar Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Bar . title Ġ= Ġ" à® ĩ à®¤ à¯ĩ Ġà®ª à¯ ĭ à®© à¯į à®± Ġà®® à¯ģ à®Ł à®¿ à®µ à¯ģ à®ķ à®³ à¯į " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . top D tl . setText (" à®¨ à®® à¯į à®ª à®¿ à®ķ à¯į à®ķ à¯Ī ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sy mptoms . setText (" à® ħ à®± à®¿ à®ķ à¯ģ à®± à®¿ à®ķ à®³ à¯į ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . more Info Text . setText (" à®® à¯ĩ à®² à¯ģ à®® à¯į Ġà®¤ à®ķ à®µ à®² à¯į ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . recommend ation Text . setText (" à®ª à®° à®¿ à®¨ à¯į à®¤ à¯ģ à®° à¯Ī à®ķ à®³ à¯į ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView 2 . setText (" à®ª à¯ Ĭ à®¤ à¯ģ Ġà® ¨ à¯ ĭ à®¯ à¯į Ġà®® à¯ĩ à®² à®¾ à®£ à¯į à®® à¯Ī ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView 5 . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" à® İ à®¨ à¯į à®¤ Ġà® ¨ à®Ł à®µ à®Ł à®¿ à®ķ à¯į à®ķ à¯Ī à®¯ à¯ģ à®® à¯į Ġà® İ à®Ł à¯ģ à®ª à¯į à®ª à®¤ à®± à¯į à®ķ à¯ģ Ġà®® à¯ģ à®© à¯į , Ġà® ĩ à®¨ à¯į à®¤ Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" à®ª à®° à®¿ à®¨ à¯į à®¤ à¯ģ à®° à¯Ī à®ķ à¯į à®ķ à®ª à¯į à®ª à®Ł à¯į à®Ł Ġà® ¨ à¯ ĭ à®¯ à®± à®¿ à®¤ à®² à¯į Ġà® ī à® Ļ à¯į à®ķ à®³ à¯į Ġà®ª à®¿ à®° à®ļ à¯į à®ļ à®© à¯Ī à®ķ à¯į à®ķ à¯ģ Ġà®ª à¯ Ĭ à®° à¯ģ à®¨ à¯į à®¤ à¯ģ à®® à®¾ Ġà® İ à®© à¯į à®ª à®¤ à¯Ī Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" à® ī à®± à¯ģ à®¤ à®¿ à®ª à¯į à®ª à®Ł à¯ģ à®¤ à¯į à®¤ Ġà® ħ à®± à®¿ à®ķ à¯ģ à®± à®¿ à®ķ à®³ à¯Ī à®ª à¯į Ġà®ª à®Ł à®¿ à®ķ à¯į à®ķ à®µ à¯ģ à®® à¯į ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . org Con Text . setText (" à®ķ à®° à®¿ à®® Ġà®ķ à®Ł à¯į à®Ł à¯ģ à®ª à¯į à®ª à®¾ à®Ł à¯ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . chem Con Text . setText (" à® ĩ à®° à®ļ à®¾ à®¯ à®© Ġà®ķ à®Ł à¯į à®Ł à¯ģ à®ª à¯į à®ª à®¾ à®Ł à¯ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView 6 . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" à® İ à®ļ à¯į à®ļ à®° à®¿ à®ķ à¯į à®ķ à¯Ī : Ġà® ¨ à®® à¯į à®ª à®¿ à®ķ à¯į à®ķ à¯Ī Ġà® ¨ à®¿ à®² à¯Ī Ġà®ķ à¯ģ à®± à®¿ à®ª à¯į à®ª à®¿ à®Ł à®¤ à¯į à®¤ à®ķ à¯į à®ķ Ġà® µ à®ķ à¯Ī à®¯ à®¿ à®² à¯į Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" à®ķ à¯ģ à®± à¯Ī à®µ à®¾ à®ķ Ġà® ĩ à®° à¯ģ à®¨ à¯į à®¤ à®¾ à®² à¯į , Ġà® µ à¯ Ĩ à®µ à¯į à®µ à¯ĩ à®± à¯ģ Ġà®ķ à¯ ĭ à®£ à® Ļ à¯į à®ķ à®³ à®¿ à®² à¯į Ġà® ĩ à®° à¯ģ à®¨ à¯į à®¤ à¯ģ Ġà®ª à¯ģ à®¤ à®¿ à®¯ Ġà®ª à®Ł à® Ļ à¯į à®ķ à®³ à¯Ī Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" à® İ à®Ł à¯ģ à®ª à¯į à®ª à®¤ à¯ģ Ġà® ¨ à®² à¯į à®² à®¤ à¯ģ Ġà® ħ à®² à¯į à®² à®¤ à¯ģ Ġà® Ĵ à®± à¯į à®± à¯Ī Ġà® ĩ à®² à¯Ī à®¯ à®¿ à®² à¯į Ġà® ħ à®¤ à®¿ à®ķ Ġà®ķ à®µ à®© à®® à¯į Ġà® ļ à¯ Ĩ à®² à¯ģ à®¤ à¯į à®¤ à¯ģ à®® à¯į Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" à®ª à¯ģ à®ķ à¯Ī à®ª à¯į à®ª à®Ł à® Ļ à¯į à®ķ à®³ à¯Ī Ġà® İ à®Ł à¯ģ à®ķ à¯į à®ķ Ġà®® à¯ģ à®¯ à®± à¯į à®ļ à®¿ à®ª à¯į à®ª à®¤ à¯ģ Ġà® ¨ à®² à¯į à®² à®¤ à¯ģ ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġaction Bar ?. set Display Home As Up Enabled ( true ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfilename Ġ= Ġintent . getString Extra (" filename ") ĊĠĠĠĠĠĠĠ Ġval Ġscaled B mp Ġ= Ġfilename ?. let Ġ{ Ġselect From History ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbyte Buffer Ġ= Ġscaled B mp ?. let Ġ{ Ġconvert Bitmap To ByteBuffer ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġ" labels . txt " ĊĠĠĠĠĠĠĠ Ġval Ġlabel List Ġ= Ġapplication . assets . open ( fileName ). buffered Reader (). use Lines Ġ{ Ġit . toList () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠArray ( 1 ) Ġ{ ĠFloat Array ( label List . size ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠInterpreter . Options () ĊĠĠĠĠĠĠĠ Ġoptions . set Num Threads ( 5 ) ĊĠĠĠĠĠĠĠ Ġoptions . set Use N NA PI ( true ) ĊĠĠĠĠĠĠĠ Ġval Ġinterpreter Ġ= ĠInterpreter ( load Model File (" Deep Wide Net _ BE _ WND . t flite "), Ġoptions ) ĊĊĠĠĠĠĠĠĠ Ġinterpreter . run ( byte Buffer , Ġresult ) ĊĠĠĠĠĠĠĠ Ġval Ġpreds Ġ= Ġget Sorted Result ( result , Ġlabel List ) ĊĠĠĠĠĠĠĠ Ġval Ġconfidence Ġ= Ġpreds . get ( 0 ). confidence Ġ* Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġnumber 3 digits : ĠDouble Ġ= ĠMath . round ( confidence Ġ* Ġ 1 0 0 0 . 0 ) Ġ/ Ġ 1 0 0 0 . 0 ĊĠĠĠĠĠĠĠ Ġval Ġnumber 2 digits : ĠDouble Ġ= ĠMath . round ( number 3 digits Ġ* Ġ 1 0 0 . 0 ) Ġ/ Ġ 1 0 0 . 0 ĊĠĠĠĠĠĠĠ Ġval Ġsolution : ĠDouble Ġ= ĠMath . round ( number 2 digits Ġ* Ġ 1 0 . 0 ) Ġ/ Ġ 1 0 . 0 ĊĊĠĠĠĠĠĠĠ Ġbinding . top Class . setText ( preds . get ( 0 ). title ) ĊĠĠĠĠĠĠĠ Ġbinding . top D tl . setText (" confidence : Ġ${ solution . toString ()} % ") ĊĊĠĠĠĠĠĠĠ Ġread Data From Data Base ( preds [ 0 ]. title ) ĊĠĠĠĠĠĠĠ Ġlist Files ( preds [ 0 ]. title ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġfun Ġread Data From Data Base ( key : ĠString ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġread Ġdata Ġif Ġkey Ġdoesn 't Ġhave Ġhealthy ĊĠĠĠĠĠĠĠ Ġif Ġ(! key . contains (" healthy ", Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( LANGUAGE Ġ== Ġ" english ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Ġ= ĠFirebase Database . getInstance (). getReference (" english / d isease ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . child ( key ). get (). add On Success Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsy mptoms Ġ= Ġit . child (" sy mptoms ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmore Info Ġ= Ġit . child (" more Info ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecommend Ġ= Ġit . child (" recommend ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠResult Ġwill Ġbe Ġh ol ded ĠHere ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlst : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgen Mng Lst : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstr g Lst : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorgan ic : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchemical : ĠMutable List < String > Ġ= ĠArrayList () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// add Ġresult Ġinto Ġarray Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġsy mptoms . children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlst . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsetting Ġresults Ġinto Ġtext Ġviews ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ml tv Sy mp . setText ( lst . join ToString (" Ġ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Info 1 . setText (" Agent : Ġ" Ġ+ Ġmore Info . child (" agent "). value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Info 2 . setText (" F avor able Ġenvironment : Ġ" Ġ+ Ġmore Info . child (" fav Env "). value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Info 3 . setText (" Hosts : Ġ" Ġ+ Ġmore Info . child (" hosts "). value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Info 4 . setText (" Lifecycle : Ġ" Ġ+ Ġmore Info . child (" lifecycle "). value . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġrecommend . child (" gen D ise Mng "). children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgen Mng Lst . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Rec Intro . setText ( recommend . child (" intro "). value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Rec Gen Mng . setText ( gen Mng Lst . join ToString (" Ġ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġrecommend . child (" strategy "). children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr g Lst . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Rec Strategy . setText ( str g Lst . join ToString (" Ġ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġrecommend . child (" organ ic "). children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorgan ic . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġrecommend . child (" che mical "). children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchemical . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Org D tl 2 . setText ( organ ic . join ToString ("\ n ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Chem Dt 1 . setText ( che mical . join ToString ("\ n ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdisease Ġon Ġin Ġdatabase ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġ" D isease Ġhas Ġno Ġrecords Ġdatabase .${ it }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. add On Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" firebase ", Ġ" Error Ġgetting Ġdata ", Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( LANGUAGE Ġ== Ġ" sin hal a ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Ġ= ĠFirebase Database . getInstance (). getReference (" sin hal a / d isease ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . child ( key ). get (). add On Success Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsy mptoms Ġ= Ġit . child (" sy mptoms ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmore Info Ġ= Ġit . child (" more Info ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecommend Ġ= Ġit . child (" recommend ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠResult Ġwill Ġbe Ġh ol ded ĠHere ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlst : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgen Mng Lst : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstr g Lst : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorgan ic : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchemical : ĠMutable List < String > Ġ= ĠArrayList () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// add Ġresult Ġinto Ġarray Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġsy mptoms . children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlst . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsetting Ġresults Ġinto Ġtext Ġviews ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ml tv Sy mp . setText ( lst . join ToString (" Ġ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Info 1 . setText (" à¶ ± à· Ĵ à¶ º à· Ŀ à¶ ¢ à· Ĵ à¶ Ń à¶ º à· ı : Ġ" Ġ+ Ġmore Info . child (" agent "). value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Info 2 . setText (" à· Ħ à· Ĵ à¶ Ń à¶ ļ à¶ » Ġ à¶ ´ à¶ » à· Ĵ à· ĥ à¶ » à¶ º : Ġ" Ġ+ Ġmore Info . child (" fav Env "). value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Info 3 . setText (" à· ĥ à¶ Ń à· Ĭ à¶ ļ à· ı à¶ » à¶ ļ : Ġ" Ġ+ Ġmore Info . child (" hosts "). value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Info 4 . setText (" à¶ ¢ à· ĵ à· Ģ à¶ ± Ġ à¶ ł à¶ ļ à· Ĭ à¶ » à¶ º : Ġ" Ġ+ Ġmore Info . child (" lifecycle "). value . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġrecommend . child (" gen D ise Mng "). children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgen Mng Lst . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Rec Intro . setText ( recommend . child (" intro "). value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Rec Gen Mng . setText ( gen Mng Lst . join ToString (" Ġ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġrecommend . child (" strategy "). children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr g Lst . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Rec Strategy . setText ( str g Lst . join ToString (" Ġ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġrecommend . child (" organ ic "). children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorgan ic . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġrecommend . child (" che mical "). children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchemical . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Org D tl 2 . setText ( organ ic . join ToString ("\ n ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Chem Dt 1 . setText ( che mical . join ToString ("\ n ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdisease Ġon Ġin Ġdatabase ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġ" D isease Ġhas Ġno Ġrecords Ġdatabase .${ it }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. add On Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" firebase ", Ġ" Error Ġgetting Ġdata ", Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( LANGUAGE Ġ== Ġ" t amil ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Ġ= ĠFirebase Database . getInstance (). getReference (" t amil / d isease ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . child ( key ). get (). add On Success Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsy mptoms Ġ= Ġit . child (" sy mptoms ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmore Info Ġ= Ġit . child (" more Info ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecommend Ġ= Ġit . child (" recommend ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠResult Ġwill Ġbe Ġh ol ded ĠHere ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlst : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgen Mng Lst : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstr g Lst : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorgan ic : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchemical : ĠMutable List < String > Ġ= ĠArrayList () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// add Ġresult Ġinto Ġarray Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġsy mptoms . children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlst . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsetting Ġresults Ġinto Ġtext Ġviews ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ml tv Sy mp . setText ( lst . join ToString (" Ġ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Info 1 . setText (" à®® à¯ģ à®ķ à®µ à®° à¯į : Ġ" Ġ+ Ġmore Info . child (" agent "). value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Info 2 . setText (" à®ļ à®¾ à®¤ à®ķ à®® à®¾ à®© Ġà® ļ à¯ Ĥ à® ´ à®² à¯į : Ġ" Ġ+ Ġmore Info . child (" fav Env "). value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Info 3 . setText (" à®ª à¯ģ à®° à®µ à®² à®° à¯į à®ķ à®³ à¯į : Ġ" Ġ+ Ġmore Info . child (" hosts "). value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Info 4 . setText (" à®µ à®¾ à® ´ à¯į à®ķ à¯į à®ķ à¯Ī à®ļ à¯į Ġà® ļ à¯ģ à® ´ à®± à¯į à®ļ à®¿ : Ġ" Ġ+ Ġmore Info . child (" lifecycle "). value . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġrecommend . child (" gen D ise Mng "). children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgen Mng Lst . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Rec Intro . setText ( recommend . child (" intro "). value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Rec Gen Mng . setText ( gen Mng Lst . join ToString (" Ġ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġrecommend . child (" strategy "). children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr g Lst . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Rec Strategy . setText ( str g Lst . join ToString (" Ġ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġrecommend . child (" organ ic "). children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorgan ic . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dsp Ġin Ġrecommend . child (" che mical "). children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchemical . add ( dsp . value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Org D tl 2 . setText ( organ ic . join ToString ("\ n ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Chem Dt 1 . setText ( che mical . join ToString ("\ n ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdisease Ġon Ġin Ġdatabase ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġ" D isease Ġhas Ġno Ġrecords Ġdatabase .${ it }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. add On Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" firebase ", Ġ" Error Ġgetting Ġdata ", Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . parent Sy mp . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . parent More . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . parent Rec . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . parent Organ ic . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . parent Chem . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Action Ca ution . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Health y Ca ution . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġ" This Ġis Ġhealthy Ġplant .", ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Wrong Constant ") ĊĠĠĠ Ġprivate Ġfun Ġlist Files ( key : ĠString ) Ġ= ĠCor outine Scope ( Dispatch ers . IO ). launch Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! key . contains (" healthy ", Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcreate Ġreference Ġto Ġfolder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstorage Ġ= ĠFirebase Storage . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimages Ġ= Ġstorage . reference . child (" example _ d isease _ img /$ key / "). list All (). await () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Urls Ġ= Ġmutable ListOf < String >() ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( image Ġin Ġimages . items ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġimage . download Url . await () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Urls . add ( url . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Adapter Ġ= ĠImage Adapter ( image Urls ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrv Images . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġimage Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Details Activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayout . HORIZONTAL , Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Details Activity , Ġe . message , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Model File ( model Path : ĠString ): ĠM apped ByteBuffer Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠfileDescriptor Ġ= Ġapplication . assets . open Fd ( model Path ) ĊĠĠĠĠĠĠĠ Ġval ĠinputStream Ġ= ĠFileInputStream ( file Descriptor . file Descriptor ) ĊĠĠĠĠĠĠĠ Ġval Ġfile Channel Ġ= ĠinputStream . channel ĊĠĠĠĠĠĠĠ Ġval Ġstart Offset Ġ= ĠfileDescriptor . start Offset ĊĠĠĠĠĠĠĠ Ġval Ġdeclared Length Ġ= ĠfileDescriptor . declared Length ĊĠĠĠĠĠĠĠ Ġreturn Ġfile Channel . map ( File Channel . Map Mode . READ _ ONLY , Ġstart Offset , Ġdeclared Length ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġselect From History ( filename : ĠString ): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdirectory Ġ= Ġfiles Dir . absolute Path ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ"$ directory /$ filename " ĊĠĠĠĠĠĠĠ Ġval Ġselected Image Ġ= ĠBitmap Factory . decode File ( path ) ĊĠĠĠĠĠĠĠ Ġval Ġscaled Ġ= ĠBitmap . create Scaled Bitmap ( selected Image , Ġ 7 2 , Ġ 7 2 , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġbinding . iv Pred Photo . setImage Bitmap ( selected Image ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġscaled ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconvert Bitmap To ByteBuffer ( bitmap : ĠBitmap ): ĠByteBuffer Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbyte Buffer Ġ= ĠByteBuffer . allocate Direct ( 4 Ġ* Ġ 7 2 Ġ* Ġ 7 2 Ġ* Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġbyte Buffer . order ( Byte Order . native Order ()) ĊĠĠĠĠĠĠĠ Ġval Ġint Values Ġ= ĠInt Array ( 7 2 Ġ* Ġ 7 2 ) ĊĊĠĠĠĠĠĠĠ Ġbitmap . get Pixels ( int Values , Ġ 0 , Ġbitmap . width , Ġ 0 , Ġ 0 , Ġbitmap . width , Ġbitmap . height ) ĊĠĠĠĠĠĠĠ Ġvar Ġpixel Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġ 7 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 Ġuntil Ġ 7 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġint Values [ pixel ++] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbyte Buffer . put Float (((( input . shr ( 1 6 ) Ġand Ġ 0 xFF ) Ġ- ĠIMAGE _ ME AN ) Ġ/ ĠIMAGE _ STD )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbyte Buffer . put Float (((( input . shr ( 8 ) Ġand Ġ 0 xFF ) Ġ- ĠIMAGE _ ME AN ) Ġ/ ĠIMAGE _ STD )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbyte Buffer . put Float (((( input Ġand Ġ 0 xFF ) Ġ- ĠIMAGE _ ME AN ) Ġ/ ĠIMAGE _ STD )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbyte Buffer ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġget Ġsorted Ġresults Ġto Ġshow ĊĠĠĠ Ġprivate Ġfun Ġget Sorted Result ( ĊĠĠĠĠĠĠĠ Ġlabel Prob Array : ĠArray < Float Array >, Ġlabel List : ĠList < String > ĊĠĠĠ Ġ): ĠList < Recognition > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġpq Ġ= ĠPriority Queue ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMAX _ RESULTS , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComparator < Recognition > Ġ{ Ġ(_, Ġ_, Ġconfidence 1 ), Ġ(_, Ġ_, Ġconfidence 2 ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava . lang . Float . compare ( confidence 1 , Ġconfidence 2 ) Ġ* Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġlabel List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfidence Ġ= Ġlabel Prob Array [ 0 ][ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( confidence Ġ>= ĠTH RESH OLD ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpq . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRecognition ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" Ġ+ Ġi , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( label List . size Ġ> Ġi ) Ġlabel List [ i ] Ġelse Ġ" Unknown ", Ġconfidence ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġrecogn itions Ġ= ĠArrayList < Recognition >() ĊĠĠĠĠĠĠĠ Ġval Ġrecogn itions Size Ġ= ĠMath . min ( pq . size , ĠMAX _ RESULTS ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġrecogn itions Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecogn itions . add ( pq . poll ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġrecogn itions ĊĠĠĠ Ġ} Ċ }