Skip to content

Commit 3b6fba3

Browse files
committed
출석 확인 dialog custom 완료
1 parent 02bce97 commit 3b6fba3

File tree

6 files changed

+112
-1
lines changed

6 files changed

+112
-1
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.ddd.attendance.check.common
2+
3+
import android.app.Dialog
4+
import android.content.Context
5+
import android.graphics.Color
6+
import android.graphics.drawable.ColorDrawable
7+
import android.os.Bundle
8+
import android.util.DisplayMetrics
9+
import android.view.ViewGroup
10+
import kotlinx.android.synthetic.main.dialog_ddd.*
11+
12+
13+
class DDDDialog(context: Context) : Dialog(context) {
14+
lateinit var dddDialogEventListener: DDDDialogEventListener
15+
override fun onCreate(savedInstanceState: Bundle?) {
16+
super.onCreate(savedInstanceState)
17+
window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
18+
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)
23+
24+
btnOK.setOnClickListener {
25+
dddDialogEventListener.onClick(this)
26+
dismiss()
27+
}
28+
}
29+
30+
fun setDialogListener(dddDialogEventListener: DDDDialogEventListener): DDDDialog {
31+
this.dddDialogEventListener = dddDialogEventListener
32+
return this
33+
}
34+
35+
interface DDDDialogEventListener {
36+
fun onClick(dialog: Dialog)
37+
}
38+
}

app/src/main/java/com/ddd/attendance/check/ui/MainActivity.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package com.ddd.attendance.check.ui
22

3+
import android.app.Dialog
34
import android.os.Bundle
45
import androidx.lifecycle.ViewModelProvider
56
import androidx.lifecycle.ViewModelProviders
67
import com.ddd.attendance.check.R
78
import com.ddd.attendance.check.base.DDDActivity
9+
import com.ddd.attendance.check.common.DDDDialog
810
import com.ddd.attendance.check.databinding.ActivityMainBinding
911
import com.ddd.attendance.check.utill.lazyThreadSafetyNone
1012
import com.ddd.attendance.check.vm.MainViewModel
13+
import kotlinx.android.synthetic.main.activity_main.*
1114
import javax.inject.Inject
1215

1316

@@ -21,6 +24,18 @@ class MainActivity : DDDActivity<ActivityMainBinding, MainViewModel>() {
2124
override fun onCreate(savedInstanceState: Bundle?) {
2225
super.onCreate(savedInstanceState)
2326
setDataBinding()
27+
setUpDialog()
28+
}
29+
30+
private fun setUpDialog() {
31+
btnAttendance.setOnClickListener {
32+
DDDDialog(this)
33+
.setDialogListener(object : DDDDialog.DDDDialogEventListener {
34+
override fun onClick(dialog: Dialog) {
35+
dialog.dismiss()
36+
}
37+
}).show()
38+
}
2439
}
2540

2641
private fun setDataBinding() {
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:shape="rectangle">
4+
<solid
5+
android:color="@color/login_special_title"/>
6+
<corners android:radius="10dp"/>
7+
</shape>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:shape="rectangle">
4+
<solid
5+
android:color="@android:color/white"/>
6+
<corners
7+
android:bottomLeftRadius="10dp"
8+
android:bottomRightRadius="10dp"/>
9+
</shape>
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:tools="http://schemas.android.com/tools"
4+
android:layout_width="match_parent"
5+
android:layout_height="match_parent"
6+
android:background="@drawable/dialog_ddd_background"
7+
android:gravity="center_horizontal"
8+
android:orientation="vertical">
9+
10+
<ImageView
11+
android:layout_width="wrap_content"
12+
android:layout_height="wrap_content"
13+
android:layout_marginTop="48dp"
14+
android:background="@drawable/ic_launcher_background"/>
15+
16+
<TextView
17+
android:layout_width="wrap_content"
18+
android:layout_height="wrap_content"
19+
android:gravity="center"
20+
android:layout_marginTop="18dp"
21+
android:paddingEnd="60dp"
22+
android:paddingStart="60dp"
23+
android:text="@string/attendance_dialog_already"
24+
android:textColor="@android:color/white"
25+
android:textSize="25dp"
26+
tools:ignore="SpUsage"/>
27+
28+
<Button
29+
android:id="@+id/btnOK"
30+
android:textSize="18dp"
31+
android:paddingTop="21dp"
32+
android:paddingBottom="21dp"
33+
android:layout_width="match_parent"
34+
android:layout_height="wrap_content"
35+
android:layout_gravity="bottom"
36+
android:layout_marginTop="49dp"
37+
android:background="@drawable/dialog_ddd_btn_background"
38+
android:text="@string/attendance_dialog_ok"
39+
android:textColor="@color/login_special_title"
40+
tools:ignore="SpUsage"/>
41+
</LinearLayout>

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@
99
<string name="login_input_pw_hint">비밀번호를 입력해주세요.</string>
1010
<string name="login">로그인</string>
1111

12-
1312
<!--출석체크 화면-->
1413
<string name="attendance">출석체크</string>
1514
<string name="attendance_input_explanation">번호 입력해주세요</string>
1615
<string name="attendance_guide_top">라운드에 번호를 입력해주셔야 출석 체크 버튼이</string>
1716
<string name="attendance_guide_bottom">활성화가 되어 출석 체크가 가능합니다.</string>
17+
<string name="attendance_dialog_already">이미 출석체크가\n되었습니다.</string>
18+
<string name="attendance_dialog_ok">확인하였습니다.</string>
1819
</resources>

0 commit comments

Comments
 (0)