package Ġcom . ak il imo . ry a . views . fragments Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . ak il imo . ry a . App Database Ċ import Ġcom . ak il imo . ry a . R Ċ import Ġcom . ak il imo . ry a . adapter . Yield Precision Adapter Ċ import Ġcom . ak il imo . ry a . data . Yield Precision Ċ import Ġcom . ak il imo . ry a . databinding . Fragment Precision Binding Ċ import Ġcom . ak il imo . ry a . entities . Field Info Entity Ċ import Ġcom . ak il imo . ry a . entities . Yield Precision Entity Ċ import Ġcom . ak il imo . ry a . utils . The Item Animation Ċ import Ġcom . ak il imo . ry a . utils . Tools Ċ import Ġcom . ak il imo . ry a . widgets . Spacing Item Decoration Ċ import Ġcom . step stone . step per . Verification Error ĊĊ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ* ĠUse Ġthe Ġ[ Precision Fragment . newInstance ] Ġfactory Ġmethod Ġto Ċ Ġ* Ġcreate Ġan Ġinstance Ġof Ġthis Ġfragment . Ċ Ġ*/ Ċ class ĠPrecision Fragment Ġ: ĠBase Step Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Precision Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġctx : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġselected Precision : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtriangle Count : ĠInt Ġ= Ġ 0 ; ĊĠĠĠ Ġprivate Ġvar Ġplant Count : ĠInt Ġ= Ġ 0 ; ĊĊĠĠĠ Ġprivate Ġvar Ġdatabase : ĠApp Database ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĠPrecision Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġthis . ctx Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġdatabase Ġ= ĠApp Database . get Database ( ctx !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Fragment Layout ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Precision Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġm Adapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠY ield Precision Adapter ( view . context , Ġset Precision Data (), ĠThe Item Animation . FA DE _ IN ) ĊĠĠĠĠĠĠĠ Ġval Ġre cyclerView Ġ= Ġbinding . precision Recycler ĊĠĠĠĠĠĠĠ Ġre cyclerView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( view . context ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠGrid LayoutManager ( view . context , Ġ 2 , ĠGrid LayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġre cyclerView . addItem Decoration ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠSp acing Item Decoration ( 2 , ĠTools . dp To Px ( view . context , Ġ 3 ), Ġtrue ) Ċ // ĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġm Adapter . setOn ItemClickListener ( object Ġ: ĠY ield Precision Adapter . On ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click ( view : ĠView , Ġyield Precision : ĠY ield Precision , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . setActive RowIndex ( position , Ġview ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Precision Ġ= Ġyield Precision . precision Type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtriangle Count Ġ= Ġyield Precision . triangle Count ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplant Count Ġ= Ġyield Precision . plant Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġset Precision Data (): ĠMutable List < Yield Precision > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitems : ĠMutable List < Yield Precision > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġitems . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠY ield Precision ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprecision String Ġ= ĠgetString ( R . string . lbl _ low _ precision ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprecision Type Ġ= Ġ" low ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplant Count Ġ= Ġ 9 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġitems . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠY ield Precision ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprecision String Ġ= ĠgetString ( R . string . lbl _ medium _ precision ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprecision Type Ġ= Ġ" medium ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplant Count Ġ= Ġ 1 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġitems . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠY ield Precision ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprecision String Ġ= ĠgetString ( R . string . lbl _ high _ precision ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprecision Type Ġ= Ġ" high ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplant Count Ġ= Ġ 3 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġitems ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġverify Step (): ĠVerification Error ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( selected Precision . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠVerification Error (" Please Ġselect Ġa Ġyield Ġclass ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġfield Info Ġ= Ġdatabase !!. yield Precision Dao (). findOne () ĊĠĠĠĠĠĠĠ Ġif Ġ( field Info Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Info Ġ= ĠY ield Precision Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyield Precision Ġ= Ġselected Precision !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtriangle Count Ġ= Ġtriangle Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplant Count Ġ= Ġplant Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase !!. yield Precision Dao (). insert ( field Info ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Info . yield Precision Ġ= Ġselected Precision !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Info . triangle Count Ġ= Ġtriangle Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Info . plant Count Ġ= Ġplant Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase !!. yield Precision Dao (). update ( field Info ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Selected () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠVerification Error ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġerror . errorMessage , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} Ċ } Ċ