package Ġc afe . ad riel . ch uck nor ris facts . presentation čĊč Ċ import Ġandroid . os . Bundle č Ċ import Ġandroidx . annotation . String Res č Ċ import Ġandroidx . appcompat . app . AppCompatActivity č Ċ import Ġcom . et ien nel enh art . e iff el . state . ViewState č Ċ import Ġcom . et ien nel enh art . e iff el . view model . State ViewModel č Ċ import Ġcom . google . android . material . sn ackbar . Snackbar čĊč Ċ abstract Ġclass ĠBase Activity < S Ġ: ĠView State > Ġ: ĠAppCompatActivity () Ġ{ čĊčĊĠĠĠ Ġprotected Ġabstract Ġval ĠviewModel : ĠState ViewModel < S > čĊčĊĠĠĠ Ġoverride Ġfun Ġon Post Create ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on Post Create ( savedInstanceState ) čĊĠĠĠĠĠĠĠ ĠviewModel . observe State ( this , Ġ:: on State Updated ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprotected Ġabstract Ġfun Ġon State Updated ( state : ĠS ) čĊčĊĠĠĠ Ġprotected Ġfun Ġshow Message (@ String Res Ġtext Res Id : ĠInt ) Ġ= čĊĠĠĠĠĠĠĠ ĠSn ackbar . make ( findViewById ( android . R . id . content ), Ġtext Res Id , ĠSn ackbar . LENGTH _ SHORT ). show () č Ċ } čĊ