Skip to content

Commit 46aa512

Browse files
committed
ProgressBar Dialog 적용
1 parent c3310b4 commit 46aa512

11 files changed

Lines changed: 123 additions & 45 deletions

File tree

app/build.gradle

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,20 @@ android {
1717
applicationId "com.seok.gitfordeveloper"
1818
minSdkVersion 21
1919
targetSdkVersion 28
20-
versionCode 3
21-
versionName "1.0"
20+
versionCode 4
21+
versionName "0.6.2"
2222
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2323
}
2424
buildTypes {
2525
release {
2626
minifyEnabled false
2727
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
2828
testCoverageEnabled false
29-
// buildConfigField "String", "CLIENT_ID", CLIENT_ID
30-
// buildConfigField "String", "CLIENT_SECRET", CLIENT_SECRET
31-
// buildConfigField "String", "CALLBACK_URL", CALLBACK_URL
29+
buildConfigField "String", "GITHUB_CLIENT_ID", GITHUB_CLIENT_ID
30+
buildConfigField "String", "GITHUB_CLIENT_SECRET", GITHUB_CLIENT_SECRET
31+
buildConfigField "String", "REDIRECT_CALLBACK_URL", REDIRECT_CALLBACK_URL
32+
buildConfigField "String", "PREFERENCES_FILE", PREFERENCES_FILE
33+
buildConfigField "String", "PREFERENCES_TOKEN_KEY", PREFERENCES_TOKEN_KEY
3234
}
3335
debug {
3436
testCoverageEnabled true
@@ -124,4 +126,7 @@ dependencies {
124126
//lombok
125127
compileOnly 'org.projectlombok:lombok:1.18.8'
126128
annotationProcessor 'org.projectlombok:lombok:1.18.8'
129+
130+
//ProgressBar
131+
implementation 'com.wang.avi:library:2.1.3'
127132
}

app/src/main/java/com/seok/gitfordeveloper/database/CommitsDatabaseDao.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ interface CommitsDatabaseDao{
2020
@Query("SELECT * FROM commits WHERE data_date = :dataDate")
2121
fun getCommits(dataDate: String) : Commits
2222

23-
@Query("SELECT * FROM commits ORDER BY data_date DESC LIMIT 363")
23+
@Query("SELECT * FROM commits ORDER BY data_date DESC")
2424
fun getYearCommits() : List<Commits>
2525

2626
}

app/src/main/java/com/seok/gitfordeveloper/utils/AuthUserInfo.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import android.app.Application
44
import androidx.appcompat.app.AppCompatActivity
55
import com.seok.gitfordeveloper.BuildConfig
66
import com.seok.gitfordeveloper.R
7-
import com.seok.gitfordeveloper.retrofit.domain.User
87

98
class AuthUserInfo(private val application: Application) {
109
private val pref = application.getSharedPreferences(
@@ -15,7 +14,7 @@ class AuthUserInfo(private val application: Application) {
1514

1615
fun getUser(keyId: String, keyEmail: String, keyImage: String): Boolean {
1716
val userId = getUserId(keyId) != application.getString(R.string.no_user_id)
18-
val userEmail = getUserEmail(keyEmail) != application.getString(R.string.no_user_email)
17+
val userEmail = getUserUrl(keyEmail) != application.getString(R.string.no_user_email)
1918
val userImage = getUserImage(keyImage) != application.getString(R.string.no_user_image)
2019
return userId && userEmail && userImage
2120
}
@@ -28,7 +27,7 @@ class AuthUserInfo(private val application: Application) {
2827
}
2928
}
3029

31-
fun getUserEmail(userEmail: String): String {
30+
fun getUserUrl(userEmail: String): String {
3231
return if (pref.contains(userEmail)) {
3332
this.pref.getString(userEmail, null)
3433
} else {
@@ -49,7 +48,7 @@ class AuthUserInfo(private val application: Application) {
4948
}
5049
fun setUser(userId: String, userEmail: String, userImage: String) {
5150
editor.putString(application.getString(R.string.user_id), userId)
52-
editor.putString(application.getString(R.string.user_email), userEmail)
51+
editor.putString(application.getString(R.string.user_url), userEmail)
5352
editor.putString(application.getString(R.string.user_image), userImage)
5453
editor.commit()
5554
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.seok.gitfordeveloper.utils
2+
3+
import android.app.Dialog
4+
import android.content.Context
5+
import android.graphics.Color
6+
import android.graphics.drawable.ColorDrawable
7+
import com.seok.gitfordeveloper.R
8+
9+
class ProgressbarDialog(context: Context){
10+
private val dialog = Dialog(context)
11+
12+
init{
13+
dialog.window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
14+
dialog.setCanceledOnTouchOutside(false)
15+
}
16+
public fun start(){
17+
dialog.setContentView(R.layout.progressbar_dialog)
18+
dialog.show()
19+
}
20+
public fun finish(){
21+
dialog.dismiss()
22+
}
23+
}

app/src/main/java/com/seok/gitfordeveloper/views/LauncherActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ class LauncherActivity : AppCompatActivity() {
2222
Handler().postDelayed({
2323
val intent = Intent(this, LoginActivity::class.java)
2424
startActivity(intent)
25-
finish()
2625
overridePendingTransition(R.anim.fade_in, R.anim.fade_out)
27-
}, 500)
26+
finish()
27+
}, 1500)
2828
}
2929
}

app/src/main/java/com/seok/gitfordeveloper/views/LoginActivity.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import java.net.HttpURLConnection
1313
import androidx.lifecycle.Observer
1414
import androidx.lifecycle.ViewModelProviders
1515
import com.seok.gitfordeveloper.utils.AuthUserToken
16+
import com.seok.gitfordeveloper.utils.ProgressbarDialog
1617
import com.seok.gitfordeveloper.viewmodel.LoginViewModel
1718
import org.jetbrains.anko.longToast
1819

@@ -21,6 +22,7 @@ class LoginActivity : AppCompatActivity() {
2122

2223
private lateinit var viewModel: LoginViewModel
2324
private lateinit var authToken: AuthUserToken
25+
private lateinit var progressDialog : ProgressbarDialog
2426

2527
override fun onCreate(savedInstanceState: Bundle?) {
2628
super.onCreate(savedInstanceState)
@@ -34,8 +36,10 @@ class LoginActivity : AppCompatActivity() {
3436
}
3537

3638
private fun init() {
39+
progressDialog = ProgressbarDialog(this)
3740
viewModel = ViewModelProviders.of(this).get(LoginViewModel::class.java)
3841
authToken = AuthUserToken(application)
42+
progressDialog.start()
3943
}
4044

4145
private fun checkForSignIn() {
@@ -45,10 +49,12 @@ class LoginActivity : AppCompatActivity() {
4549
if (body.code == HttpURLConnection.HTTP_OK) {
4650
goToMainActivity()
4751
} else {
52+
progressDialog.finish()
4853
longToast(getString(R.string.fail_token))
4954
}
5055
})
5156
} else {
57+
progressDialog.finish()
5258
longToast(getString(R.string.welcome_app))
5359
}
5460
}
@@ -67,13 +73,15 @@ class LoginActivity : AppCompatActivity() {
6773
authToken.editToken(BuildConfig.PREFERENCES_TOKEN_KEY, body.access_token)
6874
goToMainActivity()
6975
}else{
76+
progressDialog.finish()
7077
longToast(getString(R.string.invalid_token))
7178
}
7279
})
7380
}
7481

7582
private fun goToMainActivity() {
7683
startActivity(Intent(this, MainActivity::class.java))
84+
overridePendingTransition(R.anim.fade_in, R.anim.fade_out)
7785
finish()
7886
}
7987
}

app/src/main/java/com/seok/gitfordeveloper/views/MainActivity.kt

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
package com.seok.gitfordeveloper.views
22

3-
import android.annotation.SuppressLint
43
import android.graphics.Color
54
import androidx.appcompat.app.AppCompatActivity
65
import android.os.Bundle
7-
import android.util.Log
86
import android.view.Gravity
97
import android.widget.LinearLayout
108
import android.widget.TextView
@@ -16,15 +14,10 @@ import com.google.android.gms.ads.MobileAds
1614
import com.seok.gitfordeveloper.BuildConfig
1715
import com.seok.gitfordeveloper.R
1816
import com.seok.gitfordeveloper.database.Commits
19-
import com.seok.gitfordeveloper.retrofit.service.UserService
20-
import com.seok.gitfordeveloper.utils.AuthUserInfo
21-
import com.seok.gitfordeveloper.utils.AuthUserToken
22-
import com.seok.gitfordeveloper.utils.GithubCrawler
23-
import com.seok.gitfordeveloper.utils.ValidationCheck
17+
import com.seok.gitfordeveloper.utils.*
2418
import com.seok.gitfordeveloper.viewmodel.MainViewModel
2519
import kotlinx.android.synthetic.main.activity_main.*
2620
import org.jetbrains.anko.*
27-
import org.jsoup.Jsoup
2821

2922
class MainActivity : AppCompatActivity() {
3023

@@ -33,6 +26,7 @@ class MainActivity : AppCompatActivity() {
3326
private lateinit var viewModel: MainViewModel
3427
private lateinit var githubCrawler: GithubCrawler
3528
private lateinit var validationCheck: ValidationCheck
29+
private lateinit var progressbarDialog: ProgressbarDialog
3630

3731
override fun onCreate(savedInstanceState: Bundle?) {
3832
super.onCreate(savedInstanceState)
@@ -43,6 +37,7 @@ class MainActivity : AppCompatActivity() {
4337
}
4438

4539
private fun init() {
40+
progressbarDialog = ProgressbarDialog(this)
4641
viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
4742
authUserToken = AuthUserToken(application)
4843
authUserInfo = AuthUserInfo(application)
@@ -53,25 +48,24 @@ class MainActivity : AppCompatActivity() {
5348
val adRequest = AdRequest.Builder().build()
5449
adView.loadAd(adRequest)
5550
}
56-
5751
private fun initViewModelFun() {
5852
viewModel.commits.observe(this, Observer { body ->
5953
setCommitUI(body)
6054
})
6155
viewModel.existCommit.observe(this, Observer { flag ->
6256
if (flag) {
63-
viewModel.getCommits(authUserInfo.getUserEmail(getString(R.string.user_email)))
57+
viewModel.getCommits(authUserInfo.getUserUrl(getString(R.string.user_url)))
6458
}
6559
})
6660
viewModel.getAllCommitsComplete.observe(this, Observer { flag ->
6761
if (flag) {
6862
scroll_contribute.smoothScrollTo(contribute.width, contribute.height)
6963
}
64+
progressbarDialog.finish()
7065
})
7166
}
72-
73-
@SuppressLint("SetTextI18n")
7467
private fun setCommitUI(body: List<Commits>) {
68+
val maxCommit = findMaxCommit(body)
7569
runOnUiThread {
7670
contribute.removeAllViews()
7771
contribute.columnCount = 53
@@ -86,24 +80,35 @@ class MainActivity : AppCompatActivity() {
8680
layout.gravity = Gravity.CENTER
8781
layout.addView(txt)
8882
layout.backgroundColor = Color.parseColor(commit.fill)
83+
if(commit.dataCount == maxCommit.dataCount){
84+
layout.background = getDrawable(R.drawable.rect_background)
85+
tv_max_commit.text= getString(R.string.max_contribution) + " "+ commit.dataCount
86+
}
8987
contribute.addView(layout)
9088
}
91-
tv_today_commit.text =
92-
getString(R.string.today_commit) + " " + body[body.size - 1].dataCount
89+
tv_today_commit.text = getString(R.string.today_contribution) + " " + body[body.size - 1].dataCount
9390
viewModel.completeGetCommits()
9491
}
9592
}
96-
93+
private fun findMaxCommit(commits: List<Commits>):Commits {
94+
var commit = commits[0]
95+
for (c in commits) {
96+
if(commit.dataCount < c.dataCount){
97+
commit = c
98+
}
99+
}
100+
return commit
101+
}
97102
private fun checkForUserInfo() {
103+
progressbarDialog.start()
98104
val user = authUserInfo.getUser(
99105
getString(R.string.user_id),
100-
getString(R.string.user_email),
106+
getString(R.string.user_url),
101107
getString(R.string.user_image)
102108
)
103-
104109
if (user) {
105110
tv_user_id.text = authUserInfo.getUserId(getString(R.string.user_id))
106-
tv_github_url.text = authUserInfo.getUserEmail(getString(R.string.user_email))
111+
tv_github_url.text = authUserInfo.getUserUrl(getString(R.string.user_url))
107112
Glide.with(this).load(authUserInfo.getUserImage(getString(R.string.user_image)))
108113
.into(user_img_profile)
109114
viewModel.checkCommit()
@@ -112,10 +117,10 @@ class MainActivity : AppCompatActivity() {
112117
viewModel.githubUserApi(authUserToken.getToken(BuildConfig.PREFERENCES_TOKEN_KEY))
113118
.observe(this, Observer { body ->
114119
authUserInfo.setKeyValue(getString(R.string.user_id), body.login)
115-
authUserInfo.setKeyValue(getString(R.string.user_email), body.html_url)
120+
authUserInfo.setKeyValue(getString(R.string.user_url), body.html_url)
116121
authUserInfo.setKeyValue(getString(R.string.user_image), body.avatar_url)
117122
tv_user_id.text = authUserInfo.getUserId(getString(R.string.user_id))
118-
tv_github_url.text = authUserInfo.getUserEmail(getString(R.string.user_email))
123+
tv_github_url.text = authUserInfo.getUserUrl(getString(R.string.user_url))
119124
Glide.with(this).load(authUserInfo.getUserImage(getString(R.string.user_image)))
120125
.into(user_img_profile)
121126
viewModel.checkCommit()
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:shape="rectangle">
4+
<stroke
5+
android:width="2dip"
6+
android:color="#FF0000" />
7+
<solid android:color="#196127" />
8+
</shape>

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

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
android:layout_width="wrap_content"
4747
android:layout_height="wrap_content"
4848
android:layout_margin="5dp"
49-
android:text="Today commit : 0"
49+
android:text="Today contribution : 0"
5050
android:textColor="#C4000000"
5151
android:textSize="14sp"
5252
app:layout_constraintBottom_toBottomOf="parent"
@@ -59,13 +59,22 @@
5959
android:layout_height="wrap_content"
6060
android:layout_margin="5dp"
6161
android:layout_marginBottom="16dp"
62-
android:text="github URL"
62+
android:text="https://github/gitfordeveloper"
6363
android:textColor="#C4000000"
6464
android:textSize="14sp"
6565
app:layout_constraintBottom_toBottomOf="parent"
6666
app:layout_constraintStart_toEndOf="@+id/user_img_profile"
6767
app:layout_constraintTop_toBottomOf="@+id/tv_today_commit" />
6868

69+
<TextView
70+
android:id="@+id/tv_max_commit"
71+
android:layout_width="127dp"
72+
android:layout_height="wrap_content"
73+
android:text="Max contribution : 0"
74+
android:textColor="#C4000000"
75+
app:layout_constraintBaseline_toBaselineOf="@+id/tv_user_id"
76+
app:layout_constraintEnd_toEndOf="parent" />
77+
6978
</androidx.constraintlayout.widget.ConstraintLayout>
7079

7180
<LinearLayout
@@ -86,6 +95,14 @@
8695
android:layout_weight="10"
8796
android:orientation="vertical">
8897

98+
<TextView
99+
android:id="@+id/textView7"
100+
android:layout_width="match_parent"
101+
android:layout_height="match_parent"
102+
android:layout_weight="10"
103+
android:gravity="center"
104+
android:text="SUN" />
105+
89106
<TextView
90107
android:id="@+id/textView"
91108
android:layout_width="match_parent"
@@ -134,13 +151,6 @@
134151
android:gravity="center"
135152
android:text="SAT" />
136153

137-
<TextView
138-
android:id="@+id/textView7"
139-
android:layout_width="match_parent"
140-
android:layout_height="match_parent"
141-
android:layout_weight="10"
142-
android:gravity="center"
143-
android:text="SUN" />
144154
</LinearLayout>
145155

146156
<LinearLayout
@@ -179,7 +189,7 @@
179189
android:layout_alignParentBottom="true"
180190
android:layout_centerHorizontal="true"
181191
app:adSize="BANNER"
182-
app:adUnitId="@string/banner_ad_unit_id_for_test"
192+
app:adUnitId="@string/banner_ad_unit_id"
183193
app:layout_constraintBottom_toBottomOf="parent"
184194
app:layout_constraintEnd_toEndOf="parent"
185195
app:layout_constraintStart_toStartOf="parent"></com.google.android.gms.ads.AdView>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
android:orientation="vertical"
5+
android:layout_width="match_parent"
6+
android:layout_height="match_parent"
7+
android:gravity="center">
8+
9+
<com.wang.avi.AVLoadingIndicatorView
10+
android:id="@+id/avi"
11+
style="@style/AVLoadingIndicatorView"
12+
android:layout_width="wrap_content"
13+
android:layout_height="wrap_content"
14+
android:background="#00FF0000"
15+
android:visibility="visible"
16+
app:indicatorColor="#00bfff"
17+
app:indicatorName="SemiCircleSpinIndicator" />
18+
19+
</LinearLayout>

0 commit comments

Comments
 (0)