Skip to content

Commit 778c09f

Browse files
committed
Refactor: create initView method
1 parent 272f91c commit 778c09f

File tree

4 files changed

+32
-25
lines changed

4 files changed

+32
-25
lines changed

app/src/main/java/com/bannanguy/task1androidapp/ui/cityDetail/CityDetailActivity.kt

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,7 @@ class CityDetailActivity : AppCompatActivity() {
2525

2626
override fun onCreate(savedInstanceState: Bundle?) {
2727
super.onCreate(savedInstanceState)
28-
binding = CityDetailActivityBinding.inflate(layoutInflater)
29-
val view = binding.root
30-
setContentView(view)
28+
initView()
3129

3230
setOnClickListener()
3331

@@ -38,6 +36,25 @@ class CityDetailActivity : AppCompatActivity() {
3836
loadWeatherData()
3937
}
4038

39+
private fun initView() {
40+
binding = CityDetailActivityBinding.inflate(layoutInflater)
41+
val view = binding.root
42+
setContentView(view)
43+
}
44+
45+
private fun setOnClickListener() {
46+
binding.backButton.setOnClickListener {
47+
finish()
48+
}
49+
}
50+
51+
private fun readCurrentCityId() {
52+
val bundle: Bundle? = intent.extras
53+
if (bundle != null) {
54+
currentCityId = bundle.getLong(CITY_ID)
55+
}
56+
}
57+
4158
private fun observeData() {
4259
cityDetailViewModel.observeLiveData().observe(this) {
4360
it?.let {
@@ -61,19 +78,6 @@ class CityDetailActivity : AppCompatActivity() {
6178

6279
}
6380

64-
private fun setOnClickListener() {
65-
binding.backButton.setOnClickListener {
66-
finish()
67-
}
68-
}
69-
70-
private fun readCurrentCityId() {
71-
val bundle: Bundle? = intent.extras
72-
if (bundle != null) {
73-
currentCityId = bundle.getLong(CITY_ID)
74-
}
75-
}
76-
7781
private fun initRetrofitClient(cacheDir: File) {
7882
retrofitWeatherClient = RetrofitClientFactory.createBySingleton(
7983
"weatherapi",

app/src/main/java/com/bannanguy/task1androidapp/ui/cityDetail/CityDetailViewModel.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ class CityDetailViewModel(
5757
fun observeLiveData() : LiveData<CityDetailWeatherInfo> {
5858
return cityDetailInfoLiveData
5959
}
60+
6061
}
6162

6263
class CityDetailViewModelFactory(private val context: Context) : ViewModelProvider.Factory {
@@ -70,4 +71,5 @@ class CityDetailViewModelFactory(private val context: Context) : ViewModelProvid
7071
}
7172
throw IllegalArgumentException("Unknown ViewModel class")
7273
}
74+
7375
}

app/src/main/java/com/bannanguy/task1androidapp/ui/cityList/CitiesListActivity.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,7 @@ class CitiesListActivity : AppCompatActivity() {
3636

3737
override fun onCreate(savedInstanceState: Bundle?) {
3838
super.onCreate(savedInstanceState)
39-
binding = CityListActivityBinding.inflate(layoutInflater)
40-
val view = binding.root
41-
setContentView(view)
39+
initView()
4240

4341
retrieveData(savedInstanceState)
4442

@@ -47,6 +45,7 @@ class CitiesListActivity : AppCompatActivity() {
4745

4846
observeData()
4947
initRetrofitClient(cacheDir)
48+
5049
if (fistPageIsLoaded) {
5150
fistPageIsLoaded = false
5251
loadCitiesIntoListWithPagination()
@@ -65,6 +64,12 @@ class CitiesListActivity : AppCompatActivity() {
6564
outState.putBoolean(fistPageIsLoadedValue, fistPageIsLoaded)
6665
}
6766

67+
private fun initView() {
68+
binding = CityListActivityBinding.inflate(layoutInflater)
69+
val view = binding.root
70+
setContentView(view)
71+
}
72+
6873
private fun retrieveData(savedInstanceState: Bundle?) {
6974
if (savedInstanceState != null) {
7075
numberOfItem = savedInstanceState.getInt(numberOfItemValue)

app/src/main/java/com/bannanguy/task1androidapp/ui/cityList/CitiesListViewModel.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,9 @@ class CitiesListViewModel : ViewModel() {
1414
MutableLiveData<List<CityWeatherInfo>>()
1515
}
1616

17-
val currentListOfCityWeatherInfo: MutableList<CityWeatherInfo> =
17+
private val currentListOfCityWeatherInfo: MutableList<CityWeatherInfo> =
1818
ArrayList<CityWeatherInfo>(0).toMutableList()
1919

20-
fun clearCitiesList() {
21-
currentListOfCityWeatherInfo.clear()
22-
}
23-
24-
// FIXME: on change orientation cities have duplicates!
2520
fun addCitiesToList(
2621
retrofitClient: RetrofitClient,
2722
listOfCities: List<CityData>
@@ -84,4 +79,5 @@ class CitiesListViewModelFactory(private val context: Context) : ViewModelProvid
8479
}
8580
throw IllegalArgumentException("Unknown ViewModel class")
8681
}
82+
8783
}

0 commit comments

Comments
 (0)