Skip to content

Commit 02bce97

Browse files
committed
출석체크 화면 enable selector 완료
1 parent f42f7ef commit 02bce97

File tree

5 files changed

+56
-41
lines changed

5 files changed

+56
-41
lines changed

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
package com.ddd.attendance.check.ui
22

33
import android.os.Bundle
4+
import androidx.lifecycle.ViewModelProvider
45
import androidx.lifecycle.ViewModelProviders
56
import com.ddd.attendance.check.R
67
import com.ddd.attendance.check.base.DDDActivity
78
import com.ddd.attendance.check.databinding.ActivityMainBinding
89
import com.ddd.attendance.check.utill.lazyThreadSafetyNone
910
import com.ddd.attendance.check.vm.MainViewModel
11+
import javax.inject.Inject
1012

1113

1214
class MainActivity : DDDActivity<ActivityMainBinding, MainViewModel>() {
15+
1316
override val layoutResource: Int = R.layout.activity_main
14-
override val viewModel: MainViewModel by lazyThreadSafetyNone { ViewModelProviders.of(this)[MainViewModel::class.java] }
17+
@Inject
18+
lateinit var factory: ViewModelProvider.Factory
19+
override val viewModel: MainViewModel by lazyThreadSafetyNone { ViewModelProviders.of(this, factory)[MainViewModel::class.java] }
1520

1621
override fun onCreate(savedInstanceState: Bundle?) {
1722
super.onCreate(savedInstanceState)

app/src/main/java/com/ddd/attendance/check/vm/LoginViewModel.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ import kotlinx.coroutines.launch
1616
import javax.inject.Inject
1717

1818
class LoginViewModel @Inject constructor(
19-
private val loginRepository: LoginRepository,
20-
private val userRepository: UserRepository) : ViewModel() {
19+
private val loginRepository: LoginRepository,
20+
private val userRepository: UserRepository
21+
) : ViewModel() {
2122

2223
private val _error = MutableLiveData<String>()
2324
private val _btnEnableLogin = MutableLiveData<Boolean>()
Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,22 @@
11
package com.ddd.attendance.check.vm
22

3-
import android.util.Log
3+
import androidx.databinding.ObservableField
4+
import androidx.lifecycle.LiveData
5+
import androidx.lifecycle.MutableLiveData
46
import androidx.lifecycle.ViewModel
57
import javax.inject.Inject
68

79
class MainViewModel @Inject constructor() : ViewModel() {
810

911

10-
fun onClick() {
11-
Log.e("?", "?")
12+
private val _btnEnableLogin = MutableLiveData<Boolean>()
13+
14+
val editNumberAttendance = ObservableField<String>()
15+
val btnEnableAttendance: LiveData<Boolean> get() = _btnEnableLogin
16+
17+
fun onInputNumberTextChanged(input: CharSequence) {
18+
editNumberAttendance.set(input.toString())
19+
_btnEnableLogin.value = !editNumberAttendance.get().isNullOrEmpty()
1220
}
1321

1422
}

app/src/main/java/com/ddd/attendance/check/vm/SplashViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class SplashViewModel @Inject constructor(private val userRepository: UserReposi
1717
private val _startLoginActivity = SingleLiveEvent<Class<LoginActivity>>()
1818

1919
val startMainActivity: LiveData<Class<MainActivity>> get() = _startMainActivity
20-
val startLoginActivity: LiveData<Class<MainActivity>> get() = _startMainActivity
20+
val startLoginActivity: LiveData<Class<LoginActivity>> get() = _startLoginActivity
2121

2222
fun checkUser() {
2323
GlobalScope.launch {

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

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,27 @@
2323
android:background="@drawable/attendance_img" />
2424

2525
<EditText
26-
android:layout_width="wrap_content"
27-
android:layout_height="wrap_content"
28-
android:layout_marginTop="25dp"
29-
android:backgroundTint="@android:color/white"
30-
android:inputType="number"
31-
android:maxLength="2"
32-
android:layout_marginBottom="68dp"
33-
android:maxLines="1"
34-
android:minEms="1"
35-
android:textColor="@android:color/white"
36-
android:textCursorDrawable="@android:color/white"
37-
android:textColorHighlight="@android:color/white"
38-
android:textSize="84dp"
39-
app:layout_constraintBottom_toBottomOf="@+id/imgAttendanceInput"
40-
android:textStyle="bold"
41-
app:layout_constraintLeft_toLeftOf="@+id/imgAttendanceInput"
42-
app:layout_constraintRight_toRightOf="@+id/imgAttendanceInput"
43-
app:layout_constraintTop_toTopOf="@+id/imgAttendanceInput"
44-
tools:ignore="Autofill,LabelFor,SpUsage" />
26+
android:layout_width="wrap_content"
27+
android:layout_height="wrap_content"
28+
android:layout_marginTop="25dp"
29+
android:backgroundTint="@android:color/white"
30+
android:inputType="number"
31+
android:maxLength="2"
32+
android:layout_marginBottom="68dp"
33+
android:maxLines="1"
34+
android:minEms="1"
35+
android:text="@={mainViewModel.editNumberAttendance}"
36+
android:onTextChanged="@{(text,start,end,count)->mainViewModel.onInputNumberTextChanged(text)}"
37+
android:textColor="@android:color/white"
38+
android:textCursorDrawable="@android:color/white"
39+
android:textColorHighlight="@android:color/white"
40+
android:textSize="84dp"
41+
app:layout_constraintBottom_toBottomOf="@+id/imgAttendanceInput"
42+
android:textStyle="bold"
43+
app:layout_constraintLeft_toLeftOf="@+id/imgAttendanceInput"
44+
app:layout_constraintRight_toRightOf="@+id/imgAttendanceInput"
45+
app:layout_constraintTop_toTopOf="@+id/imgAttendanceInput"
46+
tools:ignore="Autofill,LabelFor,SpUsage"/>
4547

4648
<TextView
4749
android:id="@+id/tvExplanation"
@@ -82,20 +84,19 @@
8284
app:layout_constraintRight_toRightOf="parent"
8385
tools:ignore="SpUsage" />
8486
<Button
85-
android:id="@+id/btnAttendance"
86-
android:layout_width="match_parent"
87-
android:layout_height="wrap_content"
88-
android:layout_marginLeft="35dp"
89-
android:layout_marginRight="35dp"
90-
android:layout_marginBottom="70dp"
91-
android:background="@drawable/login_btn_state"
92-
android:elevation="11dp"
93-
android:enabled="false"
94-
android:onClick="@{()->mainViewModel.onClick()}"
95-
android:text="@string/attendance"
96-
android:textColor="@android:color/white"
97-
android:textSize="12dp"
98-
app:layout_constraintBottom_toBottomOf="parent"
99-
tools:ignore="SpUsage" />
87+
android:id="@+id/btnAttendance"
88+
android:layout_width="match_parent"
89+
android:layout_height="wrap_content"
90+
android:layout_marginLeft="35dp"
91+
android:layout_marginRight="35dp"
92+
android:layout_marginBottom="70dp"
93+
android:background="@drawable/login_btn_state"
94+
android:elevation="11dp"
95+
android:enabled="@{safeUnbox(mainViewModel.btnEnableAttendance)? true : false}"
96+
android:text="@string/attendance"
97+
android:textColor="@android:color/white"
98+
android:textSize="12dp"
99+
app:layout_constraintBottom_toBottomOf="parent"
100+
tools:ignore="SpUsage"/>
100101
</androidx.constraintlayout.widget.ConstraintLayout>
101102
</layout>

0 commit comments

Comments
 (0)