package Ġr he tt . pe zz uti . daily dose . setup . name Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . animation . Alpha Animation Ċ import Ġandroid . view . animation . Animation Ċ import Ġandroid . view . animation . Animation Set Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġr he tt . pe zz uti . daily dose . R Ċ import Ġr he tt . pe zz uti . daily dose . databinding . Fragment Setup Name Binding ĊĊ Ċ class ĠSetup Name Fragment Ġ: ĠFragment () Ġ{ ĊĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Setup Name Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠSetup Name ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel Factory : ĠSetup Name ViewModel Factory ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . fragment _ setup _ name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġrequire Activity () ĊĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= Ġactivity . get SharedPreferences ( getString ( R . string . user _ preferences _ key ), ĠContext . MODE _ PRIVATE ) ĊĊĠĠĠĠĠĠĠ ĠviewModel Factory Ġ= ĠSetup Name ViewModel Factory () ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( this , ĠviewModel Factory ). get ( Setup Name ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġbinding . setup Name ViewModel XML Ġ= ĠviewModel ĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġ/** ĠTextView ĠAnim ations Ġ**/ ĊĠĠĠĠĠĠĠ Ġval ĠfadeIn Ġ= ĠAlpha Animation ( 0 . 0 f , Ġ 1 . 0 f ) ĊĠĠĠĠĠĠĠ ĠfadeIn . duration Ġ= Ġ 1 5 0 0 L ĊĊĠĠĠĠĠĠĠ Ġval Ġfade Out : ĠAnimation Ġ= ĠAlpha Animation ( 1 . 0 f , Ġ 0 . 0 f ) ĊĠĠĠĠĠĠĠ Ġfade Out . duration Ġ= Ġ 1 5 0 0 L ĊĊĠĠĠĠĠĠĠ Ġval Ġfade InOut Ġ= ĠAnimation Set ( true ) ĊĠĠĠĠĠĠĠ Ġfade InOut . add Animation ( fadeIn ) ĊĠĠĠĠĠĠĠ Ġfade InOut . add Animation ( fadeOut ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġbinding . text Setup Hello . start Animation ( fadeIn Out ) ĊĊĊĊĊĊ ĊĊĠĠĠĠĠĠĠ ĠviewModel . navigate Preferences . observe ( view Lifecycle Owner , Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( event Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . edit Setup Name . text ?. isNotEmpty () Ġ== Ġtrue ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshared Pref . edit (). putString (" username ", Ġbinding . edit Setup Name . text . toString ()). apply () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . find Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSetup Name Fragment Directions . action Setup Name Fragment To Setup Preferences Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . edit Setup Name . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Enter Ġyour Ġname !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . setup Input Layout . error Ġ= Ġ" Please Ġenter Ġyour Ġname " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . done Navig ating Preferences () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} Ċ Ċ }