Skip to content

Commit 695bb1b

Browse files
committed
feature:
- 프레그먼트에 데이터 정규화 중
1 parent 8f07947 commit 695bb1b

10 files changed

Lines changed: 74 additions & 249 deletions

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.seok.gfd.retrofit.domain
2+
3+
import lombok.AllArgsConstructor
4+
import lombok.Getter
5+
import lombok.NoArgsConstructor
6+
import lombok.Setter
7+
8+
@Getter
9+
@Setter
10+
@NoArgsConstructor
11+
@AllArgsConstructor
12+
class YearContributionDto {
13+
var year: String? = null
14+
15+
var contributions: List<Contribution>? = null
16+
17+
class Contribution{
18+
var date : String = ""
19+
var count : Int = 0
20+
var color : String = ""
21+
var intensity : Int = 0
22+
}
23+
}

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

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,17 @@ import android.view.ViewGroup
88
import androidx.fragment.app.Fragment
99
import androidx.lifecycle.Observer
1010
import androidx.lifecycle.ViewModelProviders
11+
import com.bumptech.glide.Glide
12+
import com.bumptech.glide.request.RequestOptions
1113
import com.ogaclejapan.smarttablayout.utils.v4.FragmentPagerItemAdapter
1214
import com.ogaclejapan.smarttablayout.utils.v4.FragmentPagerItems
1315
import com.seok.gfd.R
1416
import com.seok.gfd.retrofit.domain.User
17+
import com.seok.gfd.retrofit.domain.YearContributionDto
18+
import com.seok.gfd.retrofit.domain.resopnse.CommitResponseDto
19+
import com.seok.gfd.retrofit.domain.resopnse.CommitsResponseDto
1520
import com.seok.gfd.utils.CommonUtils
1621
import com.seok.gfd.utils.SharedPreference
17-
import com.seok.gfd.viewmodel.GithubCommitDataViewModel
1822
import com.seok.gfd.viewmodel.GithubContributionViewModel
1923
import kotlinx.android.synthetic.main.fragment_main2.*
2024
import java.time.LocalDate
@@ -46,23 +50,21 @@ class Main2Fragment : Fragment() {
4650
sharedPreference = SharedPreference(this.activity!!.application)
4751
user = sharedPreference.getValueObject(getString(R.string.user_info))
4852
commonUtils = CommonUtils.instance
53+
githubContributionViewModel =
54+
ViewModelProviders.of(this).get(GithubContributionViewModel::class.java)
55+
githubContributionViewModel.getContributionData(user.login)
4956

50-
githubContributionViewModel = ViewModelProviders.of(this).get(GithubContributionViewModel::class.java)
5157

52-
githubContributionViewModel.getContributionData("msnodeve")
5358
}
5459

55-
private fun initViewModelFun(){
60+
private fun initViewModelFun() {
5661
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-
)
63-
62+
val fragmentPagerItems = FragmentPagerItems.with(activity)
63+
for(element in it.years!!){
64+
fragmentPagerItems.add(element.year +"(" + element.total + ")", MainSub::class.java, MainSub.arguments(it))
65+
}
66+
val adapter = FragmentPagerItemAdapter(activity?.supportFragmentManager, fragmentPagerItems.create())
6467
main_view_pager.adapter = adapter
65-
6668
main_tab_smart_layout.setViewPager(main_view_pager)
6769
})
6870
}
@@ -71,5 +73,22 @@ class Main2Fragment : Fragment() {
7173
main_tv_today.text = LocalDate.now().toString()
7274
main_top_scalable_layout.scaleWidth = commonUtils.getScreenWidth()
7375
main_top_scalable_layout.scaleHeight = commonUtils.getScreenHeight()
76+
77+
main_tv_user_name.text = user.login
78+
Glide.with(this).load(user.avatar_url).apply(RequestOptions.circleCropTransform()).into(main_image_profile)
79+
main_tv_user_bio.text = user.bio
80+
}
81+
82+
private fun getYearContributionData(commitsResponseDto: CommitsResponseDto): ArrayList<YearContributionDto>{
83+
var result = YearContributionDto()
84+
var yearContributionDtoItem = null
85+
for (year in commitsResponseDto.years!!){
86+
for (element in commitsResponseDto.contributions!!){
87+
if(element.date.contains(year.toString())){
88+
// 데이터 찾아서 넣기
89+
}
90+
}
91+
}
92+
7493
}
7594
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import com.seok.gfd.R
1010
import com.seok.gfd.retrofit.domain.resopnse.CommitsResponseDto
1111
import com.seok.gfd.utils.CommonUtils
1212

13-
class MainSub1 : Fragment() {
13+
class MainSub : Fragment() {
1414

1515
companion object{
1616
fun arguments(param : CommitsResponseDto) : Bundle{

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

Lines changed: 0 additions & 23 deletions
This file was deleted.

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

Lines changed: 0 additions & 23 deletions
This file was deleted.
1.67 KB
Loading

app/src/main/res/layout/fragment_main2.xml

Lines changed: 18 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
android:id="@+id/main_top_scalable_layout"
1212
android:layout_width="match_parent"
1313
android:layout_height="wrap_content"
14-
app:scale_base_height="480"
14+
app:scale_base_height="250"
1515
app:scale_base_width="1080"
1616
tools:ignore="MissingPrefix">
1717

@@ -31,7 +31,8 @@
3131
android:layout_width="wrap_content"
3232
android:layout_height="wrap_content"
3333
android:fontFamily="@font/spoqa_han_sans_bold"
34-
android:text="helloGfd"
34+
android:textColor="@color/colorText"
35+
android:text="HelloGfd"
3536
app:scale_height="100"
3637
app:scale_left="270"
3738
app:scale_textsize="55"
@@ -44,6 +45,7 @@
4445
android:layout_height="wrap_content"
4546
android:fontFamily="@font/spoqa_han_sans_thin"
4647
android:gravity="right"
48+
android:textColor="@color/colorText"
4749
android:text="2020-01-01"
4850
app:scale_height="100"
4951
app:scale_left="750"
@@ -55,124 +57,26 @@
5557
android:id="@+id/main_image_location"
5658
android:layout_width="wrap_content"
5759
android:layout_height="wrap_content"
58-
android:src="@drawable/icon_location"
59-
app:scale_height="40"
60+
android:src="@drawable/icon_bio"
61+
app:scale_height="50"
6062
app:scale_left="270"
61-
app:scale_top="150"
62-
app:scale_width="40" />
63+
app:scale_top="145"
64+
app:scale_width="50" />
6365

6466
<TextView
65-
android:id="@+id/main_tv_user_location"
67+
android:id="@+id/main_tv_user_bio"
6668
android:layout_width="wrap_content"
6769
android:layout_height="wrap_content"
6870
android:fontFamily="@font/spoqa_han_sans_light"
69-
android:text="location"
71+
android:text="Selfie"
72+
android:textColor="@color/colorText"
7073
app:scale_height="70"
71-
app:scale_left="320"
72-
app:scale_textsize="45"
73-
app:scale_top="125"
74+
app:scale_left="330"
75+
app:scale_textsize="35"
76+
app:scale_top="135"
7477
app:scale_width="610" />
7578

7679

77-
<LinearLayout
78-
android:layout_width="match_parent"
79-
android:layout_height="wrap_content"
80-
android:background="@drawable/rounding_background"
81-
app:scale_height="210"
82-
app:scale_left="30"
83-
app:scale_top="250"
84-
app:scale_width="1020" />
85-
86-
87-
<TextView
88-
android:id="@+id/today_commit"
89-
android:layout_width="wrap_content"
90-
android:layout_height="wrap_content"
91-
android:fontFamily="@font/spoqa_han_sans_bold"
92-
android:gravity="center"
93-
android:text="0"
94-
android:textColor="#FFFFFF"
95-
app:scale_height="110"
96-
app:scale_left="30"
97-
app:scale_textsize="70"
98-
app:scale_top="250"
99-
app:scale_width="340"/>
100-
101-
<TextView
102-
android:id="@+id/textView12"
103-
android:layout_width="wrap_content"
104-
android:layout_height="wrap_content"
105-
android:layout_marginBottom="16dp"
106-
android:fontFamily="@font/spoqa_han_sans_regular"
107-
android:text="@string/today_contribution"
108-
android:gravity="center"
109-
android:textColor="#FFFFFF"
110-
app:scale_height="100"
111-
app:scale_left="30"
112-
app:scale_textsize="45"
113-
app:scale_top="350"
114-
app:scale_width="340"/>
115-
116-
<TextView
117-
android:id="@+id/max_commit"
118-
android:layout_width="wrap_content"
119-
android:layout_height="wrap_content"
120-
android:gravity="center"
121-
android:fontFamily="@font/spoqa_han_sans_bold"
122-
android:text="0"
123-
android:textColor="#FFFFFF"
124-
app:scale_height="110"
125-
app:scale_left="370"
126-
app:scale_textsize="70"
127-
app:scale_top="250"
128-
app:scale_width="340" />
129-
130-
<TextView
131-
android:id="@+id/textView13"
132-
android:layout_width="wrap_content"
133-
android:layout_height="wrap_content"
134-
android:layout_marginBottom="16dp"
135-
android:fontFamily="@font/spoqa_han_sans_regular"
136-
android:text="@string/max_contribution"
137-
android:textColor="#FFFFFF"
138-
android:textSize="18sp"
139-
android:gravity="center"
140-
app:scale_height="100"
141-
app:scale_left="370"
142-
app:scale_textsize="45"
143-
app:scale_top="350"
144-
app:scale_width="340" />
145-
146-
<TextView
147-
android:id="@+id/year_commit"
148-
android:layout_width="wrap_content"
149-
android:layout_height="wrap_content"
150-
android:gravity="center"
151-
android:fontFamily="@font/spoqa_han_sans_bold"
152-
android:text="0"
153-
android:textColor="#FFFFFF"
154-
app:scale_height="110"
155-
app:scale_left="710"
156-
app:scale_textsize="70"
157-
app:scale_top="250"
158-
app:scale_width="340" />
159-
160-
<TextView
161-
android:id="@+id/textView14"
162-
android:layout_width="wrap_content"
163-
android:layout_height="wrap_content"
164-
android:layout_marginBottom="16dp"
165-
android:fontFamily="@font/spoqa_han_sans_regular"
166-
android:text="@string/year_contribution"
167-
android:textColor="#FFFFFF"
168-
android:textSize="18sp"
169-
android:gravity="center"
170-
app:scale_height="100"
171-
app:scale_left="710"
172-
app:scale_textsize="45"
173-
app:scale_top="350"
174-
app:scale_width="340" />
175-
17680
<com.ogaclejapan.smarttablayout.SmartTabLayout
17781
android:id="@+id/main_tab_smart_layout"
17882
android:layout_width="match_parent"
@@ -197,22 +101,22 @@
197101
app:stl_defaultTabTextColor="@color/colorText"
198102
app:stl_defaultTabTextSize="15sp"
199103
app:stl_defaultTabTextHorizontalPadding="10dp"
200-
app:stl_defaultTabTextMinWidth="100dp"
104+
app:stl_defaultTabTextMinWidth="120sp"
201105
app:stl_distributeEvenly="false"
202106
app:stl_clickable="true"
203107
app:stl_titleOffset="24dp"
204108
app:stl_drawDecorationAfterTab="false"
205109
app:scale_height="150"
206-
app:scale_top="470"
110+
app:scale_top="250"
207111
app:scale_width="1080"/>
208112

209113
<androidx.viewpager.widget.ViewPager
210114
android:id="@+id/main_view_pager"
211115
android:layout_width="match_parent"
212116
android:layout_height="match_parent"
213117
android:layout_below="@id/main_tab_smart_layout"
214-
app:scale_height="1080"
215-
app:scale_top="620"
118+
app:scale_height="1300"
119+
app:scale_top="400"
216120
app:scale_width="1080"/>
217121

218122
</com.ssomai.android.scalablelayout.ScalableLayout>

0 commit comments

Comments
 (0)