package Ġpl . k amil sz ust ak . read . ui . main . profile . edit Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . Menu Inflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġpl . k amil sz ust ak . read . ui . base . util . error Toast Ċ import Ġpl . k amil sz ust ak . read . ui . base . util . navigate Up Ċ import Ġpl . k amil sz ust ak . read . ui . base . util . success Toast Ċ import Ġpl . k amil sz ust ak . read . ui . base . util . view Models Ċ import Ġpl . k amil sz ust ak . read . ui . main . Main Data Binding Fragment Ċ import Ġpl . k amil sz ust ak . read . ui . main . R Ċ import Ġpl . k amil sz ust ak . read . ui . main . databinding . Fragment Profile Edit Binding Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠProfile Edit Fragment Ġ@ Inject Ġconstructor ( ĊĠĠĠ ĠviewModel Factory : ĠViewModel Provider . Factory , Ċ ) Ġ: ĠMain Data Binding Fragment < Fragment Profile Edit Binding , ĠProfile Edit ViewModel >( R . layout . fragment _ profile _ edit ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval ĠviewModel : ĠProfile Edit ViewModel Ġby Ġview Models ( viewModel Factory ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . menu _ profile _ edit _ fragment , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . save Item Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . dispatch ( Profile Edit Event . On Save Button Clicked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġobserve ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . action . observe ( view Lifecycle Owner ) Ġ{ Ġaction Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProfile Edit Action . Profile Edited Ġ-> Ġsuccess Toast ( R . string . profil _ edited _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProfile Edit Action . Navigate Up Ġ-> Ġnavigate Up () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠProfile Edit Action . Error Ġ-> Ġerror Toast ( action . message ResourceId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }