/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . example . android dev challenge Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ Ċ class ĠMain ViewModel Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcat List : ĠMutable List < Oct o Cat > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġprivate Ġval Ġ_ current Cat Ġ= ĠMutable LiveData < Oct o Cat >() ĊĠĠĠ Ġval Ġcurrent Cat : ĠLive Data < Oct o Cat > Ġ= Ġ_ current Cat ĊĊĠĠĠ Ġprivate Ġval Ġ_ current Screen Ġ= ĠMutable LiveData < Screen >( Screen . Dex Main ) ĊĠĠĠ Ġval Ġcurrent Screen : ĠLive Data < Screen > Ġ= Ġ_ current Screen ĊĊĠĠĠ Ġprivate Ġvar ĠcurrentIndex Ġ= Ġ 0 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġgenerate C ats () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgenerate C ats () Ġ{ ĊĠĠĠĠĠĠĠ Ġcat List . addAll ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOct o Cat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// oct ode x . github . com / images / d roid to cat . png ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Droid to ĠCat ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Legend Ġhas Ġit Ġthat Ġthis Ġcat 's ĠOS Ġis Ġdirectly Ġsupported Ġby ĠGoogle , Ġand Ġwill Ġremain Ġupdated Ġfor Ġmore Ġyears Ġthan Ġthe ĠPixel Ġph ones !\ n \ n After Ġall , Ġit Ġdoes Ġnot Ġwant Ġto Ġbe Ġde pre - cat - ed Ġ: P ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"# 7 8 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" By Ġ/ ton y jar amil lo " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOct o Cat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// oct ode x . github . com / images / wal doc at . png ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" W al doc at ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Some Ġdevelopers Ġthink Ġthis ĠOct o Cat Ġinspired Ġthe Ġmobile - app Ġbugs Ġand Ġmade Ġthem Ġhard Ġto Ġfind . ĠBut Ġf ret Ġnot , ĠReactive Ġprogramming Ġand ĠDecl arative ĠUI Ġare Ġhere Ġto Ġhelp !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"# 5 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" By Ġ/ j ason cost el lo " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOct o Cat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// oct ode x . github . com / images / iron cat . jpg ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" I ron ĠCat ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Fam ous Ġline : Ġ' I Ġam ĠI ron ĠCat '\ n \ n This Ġis Ġwhat ĠGithub 's Ġmas cot Ġwould Ġlook Ġlike Ġif Ġdeveloped Ġby ĠSt ark ĠInd ust ries .\ n \ n Cool Ġh uh ? ĠIt Ġcan Ġeven Ġfly !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"# 2 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" By Ġ/ cam eron mce fee " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOct o Cat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// oct ode x . github . com / images / daf tp unk to cat - gu y . gif ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" D af tp unk to cat ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Who Ġcan 't Ġidentify Ġthis Ġmasked Ġalter Ġe go , Ġthe Ġone Ġand Ġonly ĠD aft ĠP unk !\ n \ n Like Ġevery Ġgood Ġthing , Ġthis Ġtoo Ġcame Ġto Ġan Ġend , Ġbut Ġnot Ġbefore Ġcomplet ing Ġ 2 8 Ġgl or ious Ġyears \ n \ n 1 9 9 3 - 2 0 2 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"# 9 9 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" By Ġ/ j ee jk ang " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOct o Cat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// oct ode x . github . com / images / Robot oc at . png ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Robot oc at ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġcat Ġover Ġob ses sed Ġwith Ġthe ĠRob oto Ġfont . ĠNot Ġeveryone Ġlikes Ġit Ġthough , Ġbecause Ġnot Ġeveryone Ġis Ġf ond Ġof Ġits ... Ġtype .\ n \ n He h , Ġget Ġit ?", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"# 9 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" By Ġ/ j ee jk ang " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOct o Cat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// oct ode x . github . com / images / min ion . png ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Min ion ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" It Ġlo ves Ġe ating ĠP app les Ġand ĠG el ato . ĠAlso Ġlikes Ġto Ġplay Ġwith ĠB ab oi Ġin Ġits Ġfree Ġtime Ġi . e . Ġall Ġthe Ġtime .\ n \ n Bi - do , Ġyou Ġcan 't Ġunderstand ? ĠIts Ġwhat Ġmin ions Ġspeak Ġ: D \ n \ n T ul ali lo o Ġti Ġa mo , ĠPo op ay e !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"# 7 9 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" By Ġ/ nick h " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOct o Cat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// oct ode x . github . com / images / pl umber . jpg ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Pl umber ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" For Ġthe Ġpast Ġ 3 5 Ġyears , ĠM ario Ġhas Ġbeen Ġrunning , Ġjump ing , Ġand Ġsaving Ġthe ĠM ush room ĠKing dom Ġfrom Ġbad Ġguys , Ġand Ġhe Ġcouldn âĢĻ t Ġhave Ġdone Ġit Ġwithout Ġyou . ĠThank Ġyou Ġfor Ġalways Ġbeing Ġthere Ġto Ġhelp ĠM ario Ġon Ġhis Ġinc red ible Ġad vent ures .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"# 5 8 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" By Ġ/ cam eron mce fee " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOct o Cat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// oct ode x . github . com / images / sar it oc at . png ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sar it oc at ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġbeautiful Ġone Ġfrom ĠIn dia ! ĠComplete Ġwith Ġall Ġthe Ġj ew ell ery , ĠBind i , Ġtraditional Ġcost ume Ġand Ġg ent le Ġsm ile Ġon Ġface . Ġ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"# 1 1 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" By Ġ/ John C reek " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOct o Cat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// oct ode x . github . com / images / spider to cat . png ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Spider to cat ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" You Ġknow Ġwhat Ġthe Ġsp iders Ġand Ġoct op uses Ġhave Ġin Ġcommon ? ĠThe ir Ġlove Ġfor Ġnumber Ġ 8 . ĠThis Ġone Ġlikes Ġto Ġs ling shot Ġitself , Ġinstead Ġof Ġdriving Ġa Ġcar Ġto Ġcover Ġdistances .\ n \ n Ap pe ars Ġto Ġbe Ġenvironment Ġcon sc ious !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"# 8 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" By Ġ/ j ee jk ang " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOct o Cat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// oct ode x . github . com / images / py th oc at . png ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Py th oc at ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" When ĠPython Ġmet ĠGithub , Ġthis Ġhappened ! ĠTurn s Ġout ĠPython Ġaren 't Ġas Ġdangerous Ġas Ġone Ġmight Ġthink .\ n \ n Pop ular Ġwith Ġdata Ġcommunity .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"# 1 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" By Ġ/ cam eron mce fee " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ_ current Cat . value Ġ= Ġcat List [ currentIndex ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġpublic Ġmethods ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġfun Ġon Back Pressed (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= Ġ_ current Screen . value Ġ== ĠScreen . Dex Main ĊĠĠĠĠĠĠĠ Ġ_ current Screen . value Ġ= ĠScreen . Dex Main ĊĠĠĠĠĠĠĠ Ġreturn Ġcurrent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopen Cat Details () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ current Screen . value Ġ= ĠScreen . Dex Details ( cat List [ currentIndex ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Next () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( currentIndex Ġ== Ġcat List . size Ġ- Ġ 1 ) ĠcurrentIndex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġelse Ġ++ currentIndex ĊĠĠĠĠĠĠĠ Ġ_ current Cat . value Ġ= Ġcat List [ currentIndex ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Prev () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( currentIndex Ġ== Ġ 0 ) ĠcurrentIndex Ġ= Ġcat List . size Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġelse Ġ-- currentIndex ĊĠĠĠĠĠĠĠ Ġ_ current Cat . value Ġ= Ġcat List [ currentIndex ] ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠOct o Cat ( ĊĠĠĠ Ġval ĠimageUrl : ĠString , ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġdesc : ĠString , ĊĠĠĠ Ġval Ġcount : ĠString , ĊĠĠĠ Ġval Ġcreator : ĠString Ċ ) Ċ