package Ġcom . uber tech . crypt ech . Main Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . media . Image Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . view . Window Ċ import Ġandroid . widget .* Ċ import Ġcom . air bnb . lott ie . Lot tie Animation View Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġcom . uber tech . crypt ech . API . Models . Request . Submit Request Ċ import Ġcom . uber tech . crypt ech . API . Models . Response . Level Response Ċ import Ġcom . uber tech . crypt ech . API . Models . Response . Verify Response Ċ import Ġcom . uber tech . crypt ech . API . Services . ApiClient Ċ import Ġcom . uber tech . crypt ech . API . Services . Api Interface Ċ import Ġcom . uber tech . crypt ech . Auth . Login Ċ import Ġcom . uber tech . crypt ech . Auth . Register Ċ import Ġcom . uber tech . crypt ech . R Ċ import Ġcom . uber tech . crypt ech . Utilities . Tiny DB Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Response Ċ import Ġtim ber . log . Tim ber Ċ import Ġde . hd od enh of . circle image view . Circle ImageView Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġjava . lang . Exception ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ// ĠViews ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġhint : ĠImageView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġleader board : ĠImageView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmore : ĠImageView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlevel : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġimage : ĠImageView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsuccess : ĠL ot tie Animation View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġloader : ĠL ot tie Animation View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġwrong : ĠL ot tie Animation View ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġanswer : ĠEditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsubmit : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsubmit Layout : ĠLinearLayout ĊĊĠĠĠ Ġ// ĠGlobal Ġdata Ġsources ĊĠĠĠ Ġprivate Ġvar Ġapi : ĠApi Interface ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdb : ĠTiny DB ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠViews ĊĠĠĠĠĠĠĠ Ġhint Ġ= ĠfindViewById ( R . id . hint ) ĊĠĠĠĠĠĠĠ Ġleader board Ġ= ĠfindViewById ( R . id . leader board ) ĊĠĠĠĠĠĠĠ Ġmore Ġ= ĠfindViewById ( R . id . more ) ĊĠĠĠĠĠĠĠ Ġlevel Ġ= ĠfindViewById ( R . id . level ) ĊĠĠĠĠĠĠĠ Ġimage Ġ= ĠfindViewById ( R . id . image ) ĊĠĠĠĠĠĠĠ Ġsubmit Layout Ġ= ĠfindViewById ( R . id . submit Layout ) ĊĠĠĠĠĠĠĠ Ġsuccess Ġ= ĠfindViewById ( R . id . success ) ĊĠĠĠĠĠĠĠ Ġloader Ġ= ĠfindViewById ( R . id . loader ) ĊĠĠĠĠĠĠĠ Ġwrong Ġ= ĠfindViewById ( R . id . wrong ) ĊĠĠĠĠĠĠĠ Ġanswer Ġ= ĠfindViewById ( R . id . answer ) ĊĠĠĠĠĠĠĠ Ġsubmit Ġ= ĠfindViewById ( R . id . submit ) ĊĊĠĠĠĠĠĠĠ Ġhint . is Clickable Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġsubmit . is Clickable Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ// ĠInit i ating Ġtiny DB ĊĠĠĠĠĠĠĠ Ġdb Ġ= ĠTiny DB ( this @ MainActivity ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInit i ating ĠRet rofit ĠAPI ĊĠĠĠĠĠĠĠ Ġapi Ġ= ĠApi Client . client . create ( Api Interface :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġsubmit . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhint . is Clickable Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit . is Clickable Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( answer . text . isNull OrEmpty ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , Ġ" Answer Ġcannot Ġbe ĠEmpty !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit . is Clickable Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloader . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . visibility Ġ= ĠView . IN VISIBLE ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi !!. submit Answer ( db !!. getString (" jwt "), Submit Request ( answer . text . toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. enqueue ( object Ġ: Ġretrofit 2 . Callback < Verify Response >{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Verify Response >, Ġt : ĠThrowable ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit . is Clickable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloader . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , Ġ" Something ĠW en 't Ġwrong ", ĠToast . LENGTH _ SHORT ). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Verify Response >, Ġresponse : ĠResponse < Verify Response >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit . is Clickable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . is Successful Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanswer . text . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . code () Ġ== Ġ 4 0 1 Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloader . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , Ġ" Incorrect ĠAnswer ", ĠToast . LENGTH _ SHORT ). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloader . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , Ġ" Something ĠW en 't Ġwrong ", ĠToast . LENGTH _ SHORT ). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġhint . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSetting Ġup Ġthe Ġdialog Ġbox ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= Ġ ĠDialog ( this @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . window . setBackground Drawable Resource ( android . R . color . transparent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . request Window Feature ( Window . FEATURE _ NO _ TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . set ContentView ( R . layout . dialog _ hint ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDecl aring Ġall Ġviews ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue : ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdismiss : ĠCircle ImageView ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠViews ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġdialog . findViewById ( R . id . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss Ġ= Ġdialog . findViewById ( R . id . dismiss ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . text Ġ= Ġdb !!. getString (" hint ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġleader board . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ MainActivity , ĠLeader Board :: class . java )) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmore . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpop Menu Ġ= ĠPopup Menu ( this @ MainActivity , Ġmore ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpop Menu . menu Inflater . inflate ( R . menu . options , Ġpop Menu . menu ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpop Menu . setOn MenuItem ClickListener Ġ{ item Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( item . itemId Ġ== ĠR . id . logout ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb !!. put Boolean (" logged ", false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb !!. put Boolean (" verified ", false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ MainActivity , ĠLogin :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( item . itemId Ġ== ĠR . id . rules ) Ġ{ ĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( item . itemId Ġ== ĠR . id . about ) Ġ{ ĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( item . itemId Ġ== ĠR . id . reload ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Data () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpop Menu . show () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfetch Data () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Data () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġloader . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġimage . visibility Ġ= ĠView . IN VISIBLE ĊĊĠĠĠĠĠĠĠ Ġapi !!. request Level ( db !!. getString (" jwt ")). enqueue ( object Ġ: Ġretrofit 2 . Callback < Level Response > Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Level Response >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloader . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , Ġ" Something ĠW en 't Ġwrong ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Level Response >, Ġresponse : ĠResponse < Level Response >) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . is Successful Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb !!. putString (" url ", Ġresponse . body () !!. image _ url !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb !!. putString (" hint ", Ġresponse . body () !!. hint !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb !!. putString (" level ", Ġresponse . body () !!. level !!. toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetData () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . code () Ġ== Ġ 4 0 0 Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ MainActivity , ĠLogin :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠToast . makeText ( this @ MainActivity , Ġ" Something Ġw en 't Ġwrong , ĠTry Ġagain Ġlater ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġfun ĠsetData () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġdb !!. getString (" url ") ĊĠĠĠĠĠĠĠ Ġval ĠLevel Ġ= Ġdb !!. getString (" level ") ĊĊĠĠĠĠĠĠĠ Ġhint . is Clickable Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġsubmit . is Clickable Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġlevel . text Ġ= Ġ" Level Ġ$ Level " ĊĠĠĠĠĠĠĠ ĠPic asso . get (). load ( url ). error ( R . drawable . error ). into ( object Ġ: Ġcom . squareup . pic asso . Target Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bitmap Failed ( e : ĠException ?, Ġerror Drawable : ĠDrawable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Layout . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloader . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w tf (" Erro e Ġis ", Ġe !!. message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . setImage Resource ( R . drawable . error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bitmap Loaded ( bitmap : ĠBitmap ?, Ġfrom : ĠPic asso . Loaded From ?) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Layout . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . setImage Bitmap ( bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloader . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Prepare Load ( place Holder Drawable : ĠDrawable ?) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ