@@ -8,17 +8,18 @@ import androidx.appcompat.app.ActionBarDrawerToggle
88import com.google.android.material.floatingactionbutton.FloatingActionButton
99import com.google.android.material.snackbar.Snackbar
1010import com.google.android.material.navigation.NavigationView
11- import androidx.drawerlayout.widget.DrawerLayout
1211import androidx.appcompat.app.AppCompatActivity
1312import androidx.appcompat.widget.Toolbar
1413import androidx.core.view.GravityCompat
14+ import androidx.lifecycle.ViewModelProvider
15+ import androidx.lifecycle.ViewModelProviders
1516import androidx.recyclerview.widget.GridLayoutManager
1617import androidx.recyclerview.widget.LinearLayoutManager
1718import com.appleobject.notekeeper.model.DataManager
18- import kotlinx.android.synthetic.main.activity_item .*
19+ import kotlinx.android.synthetic.main.activity_items .*
1920import kotlinx.android.synthetic.main.content_note_list.*
2021
21- class ItemActivity : AppCompatActivity () , NavigationView.OnNavigationItemSelectedListener{
22+ class ItemsActivity : AppCompatActivity () , NavigationView.OnNavigationItemSelectedListener{
2223
2324 private val linearLayoutManager by lazy {
2425 LinearLayoutManager (this )
@@ -36,18 +37,26 @@ class ItemActivity : AppCompatActivity() , NavigationView.OnNavigationItemSelect
3637 CourseRecyclerAdapter (this , DataManager .courses.values.toList())
3738 }
3839
40+ private val viewModel by lazy {
41+ ViewModelProviders .of(this )[ItemsActivityViewModel ::class .java]
42+ }
43+
3944 override fun onCreate (savedInstanceState : Bundle ? ) {
4045 super .onCreate(savedInstanceState)
41- setContentView(R .layout.activity_item )
46+ setContentView(R .layout.activity_items )
4247 val toolbar: Toolbar = findViewById(R .id.toolbar)
4348 setSupportActionBar(toolbar)
4449
4550 val fab: FloatingActionButton = findViewById(R .id.fab)
46- fab.setOnClickListener { view ->
51+ fab.setOnClickListener {
4752 startActivity(Intent (this , NoteActivity ::class .java))
4853 }
4954
50- displayNote()
55+ if (savedInstanceState != null )
56+ viewModel.restoreState(savedInstanceState)
57+
58+
59+ handleDisplaySelection(viewModel.navDrawerDisplaySelection)
5160
5261
5362 nav_view.setNavigationItemSelectedListener(this )
@@ -62,6 +71,11 @@ class ItemActivity : AppCompatActivity() , NavigationView.OnNavigationItemSelect
6271
6372 }
6473
74+ override fun onSaveInstanceState (outState : Bundle ) {
75+ super .onSaveInstanceState(outState)
76+ viewModel.saveState(outState)
77+ }
78+
6579 private fun displayCourses () {
6680 listItems.layoutManager = coursesLayoutManager
6781 listItems.adapter = coursesRecyclerAdapter
@@ -98,11 +112,10 @@ class ItemActivity : AppCompatActivity() , NavigationView.OnNavigationItemSelect
98112
99113 override fun onNavigationItemSelected (item : MenuItem ): Boolean {
100114 when (item.itemId){
101- R .id.nav_notes -> {
102- displayNote()
103- }
115+ R .id.nav_notes,
104116 R .id.nav_courses -> {
105- displayCourses()
117+ handleDisplaySelection(item.itemId)
118+ viewModel.navDrawerDisplaySelection = item.itemId
106119 }
107120 R .id.nav_share -> {
108121 handleSelection(" Don't you think you've shared enough.." )
@@ -124,4 +137,15 @@ class ItemActivity : AppCompatActivity() , NavigationView.OnNavigationItemSelect
124137 return true
125138 }
126139
140+ fun handleDisplaySelection (itemId : Int ){
141+ when (itemId){
142+ R .id.nav_notes -> {
143+ displayNote()
144+ }
145+ R .id.nav_courses -> {
146+ displayCourses()
147+ }
148+ }
149+ }
150+
127151}
0 commit comments