/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// 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 . example . android . architecture . blueprint s . todo app . util Ċ Ċ /** Ċ Ġ* ĠVar ious Ġextension Ġfunctions Ġfor ĠAppCompatActivity . Ċ Ġ*/ Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . arch . lifecycle . ViewModel Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . support . annotation . Id Res Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 4 . app . FragmentManager Ċ import Ġandroid . support . v 4 . app . Fragment Transaction Ċ import Ġandroid . support . v 7 . app . ActionBar Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġcom . example . android . architecture . blueprint s . todo app . ViewModel Factory ĊĊ Ċ const Ġval ĠADD _ EDIT _ RESULT _ OK Ġ= ĠActivity . RESULT _ FIRST _ USER Ġ+ Ġ 1 Ċ const Ġval ĠDELETE _ RESULT _ OK Ġ= ĠActivity . RESULT _ FIRST _ USER Ġ+ Ġ 2 Ċ const Ġval ĠEDIT _ RESULT _ OK Ġ= ĠActivity . RESULT _ FIRST _ USER Ġ+ Ġ 3 Ċ Ċ /** Ċ Ġ* ĠThe Ġ` fragment ` Ġis Ġadded Ġto Ġthe Ġcontainer Ġview Ġwith Ġid Ġ` frame Id `. ĠThe Ġoperation Ġis Ċ Ġ* Ġperformed Ġby Ġthe Ġ` fragment Manager `. Ċ Ġ*/ Ċ fun ĠAppCompatActivity . replace Fragment In Activity ( fragment : ĠFragment , Ġframe Id : ĠInt ) Ġ{ ĊĠĠĠ Ġsupport FragmentManager . transact Ġ{ ĊĠĠĠĠĠĠĠ Ġreplace ( frame Id , Ġfragment ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠThe Ġ` fragment ` Ġis Ġadded Ġto Ġthe Ġcontainer Ġview Ġwith Ġtag . ĠThe Ġoperation Ġis Ċ Ġ* Ġperformed Ġby Ġthe Ġ` fragment Manager `. Ċ Ġ*/ Ċ fun ĠAppCompatActivity . add Fragment To Activity ( fragment : ĠFragment , Ġtag : ĠString ) Ġ{ ĊĠĠĠ Ġsupport FragmentManager . transact Ġ{ ĊĠĠĠĠĠĠĠ Ġadd ( fragment , Ġtag ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠAppCompatActivity . setup ActionBar (@ Id Res Ġtoolbar Id : ĠInt , Ġaction : ĠAction Bar . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġset Support ActionBar ( findViewById ( toolbar Id )) ĊĠĠĠ Ġsupport ActionBar ?. run Ġ{ ĊĠĠĠĠĠĠĠ Ġaction () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġ< T Ġ: ĠViewModel > ĠAppCompatActivity . obtain ViewModel ( viewModel Class : ĠClass < T >) Ġ= ĊĠĠĠĠĠĠĠ ĠViewModel Providers . of ( this , ĠViewModel Factory . getInstance ( application )). get ( viewModel Class ) Ċ Ċ /** Ċ Ġ* ĠRuns Ġa ĠFragment Transaction , Ġthen Ġcalls Ġcommit (). Ċ Ġ*/ Ċ private Ġinline Ġfun ĠFragment Manager . transact ( action : ĠFragment Transaction . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġbegin Transaction (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġaction () ĊĠĠĠ Ġ}. commit () Ċ }