Skip to content

Commit 4719fdd

Browse files
feat: updated MVP sample
1 parent 0e5557f commit 4719fdd

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

MVPSample/.idea/vcs.xml

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

MVPSample/app/src/main/java/com/developers/mvpsample/ui/main/MainActivity.kt

+39
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.developers.mvpsample.ui.main
22

33
import android.support.v7.app.AppCompatActivity
44
import android.os.Bundle
5+
import android.os.PersistableBundle
56
import android.support.design.widget.Snackbar
67
import android.support.v7.widget.LinearLayoutManager
78
import android.view.View
@@ -12,14 +13,25 @@ import com.developers.mvpsample.data.Result
1213
import com.developers.mvpsample.di.component.DaggerActivityComponent
1314
import com.developers.mvpsample.di.module.ActivityModule
1415
import com.developers.mvpsample.ui.adapter.MovieAdapter
16+
import com.google.gson.Gson
17+
import com.google.gson.reflect.TypeToken
1518
import kotlinx.android.synthetic.main.activity_main.*
19+
import java.util.logging.Logger
1620
import javax.inject.Inject
1721

1822

1923
class MainActivity : AppCompatActivity(), MainView {
2024

2125
@Inject
2226
lateinit var mainPresenter: MainMvpPresenter<MainView>
27+
var resultJSON: String? = null
28+
private val RESULT = "resultJson"
29+
private val gson = Gson()
30+
31+
32+
companion object {
33+
val log = Logger.getLogger(MainActivity::class.java.name)
34+
}
2335

2436
override fun onCreate(savedInstanceState: Bundle?) {
2537
super.onCreate(savedInstanceState)
@@ -33,6 +45,32 @@ class MainActivity : AppCompatActivity(), MainView {
3345
setListeners()
3446
}
3547

48+
override fun onSaveInstanceState(outState: Bundle?) {
49+
super.onSaveInstanceState(outState)
50+
outState?.putString(RESULT, resultJSON)
51+
}
52+
53+
override fun onRestoreInstanceState(savedInstanceState: Bundle?) {
54+
super.onRestoreInstanceState(savedInstanceState)
55+
val result = savedInstanceState?.getString(RESULT)
56+
val movieList = gson.fromJson<List<Result>>(result, object : TypeToken<List<Result>>() {
57+
}.type)
58+
if (movieList != null) {
59+
setupRecyclerView(movieList)
60+
resultJSON = gson.toJson(movieList)
61+
}
62+
}
63+
64+
private fun setupRecyclerView(movieResult: List<Result>) {
65+
val linearLayoutManager = LinearLayoutManager(applicationContext)
66+
linearLayoutManager.orientation = LinearLayoutManager.VERTICAL
67+
val movieAdapter = MovieAdapter(movieResult, applicationContext)
68+
with(movie_recycler_view) {
69+
layoutManager = linearLayoutManager
70+
adapter = movieAdapter
71+
}
72+
}
73+
3674
private fun setListeners() {
3775
search_button.setOnClickListener({
3876
mainPresenter.searchMovieQuery(query_edit_text.text.toString()
@@ -50,6 +88,7 @@ class MainActivity : AppCompatActivity(), MainView {
5088
}
5189

5290
override fun showData(movieResult: List<Result>) {
91+
resultJSON = gson.toJson(movieResult)
5392
val linearLayoutManager = LinearLayoutManager(applicationContext)
5493
linearLayoutManager.orientation = LinearLayoutManager.VERTICAL
5594
val movieAdapter = MovieAdapter(movieResult, applicationContext)

0 commit comments

Comments
 (0)