Skip to content

Commit

Permalink
[Android] Network 관련 코드 분리 및 레포지토리 이름 변경 (#45)
Browse files Browse the repository at this point in the history
* refact: 네트워크 관련 코드 분리

History뿐 아니라 Todo에서도 네트워크를 사용해야 함으로 공통으로 쓸 수 있도록 분리

* refact: HistoryRepository를 공용으로 사용할 수 있도록 위치 및 파일명 변경
  • Loading branch information
banjjak2 authored Apr 12, 2022
1 parent b596a2d commit eb126f0
Show file tree
Hide file tree
Showing 9 changed files with 49 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.example.todo_list.databinding.ActivityMainBinding
import com.example.todo_list.history.HistoryAdapter
import com.example.todo_list.history.HistoryViewModel
import com.example.todo_list.history.data.HistoryRepository
import com.example.todo_list.data.TasksRepository
import com.google.android.material.navigation.NavigationView

class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {
Expand All @@ -22,7 +22,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)

historyViewModel = ViewModelProvider(this, ViewModelFactory(HistoryRepository())).get(HistoryViewModel::class.java)
historyViewModel = ViewModelProvider(this, ViewModelFactory(TasksRepository())).get(HistoryViewModel::class.java)

val adapter = HistoryAdapter()
binding.recyclerviewHistory.adapter = adapter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.example.todo_list

import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import com.example.todo_list.data.Repository
import com.example.todo_list.history.HistoryViewModel

class ViewModelFactory(private val repository: Repository) : ViewModelProvider.Factory {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.todo_list
package com.example.todo_list.data

import com.example.todo_list.history.data.HistoryCard
import retrofit2.Response
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.example.todo_list.data

import com.example.todo_list.history.data.HistoryCard
import com.example.todo_list.network.NetworkModule
import retrofit2.Response

class TasksRepository : Repository {
private val network = NetworkModule.service

override suspend fun getHistories(): Response<List<HistoryCard>> {
return network.getHistories("histories")
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.example.todo_list.Repository
import com.example.todo_list.data.Repository
import com.example.todo_list.history.data.HistoryCard
import kotlinx.coroutines.launch

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.example.todo_list.network

import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory

class NetworkModule {
companion object RetrofitApiObject {
private const val BASE_URL = "https://f278a12c-c825-466b-aa01-65337bbdf28a.mock.pstmn.io/"

private val retrofit =
Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
val service: TodoService = retrofit.create(TodoService::class.java)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.example.todo_list.network

import com.example.todo_list.history.data.HistoryCard
import retrofit2.Response
import retrofit2.http.GET
import retrofit2.http.Path

interface TodoService {

@GET("api/{histories}")
suspend fun getHistories(
@Path("histories") variable: String
): Response<List<HistoryCard>>
}

0 comments on commit eb126f0

Please sign in to comment.