package Ġk ate . tutorial . tur tle soup . chat Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġk ate . tutorial . tur tle soup . R Ċ import Ġk ate . tutorial . tur tle soup . databinding . Fragment Ch ats Binding Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass Ġas Ġthe Ġdefault Ġdestination Ġin Ġthe Ġnavigation . Ċ Ġ*/ Ċ class ĠCh ats Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Ch ats Binding ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠThis Ġproperty Ġis Ġonly Ġvalid Ġbetween ĠonCreate View Ġand ĊĠĠĠ Ġ// Ġon Destroy View . ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĠĠĠ Ġprivate Ġval Ġfragment ViewModel Ġby Ġview Models < Ch ats ViewModel >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Ch ats Binding . inflate ( in flater , Ġcontainer , Ġfalse ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġfragment ViewModel ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġfragment ViewModel . request Error . observe ( view Lifecycle Owner , ĠObserver < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . retry ) Ġ{ Ġ_, Ġ_ Ġ-> Ġconnect () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( R . string . finish ) Ġ{ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cancel able ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbinding . chat List . adapter Ġ= ĠChat Adapter ( fragment ViewModel . ch ats . value Ġ?: ĠArrayList ()) ĊĠĠĠĠĠĠĠ Ġbinding . send . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment ViewModel . sendMessage ( binding . edit . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . edit . text Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġconnect () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconnect () Ġ{ ĊĠĠĠĠĠĠĠ Ġfragment ViewModel . connect () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} Ċ } Ċ