From ed9835f5c18df104067ebbcb290068478e16fc4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A7=84=EC=84=B1?= Date: Mon, 27 Nov 2023 03:14:30 +0900 Subject: [PATCH 1/8] =?UTF-8?q?#86=20refactor=20:=20BottomSheet=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=20->=20class=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../customview/RestaurantBottomSheet.kt | 55 +++++++++++++++++++ .../presentation/ui/main/home/HomeFragment.kt | 7 ++- .../presentation/util/BottomSheetManager.kt | 50 ----------------- 3 files changed, 59 insertions(+), 53 deletions(-) create mode 100644 Aos/app/src/main/java/com/avengers/nibobnebob/presentation/customview/RestaurantBottomSheet.kt delete mode 100644 Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/BottomSheetManager.kt diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/customview/RestaurantBottomSheet.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/customview/RestaurantBottomSheet.kt new file mode 100644 index 0000000..37ced25 --- /dev/null +++ b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/customview/RestaurantBottomSheet.kt @@ -0,0 +1,55 @@ +package com.avengers.nibobnebob.presentation.customview + +import android.content.Context +import android.view.LayoutInflater +import com.avengers.nibobnebob.R +import com.avengers.nibobnebob.databinding.BottomSheetRestaurantBinding +import com.avengers.nibobnebob.presentation.ui.main.home.model.UiMarkerData +import com.google.android.material.bottomsheet.BottomSheetDialog + + +class RestaurantBottomSheet( + context: Context, + private val data: UiMarkerData, + private val onClickAddWishRestaurant: (Int, Boolean) -> Boolean, + private val onClickAddMyRestaurant: (Int) -> Unit, + private val onClickGoReview: (Int) -> Unit +): BottomSheetDialog(context) { + + private var binding: BottomSheetRestaurantBinding + private var isWishState = data.isInWishList + + init{ + binding = BottomSheetRestaurantBinding.inflate(LayoutInflater.from(context)) + setContentView(binding.root) + binding.item = data + setBottomSheetListener() + } + + private fun setBottomSheetListener(){ + binding.btnAddMyRestaurant.setOnClickListener { + onClickAddMyRestaurant(data.id) + dismiss() + } + + binding.btnAddWishRestaurant.setOnClickListener { + val result = onClickAddWishRestaurant(data.id, data.isInWishList) + + if (result) { + isWishState = !isWishState + + if (isWishState) { + binding.btnAddWishRestaurant.setBackgroundResource(R.drawable.ic_star_full) + } else { + binding.btnAddWishRestaurant.setBackgroundResource(R.drawable.ic_star_border) + } + } + } + + binding.btnGoReview.setOnClickListener { + onClickGoReview(data.id) + dismiss() + } + } + +} diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/main/home/HomeFragment.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/main/home/HomeFragment.kt index 15fc0f6..0b76e33 100644 --- a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/main/home/HomeFragment.kt +++ b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/main/home/HomeFragment.kt @@ -21,10 +21,10 @@ import com.avengers.nibobnebob.NavGraphDirections import com.avengers.nibobnebob.R import com.avengers.nibobnebob.databinding.FragmentHomeBinding import com.avengers.nibobnebob.presentation.base.BaseFragment +import com.avengers.nibobnebob.presentation.customview.RestaurantBottomSheet import com.avengers.nibobnebob.presentation.ui.main.MainViewModel import com.avengers.nibobnebob.presentation.ui.main.home.adapter.HomeFilterAdapter import com.avengers.nibobnebob.presentation.ui.main.home.model.UiMarkerData -import com.avengers.nibobnebob.presentation.util.restaurantSheet import com.naver.maps.geometry.LatLng import com.naver.maps.map.LocationTrackingMode import com.naver.maps.map.MapFragment @@ -185,13 +185,14 @@ class HomeFragment : BaseFragment(R.layout.fragment_home), marker.map = naverMap marker.setOnClickListener { - restaurantSheet( + val bottomSheet = RestaurantBottomSheet( context = requireContext(), data = data, onClickAddWishRestaurant = ::addWishTest, onClickAddMyRestaurant = ::addRestaurantTest, onClickGoReview = ::goReviewTest - ).show() + ) + bottomSheet.show() true } diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/BottomSheetManager.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/BottomSheetManager.kt deleted file mode 100644 index af1b550..0000000 --- a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/BottomSheetManager.kt +++ /dev/null @@ -1,50 +0,0 @@ -package com.avengers.nibobnebob.presentation.util - -import android.content.Context -import android.view.LayoutInflater -import com.avengers.nibobnebob.R -import com.avengers.nibobnebob.databinding.BottomSheetRestaurantBinding -import com.avengers.nibobnebob.presentation.ui.main.home.model.UiMarkerData -import com.google.android.material.bottomsheet.BottomSheetDialog - - -internal fun restaurantSheet( - context: Context, - data: UiMarkerData, - onClickAddWishRestaurant: (Int, Boolean) -> Boolean, - onClickAddMyRestaurant: (Int) -> Unit, - onClickGoReview: (Int) -> Unit -): BottomSheetDialog { - val dialog = BottomSheetDialog(context) - val binding = BottomSheetRestaurantBinding.inflate(LayoutInflater.from(context)) - dialog.setContentView(binding.root) - binding.item = data - - var isWishState = data.isInWishList - - binding.btnAddMyRestaurant.setOnClickListener { - onClickAddMyRestaurant(data.id) - dialog.dismiss() - } - - binding.btnAddWishRestaurant.setOnClickListener { - val result = onClickAddWishRestaurant(data.id, data.isInWishList) - - if (result) { - isWishState = !isWishState - - if (isWishState) { - binding.btnAddWishRestaurant.setBackgroundResource(R.drawable.ic_star_full) - } else { - binding.btnAddWishRestaurant.setBackgroundResource(R.drawable.ic_star_border) - } - } - } - - binding.btnGoReview.setOnClickListener { - onClickGoReview(data.id) - dialog.dismiss() - } - - return dialog -} \ No newline at end of file From 80ca28730f544c285542eeea16b8f278dccc6262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A7=84=EC=84=B1?= Date: Mon, 27 Nov 2023 03:15:09 +0900 Subject: [PATCH 2/8] =?UTF-8?q?#86=20refactor=20:=20Extensions=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=ED=8C=8C=EC=9D=BC=EB=AA=85=20=EC=88=98=EC=A0=95,?= =?UTF-8?q?=20=ED=8C=8C=EC=9D=BC=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nibobnebob/presentation/ui/DataExtensions.kt | 13 +++++++++++++ .../{util/HideKeyBoard.kt => ui/UiExtensions.kt} | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/DataExtensions.kt rename Aos/app/src/main/java/com/avengers/nibobnebob/presentation/{util/HideKeyBoard.kt => ui/UiExtensions.kt} (71%) diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/DataExtensions.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/DataExtensions.kt new file mode 100644 index 0000000..671dfb8 --- /dev/null +++ b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/DataExtensions.kt @@ -0,0 +1,13 @@ +package com.avengers.nibobnebob.presentation.ui + +import java.text.SimpleDateFormat +import java.util.Date +import java.util.Locale +import java.util.TimeZone + +internal fun Long.toDateString(): String { + val dateFormat = SimpleDateFormat("yyyy/MM/dd", Locale.getDefault()) + dateFormat.timeZone = TimeZone.getTimeZone("UTC") + val date = Date(this) + return dateFormat.format(date) +} \ No newline at end of file diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/HideKeyBoard.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/UiExtensions.kt similarity index 71% rename from Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/HideKeyBoard.kt rename to Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/UiExtensions.kt index ee60b7e..111c2a5 100644 --- a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/HideKeyBoard.kt +++ b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/UiExtensions.kt @@ -1,10 +1,10 @@ -package com.avengers.nibobnebob.presentation.util +package com.avengers.nibobnebob.presentation.ui import android.content.Context import android.view.View import android.view.inputmethod.InputMethodManager -fun Context.hideKeyboard(view: View) { +internal fun Context.hideKeyboard(view: View) { val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager imm.hideSoftInputFromWindow(view.windowToken, 0) } \ No newline at end of file From cba3f3cf8657c0b5694ab779901b9005ed6f5deb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A7=84=EC=84=B1?= Date: Mon, 27 Nov 2023 03:15:25 +0900 Subject: [PATCH 3/8] =?UTF-8?q?#86=20feat=20:=20BASE=5FURL=20=EB=8F=84?= =?UTF-8?q?=EB=A9=94=EC=9D=B8=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/avengers/nibobnebob/presentation/util/Constants.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/Constants.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/Constants.kt index bdc74b2..e0ecbb5 100644 --- a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/Constants.kt +++ b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/Constants.kt @@ -2,12 +2,15 @@ package com.avengers.nibobnebob.presentation.util object Constants { const val APP_NAME = "NibobNebob" - const val BASE_URL = "http://223.130.162.237:8000/" + const val BASE_URL = "https://www.nibobnebob.site:8000/api/" + const val AUTO_LOGIN = "AUTOLOGIN" const val ACCESS = "Access" + const val ACCESS_TOKEN = "ACCESSTOKEN" const val REFRESH_TOKEN = "REFRESHTOKEN" const val NAVER_TOKEN = "NAVERTOKEN" + const val AUTHORIZATION = "authorization" const val BEARER = "Bearer" const val MY_LIST = "마이 리스트" From ec01c24148c54bbc729ecc5770cf69678e8d7532 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A7=84=EC=84=B1?= Date: Mon, 27 Nov 2023 03:15:46 +0900 Subject: [PATCH 4/8] =?UTF-8?q?#86=20feat=20:=20Custom=20Dialog,=20CustomV?= =?UTF-8?q?iew=20=ED=8C=A8=ED=82=A4=EC=A7=80=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/intro/signup/DetailSignupFragment.kt | 5 +---- .../presentation/ui/intro/signup/DetailSignupViewModel.kt | 4 ++-- .../presentation/ui/main/mypage/edit/EditProfileFragment.kt | 2 +- .../presentation/util/{Validation.kt => ValidationUtil.kt} | 2 +- 4 files changed, 5 insertions(+), 8 deletions(-) rename Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/{Validation.kt => ValidationUtil.kt} (89%) diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/intro/signup/DetailSignupFragment.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/intro/signup/DetailSignupFragment.kt index 8087c1b..63f40a1 100644 --- a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/intro/signup/DetailSignupFragment.kt +++ b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/intro/signup/DetailSignupFragment.kt @@ -2,9 +2,7 @@ package com.avengers.nibobnebob.presentation.ui.intro.signup import android.os.Bundle import android.view.View -import android.widget.TextView import androidx.core.content.ContextCompat -import androidx.databinding.BindingAdapter import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import androidx.navigation.NavController @@ -14,9 +12,8 @@ import com.avengers.nibobnebob.R import com.avengers.nibobnebob.databinding.FragmentDetailSignupBinding import com.avengers.nibobnebob.presentation.base.BaseFragment import com.avengers.nibobnebob.presentation.ui.intro.IntroViewModel -import com.avengers.nibobnebob.presentation.util.showCalendarDatePicker +import com.avengers.nibobnebob.presentation.customview.showCalendarDatePicker import com.google.android.material.textfield.MaterialAutoCompleteTextView -import com.google.android.material.textfield.TextInputLayout import dagger.hilt.android.AndroidEntryPoint @AndroidEntryPoint diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/intro/signup/DetailSignupViewModel.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/intro/signup/DetailSignupViewModel.kt index 5b1feb8..3adc044 100644 --- a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/intro/signup/DetailSignupViewModel.kt +++ b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/intro/signup/DetailSignupViewModel.kt @@ -6,7 +6,7 @@ import com.avengers.nibobnebob.data.model.BaseState import com.avengers.nibobnebob.data.model.request.DetailSignupRequest import com.avengers.nibobnebob.data.repository.IntroRepository import com.avengers.nibobnebob.data.repository.ValidationRepository -import com.avengers.nibobnebob.presentation.util.Validation +import com.avengers.nibobnebob.presentation.util.ValidationUtil import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow @@ -95,7 +95,7 @@ class DetailSignupViewModel @Inject constructor( private fun observeBirth() { birth.onEach { - if (Validation.checkBirth(it) || it.isBlank()) { + if (ValidationUtil.checkBirth(it) || it.isBlank()) { _uiState.update { state -> state.copy( birthState = InputState.Empty diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/main/mypage/edit/EditProfileFragment.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/main/mypage/edit/EditProfileFragment.kt index 311bef4..48213e5 100644 --- a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/main/mypage/edit/EditProfileFragment.kt +++ b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/main/mypage/edit/EditProfileFragment.kt @@ -12,7 +12,7 @@ import com.avengers.nibobnebob.presentation.base.BaseFragment import com.avengers.nibobnebob.presentation.ui.main.MainViewModel import com.avengers.nibobnebob.presentation.ui.main.mypage.share.MyPageSharedUiEvent import com.avengers.nibobnebob.presentation.ui.main.mypage.share.MyPageSharedViewModel -import com.avengers.nibobnebob.presentation.util.showCalendarDatePicker +import com.avengers.nibobnebob.presentation.customview.showCalendarDatePicker import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.flow.collectLatest diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/Validation.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/ValidationUtil.kt similarity index 89% rename from Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/Validation.kt rename to Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/ValidationUtil.kt index d3b5217..eb3b3f3 100644 --- a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/Validation.kt +++ b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/ValidationUtil.kt @@ -1,6 +1,6 @@ package com.avengers.nibobnebob.presentation.util -object Validation { +object ValidationUtil { private val birthRegex = Regex("""^\d{4}/\d{2}/\d{2}${'$'}""") From 065763c6d1b2a609dfe681aa6b458503a3590660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A7=84=EC=84=B1?= Date: Mon, 27 Nov 2023 03:21:33 +0900 Subject: [PATCH 5/8] =?UTF-8?q?#86=20refactor=20:=20DatePicker=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20->=20Class=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../customview/CalendarDatePicker.kt | 27 +++++++++++++++ .../ui/intro/signup/DetailSignupFragment.kt | 6 ++-- .../main/mypage/edit/EditProfileFragment.kt | 6 ++-- .../presentation/util/DatePicker.kt | 33 ------------------- 4 files changed, 33 insertions(+), 39 deletions(-) create mode 100644 Aos/app/src/main/java/com/avengers/nibobnebob/presentation/customview/CalendarDatePicker.kt delete mode 100644 Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/DatePicker.kt diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/customview/CalendarDatePicker.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/customview/CalendarDatePicker.kt new file mode 100644 index 0000000..3faca08 --- /dev/null +++ b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/customview/CalendarDatePicker.kt @@ -0,0 +1,27 @@ +package com.avengers.nibobnebob.presentation.customview + + +import androidx.fragment.app.FragmentManager +import com.avengers.nibobnebob.presentation.ui.toDateString +import com.google.android.material.datepicker.MaterialDatePicker + +class CalendarDatePicker( + private val onSelectDateListener: (String) -> Unit +) { + private val datePicker = MaterialDatePicker.Builder.datePicker() + .setTitleText("생일을 고르세요") + .setSelection(MaterialDatePicker.todayInUtcMilliseconds()) + .build() + + init{ + datePicker.addOnPositiveButtonClickListener { + onSelectDateListener(it.toDateString()) + } + } + + fun show(fragmentManager: FragmentManager){ + datePicker.show(fragmentManager,"") + } +} + + diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/intro/signup/DetailSignupFragment.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/intro/signup/DetailSignupFragment.kt index 63f40a1..973e56e 100644 --- a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/intro/signup/DetailSignupFragment.kt +++ b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/intro/signup/DetailSignupFragment.kt @@ -11,8 +11,8 @@ import androidx.navigation.fragment.navArgs import com.avengers.nibobnebob.R import com.avengers.nibobnebob.databinding.FragmentDetailSignupBinding import com.avengers.nibobnebob.presentation.base.BaseFragment +import com.avengers.nibobnebob.presentation.customview.CalendarDatePicker import com.avengers.nibobnebob.presentation.ui.intro.IntroViewModel -import com.avengers.nibobnebob.presentation.customview.showCalendarDatePicker import com.google.android.material.textfield.MaterialAutoCompleteTextView import dagger.hilt.android.AndroidEntryPoint @@ -62,9 +62,9 @@ class DetailSignupFragment : private fun setDateBtnListener() { binding.tilBirth.setEndIconOnClickListener { - showCalendarDatePicker(parentFragmentManager) { + CalendarDatePicker{ viewModel.setBirth(it) - } + }.show(parentFragmentManager) } } diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/main/mypage/edit/EditProfileFragment.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/main/mypage/edit/EditProfileFragment.kt index 48213e5..1ecf690 100644 --- a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/main/mypage/edit/EditProfileFragment.kt +++ b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/ui/main/mypage/edit/EditProfileFragment.kt @@ -9,10 +9,10 @@ import androidx.navigation.Navigation import com.avengers.nibobnebob.R import com.avengers.nibobnebob.databinding.FragmentEditProfileBinding import com.avengers.nibobnebob.presentation.base.BaseFragment +import com.avengers.nibobnebob.presentation.customview.CalendarDatePicker import com.avengers.nibobnebob.presentation.ui.main.MainViewModel import com.avengers.nibobnebob.presentation.ui.main.mypage.share.MyPageSharedUiEvent import com.avengers.nibobnebob.presentation.ui.main.mypage.share.MyPageSharedViewModel -import com.avengers.nibobnebob.presentation.customview.showCalendarDatePicker import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.flow.collectLatest @@ -76,9 +76,9 @@ class EditProfileFragment : private fun setDateBtnListener() { binding.tilBirth.setEndIconOnClickListener { - showCalendarDatePicker(parentFragmentManager) { + CalendarDatePicker{ viewModel.setBirth(it) - } + }.show(parentFragmentManager) } } diff --git a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/DatePicker.kt b/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/DatePicker.kt deleted file mode 100644 index 2bae1ce..0000000 --- a/Aos/app/src/main/java/com/avengers/nibobnebob/presentation/util/DatePicker.kt +++ /dev/null @@ -1,33 +0,0 @@ -package com.avengers.nibobnebob.presentation.util - - -import androidx.fragment.app.FragmentManager -import com.google.android.material.datepicker.MaterialDatePicker -import java.text.SimpleDateFormat -import java.util.Date -import java.util.Locale -import java.util.TimeZone - - -fun showCalendarDatePicker( - fragmentManager: FragmentManager, - onSelectDateListener: (String) -> Unit -) { - val datePicker = MaterialDatePicker.Builder.datePicker() - .setTitleText("생일을 고르세요") - .setSelection(MaterialDatePicker.todayInUtcMilliseconds()) - .build() - - datePicker.addOnPositiveButtonClickListener { - onSelectDateListener(it.toDateString()) - } - - datePicker.show(fragmentManager, "") -} - -private fun Long.toDateString(): String { - val dateFormat = SimpleDateFormat("yyyy/MM/dd", Locale.getDefault()) - dateFormat.timeZone = TimeZone.getTimeZone("UTC") - val date = Date(this) - return dateFormat.format(date) -} \ No newline at end of file From 8d48413ec54ebeb7e85a830b2e45c8ab32bb2383 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A7=84=EC=84=B1?= Date: Mon, 27 Nov 2023 03:23:37 +0900 Subject: [PATCH 6/8] =?UTF-8?q?#86=20feat=20:=20=EA=B8=B0=EB=B3=B8=20?= =?UTF-8?q?=EC=8A=A4=ED=94=8C=EB=9E=98=EC=8B=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Aos/app/src/main/res/values/themes.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/Aos/app/src/main/res/values/themes.xml b/Aos/app/src/main/res/values/themes.xml index d943736..ca98718 100644 --- a/Aos/app/src/main/res/values/themes.xml +++ b/Aos/app/src/main/res/values/themes.xml @@ -3,6 +3,7 @@