package Ġcom . jobs . assignment . presentation . ui . item Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . activity . On Back Pressed Callback Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . core . content . res . Resources Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . google . android . material . bottomnavigation . Bottom Navigation View Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . jobs . assignment . R Ċ import Ġcom . jobs . assignment . domain . model . Job Ċ import Ġcom . jobs . assignment . presentation . ui . list . State Handler Ċ import Ġcom . jobs . assignment . util . sn ack Ċ import Ġcom . smart e ist . auto image slider . Indicator View . animation . type . Indicator Animation Type Ċ import Ġcom . smart e ist . auto image slider . Slider Animations Ċ import Ġcom . smart e ist . auto image slider . Slider View Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers . Main Ċ import Ġkotlinx . coroutines . launch Ċ Ċ @ Android EntryPoint Ċ class ĠItem Fragment Ġ: ĠFragment (), ĠState Handler Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠItem ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbottom Navigation View : ĠBottom Navigation View ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtool Bar : ĠToolbar ĊĊĠĠĠ Ġlateinit Ġvar ĠimageView : ĠSlider View ĊĠĠĠ Ġlateinit Ġvar Ġavailability : ĠTextView ĊĠĠĠ Ġlateinit Ġvar Ġdescription : ĠTextView ĊĠĠĠ Ġlateinit Ġvar Ġcategory : ĠTextView ĊĠĠĠ Ġlateinit Ġvar Ġcost : ĠTextView ĊĠĠĠ Ġlateinit Ġvar Ġservice : ĠTextView ĊĠĠĠ Ġlateinit Ġvar Ġfab Icon : ĠFloating ActionButton ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . item _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . state Handler Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ ĠviewModel . id Ġ= Ġrequire Arguments (). getString (" Id ") ĊĠĠĠĠĠĠĠ ĠviewModel . getItem () ĊĊĠĠĠĠĠĠĠ Ġbottom Navigation View Ġ= Ġrequire Activity (). findViewById ( R . id . bottom Navigation ) ĊĠĠĠĠĠĠĠ Ġbottom Navigation View . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ ĠimageView Ġ= Ġrequire View (). findViewById ( R . id . imageView ) ĊĠĠĠĠĠĠĠ Ġavailability Ġ= Ġrequire View (). findViewById ( R . id . available Txt ) ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġrequire View (). findViewById ( R . id . description Txt ) ĊĠĠĠĠĠĠĠ Ġcategory Ġ= Ġrequire View (). findViewById ( R . id . category Txt ) ĊĠĠĠĠĠĠĠ Ġcost Ġ= Ġrequire View (). findViewById ( R . id . Price Txt ) ĊĠĠĠĠĠĠĠ Ġservice Ġ= Ġrequire View (). findViewById ( R . id . service Txt ) ĊĠĠĠĠĠĠĠ Ġfab Icon Ġ= Ġrequire View (). findViewById ( R . id . floating _ action _ button ) ĊĊĠĠĠĠĠĠĠ Ġtool Bar Ġ= Ġrequire Activity (). findViewById ( R . id . main ToolBar ) ĊĠĠĠĠĠĠĠ Ġtool Bar . title Ġ= ĠgetString ( R . string . job Detail ) ĊĠĠĠĠĠĠĠ Ġtool Bar . navigation Icon Ġ= ĠResources Compat . get Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). resources , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ baseline _ arrow _ back _ 2 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġtool Bar . set Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ item Fragment _ to _ list Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfab Icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), Ġ" Make Ġreservation ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġback CallBack () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġbottom Navigation View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġback CallBack () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= Ġobject Ġ: ĠOn Back Pressed Callback ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle On Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ item Fragment _ to _ list Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrequire Activity (). on Back Pressed Dispatcher . add Callback ( this Ġas ĠLifecycle Owner , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonSuccess ( job : ĠJob ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCor outine Scope ( Main ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . set Indicator Animation ( Indicator Animation Type . W ORM ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . set Slider Transform Animation ( Slider Animations . SIMPLE TRANS FORMATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . set Slider Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Slider Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjob . images Ġas ĠArrayList < String > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġavailability . text Ġ= Ġ" Available ĠAt Ġ${ job . availability }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory . text Ġ= Ġjob . category ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcost . text Ġ= Ġjob . cost ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . text Ġ= Ġjob . service ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . text Ġ= Ġjob . description ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Failure () Ġ{ ĊĠĠĠĠĠĠĠ ĠCor outine Scope ( Main ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire View (). sn ack ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . error ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . ok , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . LENGTH _ LONG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . white , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . red ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . setAction ( getString ( R . string . ok )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }