/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠGoogle ĠLLC Ċ Ġ* Ċ Ġ* Ġ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 . google . samples . apps . sun flower Ċ Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . databinding . Data Binding Util Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . Snackbar Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ Ċ import Ġcom . google . samples . apps . sun flower . databinding . Fragment Plant Detail Binding Ċ import Ġcom . google . samples . apps . sun flower . utilities . Injector Utils Ċ import Ġcom . google . samples . apps . sun flower . view models . Plant Detail ViewModel Ċ Ċ /** Ċ Ġ* ĠA Ġfragment Ġrepresenting Ġa Ġsingle ĠPl ant Ġdetail Ġscreen . Ċ Ġ*/ Ċ class ĠPl ant Detail Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplant Id Ġ= Ġrequire NotNull ( arguments ). getString ( ARG _ ITEM _ ID ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfactory Ġ= ĠInject or Utils . provide Plant Detail ViewModel Factory ( require Activity (), Ġplant Id ) ĊĠĠĠĠĠĠĠ Ġval Ġplant Detail ViewModel Ġ= ĠViewModel Providers . of ( this , Ġfactory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( Plant Detail ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠData Binding Util . inflate < Fragment Plant Detail Binding >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinflater , ĠR . layout . fragment _ plant _ detail , Ġcontainer , Ġfalse ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġplant Detail ViewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Lifecycle Owner ( this @ Plant Detail Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfab . setOnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplant Detail ViewModel . add Plant To G arden () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( view , ĠR . string . added _ plant _ to _ g arden , ĠSn ackbar . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġapp Compat Activity Ġ= Ġrequire Activity () Ġas ĠAppCompatActivity ĊĠĠĠĠĠĠĠ Ġapp Compat Activity . set Support ActionBar ( binding . detail Toolbar ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠShow Ġthe ĠUp Ġbutton Ġin Ġthe Ġaction Ġbar . ĊĠĠĠĠĠĠĠ Ġapp Compat Activity . support ActionBar ?. set Display Home As Up Enabled ( true ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġfragment Ġargument Ġrepresenting Ġthe Ġitem ĠID Ġthat Ġthis Ġfragment ĊĠĠĠĠĠĠĠĠ Ġ* Ġrepresents . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠARG _ ITEM _ ID Ġ= Ġ" item _ id " ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreate Ġa Ġnew Ġinstance Ġof ĠPl ant Detail Fragment , Ġinitialized Ġwith Ġa Ġplant ĠID . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( plant Id : ĠString ): ĠPl ant Detail Fragment Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSup ply Ġplant ĠID Ġas Ġan Ġargument . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle (). apply Ġ{ Ġput String ( ARG _ ITEM _ ID , Ġplant Id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPl ant Detail Fragment (). apply Ġ{ Ġarguments Ġ= Ġbundle Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ