diff --git a/app/src/main/java/com/example/shiftalarm/FragmentSettingsLab.kt b/app/src/main/java/com/example/shiftalarm/FragmentSettingsLab.kt
index 9603850..d427e35 100644
--- a/app/src/main/java/com/example/shiftalarm/FragmentSettingsLab.kt
+++ b/app/src/main/java/com/example/shiftalarm/FragmentSettingsLab.kt
@@ -4,8 +4,11 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.Toast
import androidx.fragment.app.Fragment
+import androidx.lifecycle.lifecycleScope
import com.example.shiftalarm.databinding.FragmentSettingsLabBinding
+import kotlinx.coroutines.launch
class FragmentSettingsLab : Fragment() {
@@ -20,6 +23,56 @@ class FragmentSettingsLab : Fragment() {
return binding.root
}
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ setupNumberPicker()
+ loadAnnualLeave()
+ setupSaveButton()
+ }
+
+ private fun setupNumberPicker() {
+ binding.npTotalDays.apply {
+ minValue = 1
+ maxValue = 25
+ wrapSelectorWheel = false
+ }
+ }
+
+ private fun loadAnnualLeave() {
+ lifecycleScope.launch {
+ val repo = ShiftRepository(requireContext())
+
+ val annualLeave = repo.getAnnualLeave()
+ annualLeave?.let {
+ binding.npTotalDays.value = it.totalDays.toInt()
+ binding.tvRemainingDays.text = String.format("%.1f", it.remainingDays)
+ } ?: run {
+ // Default: 15 days
+ binding.npTotalDays.value = 15
+ binding.tvRemainingDays.text = "15.0"
+ }
+ }
+ }
+
+ private fun setupSaveButton() {
+ binding.btnSaveAnnualLeave.setOnClickListener {
+ val totalDays = binding.npTotalDays.value.toFloat()
+
+ lifecycleScope.launch {
+ val repo = ShiftRepository(requireContext())
+
+ repo.recalculateAndSaveAnnualLeave(totalDays)
+
+ val updated = repo.getAnnualLeave()
+ updated?.let {
+ binding.tvRemainingDays.text = String.format("%.1f", it.remainingDays)
+ Toast.makeText(requireContext(), "연차가 저장되었습니다. (남은 연차: ${String.format("%.1f", it.remainingDays)}일)", Toast.LENGTH_SHORT).show()
+ }
+ }
+ }
+ }
+
override fun onDestroyView() {
super.onDestroyView()
_binding = null
diff --git a/app/src/main/res/layout/fragment_settings_lab.xml b/app/src/main/res/layout/fragment_settings_lab.xml
index 92ad376..2b53942 100644
--- a/app/src/main/res/layout/fragment_settings_lab.xml
+++ b/app/src/main/res/layout/fragment_settings_lab.xml
@@ -5,32 +5,124 @@
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="24dp"
- android:gravity="center">
-
-
+ android:gravity="center_horizontal">
+
+ android:textColor="@color/text_primary"
+ android:layout_marginBottom="32dp"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_marginBottom="24dp"
+ android:gravity="center"/>
+
+
+
diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml
index 9561a1d..15b9dc0 100644
--- a/app/src/main/res/values-en/strings.xml
+++ b/app/src/main/res/values-en/strings.xml
@@ -1,3 +1,28 @@
+
- shiftring
+ Shift Alarm
+ Team selection
+ Current shift: %1$s
+ Next shift: %1$s
+ Alarm Status
+ Company selection
+ Basic Settings
+ Alarm Settings
+ Extras
+ Leave Management
+
+ - Jeonju
+ - Nonsan
+
+
+ - A Team
+ - B Team
+ - C Team
+ - D Team
+
+
+ - System Settings
+ - Light
+ - Dark
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 36cf5df..ea52b0b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -9,7 +9,7 @@
기본 설정
알람 설정
부가기능
- 실험실
+ 휴가 관리
- 전주