package Ġcom . az b yn . ocr Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . az b yn . ocr . Misc . log d Ċ import Ġcom . az b yn . ocr . capture . Capture Fragment Ċ import Ġkotlinx . android . synt hetic . main . result .* Ċ import Ġorg . json . JSONObject Ċ import Ġjava . io . File Ċ Ċ class ĠResult Fragment Ġ: ĠBase Fragment () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġnext Fragment Ġ= ĠFragment Index . CAPTURE ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ= Ġinflater . inflate ( R . layout . result , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ// log d (" Accept . on View Created ") ĊĠĠĠĠĠĠĠ Ġback . setOnClickListener Ġ{ Ġon Back () Ġ} ĊĠĠĠĠĠĠĠ Ġnew Photo . setOnClickListener Ġ{ Ġon OK () Ġ} ĊĠĠĠĠĠĠĠ Ġwas Good . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwas Good . isChecked Ġ= Ġ! was Good . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// viewModel . update ( this , Ġauto Rotate . isChecked ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsave . setOnClickListener Ġ{ Ġon Save () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Impl ( is On Back : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwas Good . isChecked Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave Data ( path : ĠString ) Ġ= ĠJSONObject (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġput (" good ", Ġwas Good . isChecked ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Save () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġt Ġ= Ġmeasure Time Sec Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Or Comp lain Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcf Ġ= Ġget ViewModel < Capture Fragment . VM >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtimestamp Ġ= Ġcf . timestamp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir Ġ= ĠFile ( main Activity . path , Ġtimestamp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! dir . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! dir . mkdir ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo ge (" mkdir Ġfailed Ġfor Ġ${ dir . path }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONObject (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" version ", ĠBuild Config . VERSION _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" version Code ", ĠBuild Config . VERSION _ CODE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" build Type ", ĠBuild Config . BUILD _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" timestamp ", Ġtimestamp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" now ", Ġcf . getTime Stamp Now ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġdir . path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// log d (" ts : Ġ$ timestamp ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin ĠFragment Index . values ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= Ġfragment Manager . getItem ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf . main Activity Ġ= Ġmain Activity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobj Ġ= Ġf . save Data ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( obj Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson . put ( f . className , Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( dir , Ġ" data . json "). write Text ( json . toString ( 4 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog d ("$ timestamp Ġ${ json . toString ( 4 )} ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcf . save Last ( main Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlog d (" saved Ġin Ġ${ t } s ") ĊĠĠĠĠĠĠĠ Ġshow Toast (" saved Ġin Ġ${ t } s ") ĊĠĠĠ Ġ} Ċ }