package Ġcom . example . android . g ues st he word . screens . score Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ Ċ // ĠCreate Ġa ĠViewModel Ġthat Ġtakes Ġin Ġa Ġconstructor Ġparameter Ċ class ĠScore ViewModel ( final Score : ĠInt ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ score Ġ= ĠMutable LiveData < Int >() ĊĊĠĠĠ Ġval Ġscore : ĠLive Data < Int > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ score ĊĊĠĠĠ Ġprivate Ġval Ġ_ event Play Again Ġ= ĠMutable LiveData < Boolean >() ĊĊĠĠĠ Ġval Ġevent Play Again : ĠLive Data < Boolean > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ event Play Again ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* Use ĠLog Ġstatement Ġto Ġtest Ġif Ġyou Ġare Ġsuccessfully Ġgetting Ġthe Ġscore Ġargument Ġthrough ĊĠĠĠĠĠĠĠĠĠ Ġthe ĠScore ViewModel Factory : ĊĠĠĠĠĠĠĠ ĠLog . i (" Score ViewModel ", Ġ" Final Ġscore : Ġ$ final Score ") Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġ// Get Ġthe Ġscore Ġargument Ġ( final Score ) Ġthrough Ġthe ĠScore ViewModel Factory : ĊĠĠĠĠĠĠĠ Ġ_ score . value Ġ= Ġfinal Score ĊĊĠĠĠĠĠĠĠ Ġ// Initialize Ġthe Ġevent Play Again Ġto Ġfalse , Ġmeaning Ġthe Ġuser Ġhasn 't Ġclicked Ġthe ĠPlay Ġagain Ġbtn ĊĠĠĠĠĠĠĠ Ġ_ event Play Again . value Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠThis Ġfunction Ġcalls Ġthe ĠUI ĠController , Ġso Ġit Ġcan Ġtell Ġthe ĠViewModel Ġthat Ġthe Ġplay Ġagain ĊĠĠĠ Ġbutton Ġhas Ġbeen Ġclicked */ ĊĠĠĠ Ġfun Ġon Play Again () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ event Play Again . value Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* You Ġneed Ġto Ġtell Ġthe ĠViewModel Ġthat Ġthe Ġon Play Again () Ġin Ġthe Ġfragment Ġhas Ġcompleted , Ġotherwise ĊĠĠĠ Ġeach Ġtime Ġyou Ġrotate Ġthe Ġphone , Ġthe Ġcode Ġin Ġthe Ġobserver Ġ( e . g . Ġthe Ġon Play Again () Ġwhich Ġnavig ates ĊĠĠĠ Ġto ĠGame ĠStart Ġscreen ) Ġgets Ġcalled Ġagain . ĊĊĠĠĠ ĠThis Ġmeans Ġthat Ġthe Ġevent Ġgets Ġcalled Ġmultiple Ġtimes , Ġbut Ġyou Ġwant Ġthat Ġplay Ġagain Ġevent Ġto Ġonly ĊĠĠĠ Ġhappen Ġonce . ĠSo Ġcreate Ġa Ġfunction Ġin Ġwhich Ġyou Ġwill Ġtake Ġthat Ġevent Ġand Ġset Ġits Ġvalue Ġback Ġto ĊĠĠĠ Ġfalse . ĠThis Ġwill Ġactually Ġrepresent Ġthat Ġthe Ġevent Ġhas Ġbeen Ġhandled , Ġand Ġwill Ġensure Ġthat Ġthe ĊĠĠĠ Ġplay Ġagain Ġevent Ġwill Ġonly Ġhappen Ġonce , Ġeven Ġafter Ġrotation .*/ ĊĠĠĠ Ġfun Ġon Play Again Complete () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ event Play Again . value Ġ= Ġfalse ĊĠĠĠ Ġ} Ċ }