Skip to content

Commit 8f07947

Browse files
committed
feature:
- 년간 데이터 가져오기 성공
1 parent 2f2346e commit 8f07947

5 files changed

Lines changed: 67 additions & 16 deletions

File tree

app/src/main/java/com/seok/gfd/retrofit/service/GithubCommitService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ import retrofit2.http.Path
77

88
interface GithubCommitService {
99
@GET("{userId}")
10-
fun getCommits(@Path("userId") userId: String):Call<CommitsResponseDto>
10+
fun getContribution(@Path("userId") userId: String):Call<CommitsResponseDto>
1111
}

app/src/main/java/com/seok/gfd/viewmodel/GithubCommitDataViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class GithubCommitDataViewModel: ViewModel() {
6868
// 깃허브 사용자 커밋 데이터 가져오기
6969
fun getCommitsInfo(userId : String){
7070
val getCommitsService = RetrofitClient.githubCommitService()
71-
val getCommitsCall = getCommitsService.getCommits(userId)
71+
val getCommitsCall = getCommitsService.getContribution(userId)
7272
getCommitsCall.enqueue(object : retrofit2.Callback<CommitsResponseDto> {
7373
@SuppressLint("NewApi")
7474
override fun onResponse(call: Call<CommitsResponseDto>, response: Response<CommitsResponseDto>) {
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.seok.gfd.viewmodel
2+
3+
import android.util.Log
4+
import androidx.lifecycle.LiveData
5+
import androidx.lifecycle.MutableLiveData
6+
import androidx.lifecycle.ViewModel
7+
import com.seok.gfd.retrofit.RetrofitClient
8+
import com.seok.gfd.retrofit.domain.resopnse.CommitsResponseDto
9+
import retrofit2.Call
10+
import retrofit2.Response
11+
12+
class GithubContributionViewModel : ViewModel() {
13+
private val _commits = MutableLiveData<CommitsResponseDto>()
14+
15+
val commits: LiveData<CommitsResponseDto>
16+
get() = _commits
17+
18+
19+
fun getContributionData(userId: String) {
20+
val getContributionService = RetrofitClient.githubCommitService()
21+
val getContributionCall = getContributionService.getContribution(userId)
22+
getContributionCall.enqueue(object : retrofit2.Callback<CommitsResponseDto> {
23+
24+
override fun onResponse(call: Call<CommitsResponseDto>, response: Response<CommitsResponseDto>) {
25+
_commits.value = response.body()
26+
}
27+
28+
override fun onFailure(call: Call<CommitsResponseDto>, t: Throwable) {
29+
Log.e(this.javaClass.simpleName, t.message.toString())
30+
}
31+
32+
})
33+
}
34+
}

app/src/main/java/com/seok/gfd/views/Main2Fragment.kt

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,25 @@ import android.view.LayoutInflater
66
import android.view.View
77
import android.view.ViewGroup
88
import androidx.fragment.app.Fragment
9-
import com.ogaclejapan.smarttablayout.utils.v4.Bundler
9+
import androidx.lifecycle.Observer
10+
import androidx.lifecycle.ViewModelProviders
1011
import com.ogaclejapan.smarttablayout.utils.v4.FragmentPagerItemAdapter
1112
import com.ogaclejapan.smarttablayout.utils.v4.FragmentPagerItems
1213
import com.seok.gfd.R
1314
import com.seok.gfd.retrofit.domain.User
1415
import com.seok.gfd.utils.CommonUtils
1516
import com.seok.gfd.utils.SharedPreference
17+
import com.seok.gfd.viewmodel.GithubCommitDataViewModel
18+
import com.seok.gfd.viewmodel.GithubContributionViewModel
1619
import kotlinx.android.synthetic.main.fragment_main2.*
1720
import java.time.LocalDate
1821

1922
class Main2Fragment : Fragment() {
2023
private lateinit var commonUtils: CommonUtils
2124
private lateinit var sharedPreference: SharedPreference
25+
26+
private lateinit var githubContributionViewModel: GithubContributionViewModel
27+
2228
private lateinit var user: User
2329

2430
override fun onCreateView(
@@ -33,24 +39,32 @@ class Main2Fragment : Fragment() {
3339
super.onViewCreated(view, savedInstanceState)
3440
init()
3541
initSetUI()
42+
initViewModelFun()
3643
}
3744

3845
private fun init() {
3946
sharedPreference = SharedPreference(this.activity!!.application)
4047
user = sharedPreference.getValueObject(getString(R.string.user_info))
4148
commonUtils = CommonUtils.instance
4249

43-
val user = User("test1","test1","test1")
44-
val adapter = FragmentPagerItemAdapter(
45-
activity?.supportFragmentManager, FragmentPagerItems.with(activity)
46-
.add("2020", MainSub1::class.java, MainSub1.arguments(user))
47-
.add("2019", MainSub2::class.java)
48-
.add("2018", MainSub3::class.java).create()
49-
)
50+
githubContributionViewModel = ViewModelProviders.of(this).get(GithubContributionViewModel::class.java)
51+
52+
githubContributionViewModel.getContributionData("msnodeve")
53+
}
54+
55+
private fun initViewModelFun(){
56+
githubContributionViewModel.commits.observe(this, Observer {
57+
val adapter = FragmentPagerItemAdapter(
58+
activity?.supportFragmentManager, FragmentPagerItems.with(activity)
59+
.add("2020", MainSub1::class.java, MainSub1.arguments(it))
60+
.add("2019", MainSub2::class.java)
61+
.add("2018", MainSub3::class.java).create()
62+
)
5063

51-
main_view_pager.adapter = adapter
64+
main_view_pager.adapter = adapter
5265

53-
main_tab_smart_layout.setViewPager(main_view_pager)
66+
main_tab_smart_layout.setViewPager(main_view_pager)
67+
})
5468
}
5569

5670
private fun initSetUI() {

app/src/main/java/com/seok/gfd/views/MainSub1.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ import android.view.ViewGroup
77
import androidx.fragment.app.Fragment
88
import com.ogaclejapan.smarttablayout.utils.v4.Bundler
99
import com.seok.gfd.R
10-
import com.seok.gfd.retrofit.domain.User
10+
import com.seok.gfd.retrofit.domain.resopnse.CommitsResponseDto
1111
import com.seok.gfd.utils.CommonUtils
1212

1313
class MainSub1 : Fragment() {
1414

1515
companion object{
16-
fun arguments(param : User) : Bundle{
16+
fun arguments(param : CommitsResponseDto) : Bundle{
1717
val str = CommonUtils.gson.toJson(param)
1818
return Bundler().putString("key", str).get()
1919
}
@@ -29,10 +29,13 @@ class MainSub1 : Fragment() {
2929

3030
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
3131
super.onViewCreated(view, savedInstanceState)
32+
}
33+
3234

35+
override fun onCreate(savedInstanceState: Bundle?) {
36+
super.onCreate(savedInstanceState)
3337
val t = arguments?.getString("key")
34-
val user = CommonUtils.gson.fromJson(t, User::class.java)
38+
val user = CommonUtils.gson.fromJson(t, CommitsResponseDto::class.java)
3539
user
3640
}
37-
3841
}

0 commit comments

Comments
 (0)