package Ġcom . example . ar co redis cogs Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . google . android . material . bottom app bar . Bottom AppBar Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġlateinit Ġvar ĠviewModel : ĠMain ViewModel ĊĠĠĠ Ġlateinit Ġvar Ġspinner : ĠProgress Bar ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġ// Def ining Ġthe Ġloading Ġspinner ĊĊĠĠĠĠĠĠĠ Ġspinner Ġ= ĠfindViewById ( R . id . progress Bar 1 ) ĊĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreplace ( R . id . fragment 2 , Ġmain Frag ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspinner . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( this ). get ( Main ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ ĠviewModel . total Hits . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" F YI ", Ġit . results [ 0 ]. toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" F YI ", ĠviewModel . total Hits . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠviewModel . hit count query ( name Ġ= Ġit . artist . toString ()) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ// FAB ĠFunction ality ĊĠĠĠĠĠĠĠ Ġval Ġfab Ġ= ĠfindViewById < Floating ActionButton >( R . id . fab ) ĊĠĠĠĠĠĠĠ Ġfab . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// M aking Ġthe Ġspinner Ġrun Ġwhile Ġthe ĠImage Tracking Fragment Ġloads ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspinner . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" m Act ", Ġ" Fab Ġclicked ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreplace ( R . id . fragment 2 , ĠImage Tracking Fragment (), Ġ" 1 "). addTo Back Stack (" bk stk ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbottom AppBar Ġ= ĠfindViewById < Bottom AppBar >( R . id . bottom AppBar ) ĊĊĠĠĠĠĠĠĠ Ġbottom AppBar . set Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" m Act ", Ġ" Nav Ġclicked ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠHandle Ġnavigation Ġicon Ġpress ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbottom AppBar . setOn MenuItem ClickListener Ġ{ Ġmenu Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( menuItem . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . search Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" m Act ", Ġ" Search Ġclicked ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠHandle Ġsearch Ġicon Ġpress ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsearch () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" F YI ", Ġ" to imi iko ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ph oning Ġhome Ġsafely Ġfrom ĠImage Tracking Fragment ĊĠĠĠ Ġfun Ġreturn From Img Frag ( id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove ( support FragmentManager . find Fragment By Tag (" 1 ") !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreplace ( R . id . fragment 2 , ĠCard Fragment ( id )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" F YI ", Ġ" Tri ed Ġto Ġload ĠFragment Ġ$ id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( support FragmentManager . back Stack Entry Count Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . pop Back Stack () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspinner . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspinner . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ