package Ġbe . hog ent . fa ith . fa ith . details . drawing . view Ċ Ċ import Ġandroid . graphics . Bitmap Factory Ċ 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 . databinding . Data Binding Util Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġbe . hog ent . fa ith . R Ċ import Ġbe . hog ent . fa ith . databinding . Fragment View Drawing Binding Ċ import Ġbe . hog ent . fa ith . fa ith . load Image Into View Ċ import Ġbe . hog ent . fa ith . fa ith . models . detail . Drawing Detail Ċ import Ġorg . k oin . android . view model . ext . android . viewModel Ċ import Ġjava . io . FileInputStream Ċ Ċ private Ġconst Ġval ĠD RAW ING _ DETAIL Ġ= Ġ" the Ġdrawing Ġto Ġbe Ġshown " Ċ Ċ class ĠView Drawing Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( drawing Detail : ĠDraw ing Detail ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Drawing Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Serializable ( DRAW ING _ DETAIL , Ġdrawing Detail ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment View Drawing Binding ĊĠĠĠ Ġprivate Ġval Ġdrawing Detail ViewModel : ĠView Drawing Detail ViewModel Ġby ĠviewModel () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġload Existing Drawing Detail () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Existing Drawing Detail () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexisting Detail Ġ= Ġarguments ?. get Serializable ( DRAW ING _ DETAIL ) Ġas ĠDraw ing Detail ĊĠĠĠĠĠĠĠ Ġdrawing Detail ViewModel . set Detail ( existing Detail ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Binding Util . inflate ( in flater , ĠR . layout . fragment _ view _ drawing , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbinding . drawing Detail View ViewModel Ġ= Ġdrawing Detail ViewModel ĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ ĠsetUp Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġdrawing Detail ViewModel . detail . observe ( this , ĠObserver Ġ{ Ġdetail Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Image Into View ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . require Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetail . file . path , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . img View Drawing Image ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġdrawing Detail ViewModel . errorMessage . observe ( this , ĠObserver Ġ{ ĠerrorMessage Resource ID Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , ĠerrorMessage Resource ID , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġdrawing Detail ViewModel . cancel Clicked . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ