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 @@ 기본 설정 알람 설정 부가기능 - 실험실 + 휴가 관리 전주