package Ġfr . pur p leg ir affe . realm demo Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġio . realm . Realm Ċ import Ġio . realm . Sort Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġjava . lang . StringBuilder Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġ_ realm : Realm ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġ_ realm Ġ= ĠRealm . getDefaultInstance () ĊĠĠĠĠĠĠĠ Ġload Dog s From Data Base () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Add Button Tou ched ( button : View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdog Name Ġ= Ġui _ name Input . text . toString () ĊĠĠĠĠĠĠĠ Ġif Ġ( dog Name . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdog Ġ= ĠDog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdog . name Ġ= Ġdog Name ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ realm . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ realm . copy To Realm ( dog ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ realm . commit Transaction () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġui _ name Input . text . clear () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove First Dog () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Dog s From Data Base () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Dog s From Data Base () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdog List Ġ= Ġ_ realm . where ( Dog :: class . java ). sort (" age ", Sort . DESC ENDING ). findAll () ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Builder Ġ= ĠStringBuilder (" List e Ġde Ġchi ens Ġ: \ n ") ĊĠĠĠĠĠĠĠ Ġfor Ġ( dog Ġin Ġdog List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Builder . append ("- Ġ${ dog . name }, Ġ${ dog . age } Ġan ${ if Ġ( dog . age Ġ> Ġ 1 ) Ġ" s " Ġelse Ġ"" }\ n ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġui _ data View . text Ġ= Ġlist Builder . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Year Passed Button Tou ched ( button : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdog List Ġ= Ġ_ realm . where ( Dog :: class . java ). findAll () ĊĠĠĠĠĠĠĠ Ġ_ realm . beginTransaction () ĊĠĠĠĠĠĠĠ Ġfor Ġ( dog Ġin Ġdog List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdog . add Years ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ_ realm . commit Transaction () ĊĠĠĠĠĠĠĠ Ġload Dog s From Data Base () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove First Dog () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdog ToRemove Ġ= Ġ_ realm . where ( Dog :: class . java ). sort (" age ", Sort . DESC ENDING ). findFirst () ĊĠĠĠĠĠĠĠ Ġif Ġ( dog ToRemove Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ realm . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdog ToRemove . delete From Realm () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ realm . commit Transaction () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ