Skip to content

Commit d2ddaf2

Browse files
committed
Merge branch 'dev'
2 parents cff9033 + 82ccbdc commit d2ddaf2

40 files changed

+282
-48
lines changed

app/build.gradle

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ dependencies {
6666
// retrofit2
6767
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
6868
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
69-
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'
69+
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.1'
7070
implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2'
7171

7272
// gson
@@ -77,4 +77,8 @@ dependencies {
7777

7878
// dataBinding kotlin option
7979
kapt "androidx.databinding:databinding-compiler:3.3.0"
80+
81+
// Glide
82+
implementation 'com.github.bumptech.glide:glide:4.8.0'
83+
kapt 'com.github.bumptech.glide:compiler:4.8.0'
8084
}

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
android:screenOrientation="portrait"/>
2525
<activity
2626
android:name=".ui.SplashActivity"
27-
android:theme="@style/AppTheme"
27+
android:theme="@style/SplashTheme"
2828
android:screenOrientation="portrait">
2929
<intent-filter>
3030
<action android:name="android.intent.action.MAIN" />

app/src/main/java/com/ddd/attendance/check/api/ApiService.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.ddd.attendance.check.api
22

3+
import com.ddd.attendance.check.model.Attendance
34
import com.ddd.attendance.check.model.LoginResponse
45
import kotlinx.coroutines.Deferred
56
import retrofit2.Response
@@ -12,4 +13,10 @@ interface ApiService {
1213
@FormUrlEncoded
1314
@POST("/auth/login")
1415
fun login(@Field("account") id: String, @Field("password") password: String): Deferred<Response<LoginResponse>>
16+
17+
@POST("/attends/start")
18+
fun attendsStart(): Deferred<Response<Attendance>>
19+
20+
@POST("/attends/end")
21+
fun attendsEnd(): Deferred<Response<Attendance>>
1522
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.ddd.attendance.check.common
2+
3+
enum class AttendanceStatus {
4+
START, STOP
5+
}

app/src/main/java/com/ddd/attendance/check/common/DDDDialog.kt

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,51 @@ import android.graphics.drawable.ColorDrawable
77
import android.os.Bundle
88
import android.util.DisplayMetrics
99
import android.view.ViewGroup
10+
import androidx.core.content.ContextCompat
11+
import com.ddd.attendance.check.R
12+
import com.ddd.attendance.check.vm.MainViewModel
1013
import kotlinx.android.synthetic.main.dialog_ddd.*
1114

1215

13-
class DDDDialog(context: Context, userType: UserType) : Dialog(context) {
16+
class DDDDialog(context: Context, private val data: Pair<UserType, String>) : Dialog(context) {
1417
private lateinit var dddDialogEventListener: DDDDialogEventListener
1518
override fun onCreate(savedInstanceState: Bundle?) {
1619
super.onCreate(savedInstanceState)
1720
window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
1821
setContentView(com.ddd.attendance.check.R.layout.dialog_ddd)
19-
val metrics = DisplayMetrics()
20-
window?.windowManager?.defaultDisplay?.getMetrics(metrics)
21-
val width = (metrics.widthPixels * 0.8).toInt()
22-
window?.setLayout(width, ViewGroup.LayoutParams.WRAP_CONTENT)
2322

23+
setInitView()
24+
setBackGround()
25+
setDialogMarkImg(data.second)
26+
tvMessage.text = data.second
2427
btnOK.setOnClickListener {
2528
dddDialogEventListener.onClick(this)
2629
dismiss()
2730
}
2831
}
2932

33+
private fun setDialogMarkImg(message: String) {
34+
val background = ContextCompat.getDrawable(
35+
context,
36+
if (message == MainViewModel.MSG_ATTENDANCE_START) R.drawable.check_icon else R.drawable.exclamation
37+
)
38+
imgMark.background = background
39+
}
40+
41+
private fun setInitView() {
42+
val metrics = DisplayMetrics()
43+
window?.windowManager?.defaultDisplay?.getMetrics(metrics)
44+
val width = (metrics.widthPixels * 0.8).toInt()
45+
window?.setLayout(width, ViewGroup.LayoutParams.WRAP_CONTENT)
46+
}
47+
48+
private fun setBackGround() {
49+
linearDialog.background = ContextCompat.getDrawable(
50+
context,
51+
if (data.first == UserType.BASIC) R.drawable.dialog_ddd_background else R.drawable.dialog_ddd_background_admin
52+
)
53+
}
54+
3055
fun setDialogListener(dddDialogEventListener: DDDDialogEventListener): DDDDialog {
3156
this.dddDialogEventListener = dddDialogEventListener
3257
return this
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.ddd.attendance.check.data.repository
2+
3+
import com.ddd.attendance.check.data.Repository
4+
import com.ddd.attendance.check.data.source.attendance.AttendanceRemoteDataSource
5+
import com.ddd.attendance.check.model.Attendance
6+
import retrofit2.Response
7+
import javax.inject.Inject
8+
9+
class AttendanceRepository @Inject constructor(private val attendanceRemoteDataSource: AttendanceRemoteDataSource) :
10+
Repository {
11+
suspend fun attendanceStart(): Response<Attendance> {
12+
return attendanceRemoteDataSource.attendanceStart()
13+
}
14+
15+
suspend fun attendsEnd(): Response<Attendance> {
16+
return attendanceRemoteDataSource.attendsEnd()
17+
}
18+
}

app/src/main/java/com/ddd/attendance/check/data/LoginRepository.kt renamed to app/src/main/java/com/ddd/attendance/check/data/repository/LoginRepository.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
package com.ddd.attendance.check.data
1+
package com.ddd.attendance.check.data.repository
22

3+
import com.ddd.attendance.check.data.Repository
34
import com.ddd.attendance.check.data.source.login.LoginRemoteDataSource
45
import com.ddd.attendance.check.model.LoginResponse
56
import retrofit2.Response

app/src/main/java/com/ddd/attendance/check/data/UserRepository.kt renamed to app/src/main/java/com/ddd/attendance/check/data/repository/UserRepository.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
package com.ddd.attendance.check.data
1+
package com.ddd.attendance.check.data.repository
22

3+
import com.ddd.attendance.check.data.Repository
34
import com.ddd.attendance.check.data.source.user.UserLocalDataSource
45
import com.ddd.attendance.check.db.entity.User
56
import javax.inject.Inject
67

7-
class UserRepository @Inject constructor(private val userLocalDataSource: UserLocalDataSource) : Repository {
8+
class UserRepository @Inject constructor(private val userLocalDataSource: UserLocalDataSource) :
9+
Repository {
810
suspend fun saveUsers(user: User) {
911
userLocalDataSource.saveUser(user)
1012
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package com.ddd.attendance.check.data.source.attendance
2+
3+
class AttendanceLocalDataSource
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.ddd.attendance.check.data.source.attendance
2+
3+
import com.ddd.attendance.check.api.ApiService
4+
import com.ddd.attendance.check.model.Attendance
5+
import retrofit2.Response
6+
7+
class AttendanceRemoteDataSource(private val apiService: ApiService) {
8+
suspend fun attendanceStart(): Response<Attendance> {
9+
return apiService.attendsStart().await()
10+
}
11+
12+
suspend fun attendsEnd(): Response<Attendance> {
13+
return apiService.attendsEnd().await()
14+
}
15+
}

0 commit comments

Comments
 (0)