diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b67c44bc..6b02523a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,10 @@ android:exported="false" android:screenOrientation="portrait" /> + + @font/font_pretendard_semibold - 18sp + 20sp 2sp diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index ca230875..c0b537fb 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -34,8 +34,8 @@ 판매하기 퓨어 오일 퍼퓸 10 ml 긴제목테스트트트트트 - 54,000 - 48,900 + 54,000원 + 48,900원 999+ 알림 @@ -48,7 +48,7 @@ % 남은 재고 - 이 상품에 대한 자세한 정보를 보고 싶다면? + 이 상품에 대한 자세한 정보를 보고 싶다면? 구매하기 원하는 옵션을 선택해주세요 @@ -240,15 +240,15 @@ 개인정보 처리방침 (필수) 서비스 이용 약관 (필수) 마케팅 수신 동의 (선택) - 동의하고 본인 인증하러 가기 + 동의하고 본인인증하러 가기 %1$s님 완료 환영해요! - 본인 인증을 진행해주세요 - 안전한 딴지 사용을 위해\n본인 인증이 필요해요 - 본인 인증하러 가기 + 본인인증을 진행해주세요 + 안전한 딴지 사용을 위해\n본인인증이 필요해요 + 본인인증하러 가기 구매 목록 판매 목록 diff --git a/data/src/main/java/co/orange/data/dto/request/SellRegisterRequestDto.kt b/data/src/main/java/co/orange/data/dto/request/SellRegisterRequestDto.kt index ad028f61..88bb6e59 100644 --- a/data/src/main/java/co/orange/data/dto/request/SellRegisterRequestDto.kt +++ b/data/src/main/java/co/orange/data/dto/request/SellRegisterRequestDto.kt @@ -10,12 +10,12 @@ data class SellRegisterRequestDto( val productId: String, @SerialName("productName") val productName: String, - @SerialName("dueDate") - val dueDate: String, + @SerialName("receivedDate") + val receivedDate: String, @SerialName("registeredImage") val registeredImage: String, ) { companion object { - fun SellRegisterRequestModel.toDto() = SellRegisterRequestDto(productId, productName, dueDate, registeredImage) + fun SellRegisterRequestModel.toDto() = SellRegisterRequestDto(productId, productName, receivedDate, registeredImage) } } diff --git a/data/src/main/java/co/orange/data/service/SellService.kt b/data/src/main/java/co/orange/data/service/SellService.kt index 88c3a4a9..926853b5 100644 --- a/data/src/main/java/co/orange/data/service/SellService.kt +++ b/data/src/main/java/co/orange/data/service/SellService.kt @@ -48,7 +48,7 @@ interface SellService { @Path("id") orderId: String, ): BaseResponse - @PATCH("/api/v1/order/{id}/sell") + @PATCH("/api/v1/order/{id}/sale") suspend fun patchOrderConfirm( @Path("id") orderId: String, ): BaseResponse diff --git a/domain/src/main/kotlin/co/orange/domain/entity/request/SellRegisterRequestModel.kt b/domain/src/main/kotlin/co/orange/domain/entity/request/SellRegisterRequestModel.kt index 233e863a..8d995585 100644 --- a/domain/src/main/kotlin/co/orange/domain/entity/request/SellRegisterRequestModel.kt +++ b/domain/src/main/kotlin/co/orange/domain/entity/request/SellRegisterRequestModel.kt @@ -3,6 +3,6 @@ package co.orange.domain.entity.request data class SellRegisterRequestModel( val productId: String, val productName: String, - val dueDate: String, + val receivedDate: String, val registeredImage: String, ) diff --git a/domain/src/main/kotlin/co/orange/domain/enums/ItemStatus.kt b/domain/src/main/kotlin/co/orange/domain/enums/ItemStatus.kt index aac2fc22..a1d3eac0 100644 --- a/domain/src/main/kotlin/co/orange/domain/enums/ItemStatus.kt +++ b/domain/src/main/kotlin/co/orange/domain/enums/ItemStatus.kt @@ -4,6 +4,8 @@ enum class ItemStatus { ON_SALE, ORDERED, SHIPPING, + DELAYED_SHIPPING, + WARNING, COMPLETED, CANCELLED, } diff --git a/feature/auth/build.gradle.kts b/feature/auth/build.gradle.kts index 1f883a0f..24305cc2 100644 --- a/feature/auth/build.gradle.kts +++ b/feature/auth/build.gradle.kts @@ -22,12 +22,23 @@ android { "IAMPORT_CODE", gradleLocalProperties(rootDir).getProperty("iamport.code"), ) + } - buildConfigField( - "String", - "MERCHANT_UID", - gradleLocalProperties(rootDir).getProperty("merchant.uid"), - ) + buildTypes { + debug { + buildConfigField( + "String", + "MERCHANT_UID", + gradleLocalProperties(rootDir).getProperty("merchant.test.uid"), + ) + } + release { + buildConfigField( + "String", + "MERCHANT_UID", + gradleLocalProperties(rootDir).getProperty("merchant.uid"), + ) + } } compileOptions { diff --git a/feature/buy/build.gradle.kts b/feature/buy/build.gradle.kts index cacafdd5..3f1c88a3 100644 --- a/feature/buy/build.gradle.kts +++ b/feature/buy/build.gradle.kts @@ -22,12 +22,22 @@ android { "IAMPORT_CODE", gradleLocalProperties(rootDir).getProperty("iamport.code"), ) - - buildConfigField( - "String", - "PAYMENT_UID", - gradleLocalProperties(rootDir).getProperty("payment.uid"), - ) + } + buildTypes { + debug { + buildConfigField( + "String", + "PAYMENT_UID", + gradleLocalProperties(rootDir).getProperty("payment.test.uid"), + ) + } + release { + buildConfigField( + "String", + "PAYMENT_UID", + gradleLocalProperties(rootDir).getProperty("payment.uid"), + ) + } } compileOptions { diff --git a/feature/buy/src/main/java/co/orange/buy/finished/BuyFinishedActivity.kt b/feature/buy/src/main/java/co/orange/buy/finished/BuyFinishedActivity.kt index 55cd0de4..ef6c7156 100644 --- a/feature/buy/src/main/java/co/orange/buy/finished/BuyFinishedActivity.kt +++ b/feature/buy/src/main/java/co/orange/buy/finished/BuyFinishedActivity.kt @@ -54,17 +54,13 @@ class BuyFinishedActivity : } private fun initReturnBtnListener() { - binding.btnHome.setOnSingleClickListener { navigateToHome() } + binding.btnHome.setOnSingleClickListener { navigationManager.toMainViewWIthClearing(this) } binding.btnKeepShopping.setOnSingleClickListener { AmplitudeManager.trackEvent("click_purchase_adjustment_add") - navigateToHome() + navigationManager.toMainViewWIthClearing(this) } } - private fun navigateToHome() { - navigationManager.toMainViewWIthClearing(this) - } - private fun initDetailBtnListener() { binding.btnShowDetail.setOnSingleClickListener { AmplitudeManager.trackEvent("click_purchase_adjustment_check") diff --git a/feature/buy/src/main/res/layout/activity_buy_finished.xml b/feature/buy/src/main/res/layout/activity_buy_finished.xml index 8308c802..3b95d1d5 100644 --- a/feature/buy/src/main/res/layout/activity_buy_finished.xml +++ b/feature/buy/src/main/res/layout/activity_buy_finished.xml @@ -24,8 +24,7 @@ style="@style/TextAppearance.DDanzi.Body2" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="12dp" - android:layout_marginBottom="19dp" + android:padding="20dp" android:text="@string/buy_finished_tv_title" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/feature/buy/src/main/res/layout/activity_buy_info.xml b/feature/buy/src/main/res/layout/activity_buy_info.xml index 5e6eff45..71ec4cc0 100644 --- a/feature/buy/src/main/res/layout/activity_buy_info.xml +++ b/feature/buy/src/main/res/layout/activity_buy_info.xml @@ -24,8 +24,7 @@ style="@style/TextAppearance.DDanzi.Body2" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="12dp" - android:layout_marginBottom="19dp" + android:padding="20dp" android:text="@string/buy_info_tv_title" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" @@ -112,10 +111,10 @@ android:layout_height="0dp" android:layout_marginTop="18dp" android:scaleType="centerCrop" - android:src="@drawable/mock_img_product" app:layout_constraintDimensionRatio="1" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/tv_info_product_title" /> + app:layout_constraintTop_toBottomOf="@id/tv_info_product_title" + tools:src="@drawable/mock_img_product" /> (R.layout.activity_alarm binding.layoutEmpty.isVisible = state.data.alarmList.isEmpty() } - is UiState.Failure -> toast(stringOf(co.orange.core.R.string.error_msg)) + is UiState.Failure -> { + toast(stringOf(co.orange.core.R.string.error_msg)) + binding.layoutEmpty.isVisible = true + } + else -> return@onEach } }.launchIn(lifecycleScope) @@ -96,10 +100,10 @@ class AlarmActivity : BaseActivity(R.layout.activity_alarm } in listOf(AlarmType.B2.name, AlarmType.B3.name, AlarmType.B4.name) -> { - item.orderId?.let { navigationManager.toSellInfoView(this, it) } + item.orderId?.let { navigationManager.toBuyInfoView(this, it) } } - else -> return + else -> finish() } } diff --git a/feature/main/src/main/java/co/orange/main/detail/DetailActivity.kt b/feature/main/src/main/java/co/orange/main/detail/DetailActivity.kt index ce818687..de288b0d 100644 --- a/feature/main/src/main/java/co/orange/main/detail/DetailActivity.kt +++ b/feature/main/src/main/java/co/orange/main/detail/DetailActivity.kt @@ -122,6 +122,7 @@ class DetailActivity : BaseActivity(featureR.layout.activ private fun setProduct(item: ProductDetailModel) { with(binding) { + layoutDetailBefore.isVisible = false tvDetailTitle.text = item.name.breakLines() chipsDetailCategory.text = item.category chipsDetailOption.isVisible = item.isOptionExist diff --git a/feature/main/src/main/java/co/orange/main/detail/OptionBottomSheet.kt b/feature/main/src/main/java/co/orange/main/detail/OptionBottomSheet.kt index daccb33b..258815c0 100644 --- a/feature/main/src/main/java/co/orange/main/detail/OptionBottomSheet.kt +++ b/feature/main/src/main/java/co/orange/main/detail/OptionBottomSheet.kt @@ -70,6 +70,7 @@ class OptionBottomSheet : viewModel.productId, viewModel.selectedOptionList, ) + dismiss() } } diff --git a/feature/main/src/main/java/co/orange/main/main/home/HomeFragment.kt b/feature/main/src/main/java/co/orange/main/main/home/HomeFragment.kt index 668a9fae..3f7d2017 100644 --- a/feature/main/src/main/java/co/orange/main/main/home/HomeFragment.kt +++ b/feature/main/src/main/java/co/orange/main/main/home/HomeFragment.kt @@ -18,6 +18,7 @@ import co.orange.core.extension.stringOf import co.orange.core.extension.toast import co.orange.core.navigation.NavigationManager import co.orange.core.state.UiState +import co.orange.main.alarm.AlarmActivity import co.orange.main.databinding.FragmentHomeBinding import co.orange.main.detail.DetailActivity import co.orange.main.main.home.HomeAdapter.Companion.VIEW_TYPE_BANNER @@ -48,6 +49,7 @@ class HomeFragment() : BaseFragment(featureR.layout.fragmen initAdapter() initSearchBtnListener() + initAlarmBtnListener() initSellBtnListener() setDeviceToken() setGridRecyclerView() @@ -102,6 +104,12 @@ class HomeFragment() : BaseFragment(featureR.layout.fragmen } } + private fun initAlarmBtnListener() { + binding.btnAlarm.setOnSingleClickListener { + startActivity(Intent(requireContext(), AlarmActivity::class.java)) + } + } + private fun initSellBtnListener() { binding.btnSell.setOnSingleClickListener { AmplitudeManager.trackEvent("click_home_sell") diff --git a/feature/main/src/main/res/layout/activity_alarm.xml b/feature/main/src/main/res/layout/activity_alarm.xml index 89328ee4..a9023cbc 100644 --- a/feature/main/src/main/res/layout/activity_alarm.xml +++ b/feature/main/src/main/res/layout/activity_alarm.xml @@ -26,8 +26,8 @@ android:id="@+id/tv_alarm_title" style="@style/TextAppearance.DDanzi.Body2" android:layout_width="wrap_content" + android:padding="20dp" android:layout_height="wrap_content" - android:layout_marginTop="12dp" android:text="@string/alarm_tv_title" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -37,11 +37,10 @@ android:id="@+id/border_alarm" android:layout_width="0dp" android:layout_height="7dp" - android:layout_marginTop="2dp" android:background="@color/background_gray" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/btn_back" /> + app:layout_constraintTop_toBottomOf="@id/tv_alarm_title" /> + + + + @@ -34,8 +46,9 @@ android:id="@+id/iv_home_logo" android:layout_width="76dp" android:layout_height="wrap_content" - android:layout_marginStart="26dp" + android:layout_marginStart="20dp" android:adjustViewBounds="true" + android:paddingVertical="20dp" android:src="@drawable/img_logo_text" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/feature/sell/src/main/java/co/orange/sell/confirm/SellConfirmActivity.kt b/feature/sell/src/main/java/co/orange/sell/confirm/SellConfirmActivity.kt index b748a2f3..ff7a7469 100644 --- a/feature/sell/src/main/java/co/orange/sell/confirm/SellConfirmActivity.kt +++ b/feature/sell/src/main/java/co/orange/sell/confirm/SellConfirmActivity.kt @@ -42,7 +42,7 @@ class SellConfirmActivity : initConfirmBtnListener() getIntentInfo() observeGetBuyerInfoState() - observePatchOrderConfirmResult() + observePatchOrderConfirmState() } private fun initBackBtnListener() { @@ -115,14 +115,17 @@ class SellConfirmActivity : clipboardManager.setPrimaryClip(ClipData.newPlainText(CLIP_LABEL, text)) } - private fun observePatchOrderConfirmResult() { - viewModel.patchOrderConfirmResult.flowWithLifecycle(lifecycle).distinctUntilChanged() - .onEach { isSuccess -> - if (isSuccess) { - toast(stringOf(R.string.sell_order_fix_msg)) - navigationManager.toMainViewWIthClearing(this) - } else { - toast(stringOf(R.string.error_msg)) + private fun observePatchOrderConfirmState() { + viewModel.patchOrderConfirmState.flowWithLifecycle(lifecycle).distinctUntilChanged() + .onEach { state -> + when (state) { + is UiState.Success -> { + toast(stringOf(R.string.sell_order_fix_msg)) + navigationManager.toMainViewWIthClearing(this) + } + + is UiState.Failure -> toast(stringOf(R.string.error_msg)) + else -> return@onEach } }.launchIn(lifecycleScope) } diff --git a/feature/sell/src/main/java/co/orange/sell/confirm/SellConfirmViewModel.kt b/feature/sell/src/main/java/co/orange/sell/confirm/SellConfirmViewModel.kt index ec702c79..d20afb38 100644 --- a/feature/sell/src/main/java/co/orange/sell/confirm/SellConfirmViewModel.kt +++ b/feature/sell/src/main/java/co/orange/sell/confirm/SellConfirmViewModel.kt @@ -7,9 +7,7 @@ import co.orange.domain.entity.response.SellBuyerInfoModel import co.orange.domain.enums.OrderStatus import co.orange.domain.repository.SellRepository import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch import javax.inject.Inject @@ -25,8 +23,8 @@ class SellConfirmViewModel private val _getBuyerInfoState = MutableStateFlow>(UiState.Empty) val getBuyerInfoState: StateFlow> = _getBuyerInfoState - private val _patchOrderConfirmResult = MutableSharedFlow() - val patchOrderConfirmResult: SharedFlow = _patchOrderConfirmResult + private val _patchOrderConfirmState = MutableStateFlow>(UiState.Empty) + val patchOrderConfirmState: StateFlow> = _patchOrderConfirmState fun getBuyerInfoFromServer() { _getBuyerInfoState.value = UiState.Loading @@ -44,14 +42,14 @@ class SellConfirmViewModel viewModelScope.launch { sellRepository.patchOrderConfirm(orderId) .onSuccess { - if (it.orderStatus == OrderStatus.COMPLETED.name) { - _patchOrderConfirmResult.emit(true) + if (it.orderStatus == OrderStatus.SHIPPING.name) { + _patchOrderConfirmState.value = UiState.Success(true) } else { - _patchOrderConfirmResult.emit(false) + _patchOrderConfirmState.value = UiState.Failure(it.orderStatus) } } .onFailure { - _patchOrderConfirmResult.emit(false) + _patchOrderConfirmState.value = UiState.Failure(it.message.orEmpty()) } } } diff --git a/feature/sell/src/main/java/co/orange/sell/finished/SellFinishedActivity.kt b/feature/sell/src/main/java/co/orange/sell/finished/SellFinishedActivity.kt index dc35cbf3..733b1d3f 100644 --- a/feature/sell/src/main/java/co/orange/sell/finished/SellFinishedActivity.kt +++ b/feature/sell/src/main/java/co/orange/sell/finished/SellFinishedActivity.kt @@ -34,10 +34,12 @@ class SellFinishedActivity : private fun initReturnBtnListener() { with(binding) { - btnExit.setOnSingleClickListener { navigationManager.toMainViewWIthClearing(this@SellFinishedActivity) } + btnExit.setOnSingleClickListener { + navigationManager.toMainViewWIthClearing(this@SellFinishedActivity) + } btnSellMore.setOnSingleClickListener { AmplitudeManager.trackEvent("click_sell_adjustment_add") - navigationManager.toMainViewWIthClearing(this@SellFinishedActivity) + finish() } } } diff --git a/feature/sell/src/main/java/co/orange/sell/info/SellInfoActivity.kt b/feature/sell/src/main/java/co/orange/sell/info/SellInfoActivity.kt index a0fe936b..42f62606 100644 --- a/feature/sell/src/main/java/co/orange/sell/info/SellInfoActivity.kt +++ b/feature/sell/src/main/java/co/orange/sell/info/SellInfoActivity.kt @@ -100,14 +100,20 @@ class SellInfoActivity : val (infoMsgResId, btnTextResId, isButtonEnabled) = when (status) { ItemStatus.ON_SALE.name -> { - Triple(R.string.sell_info_msg_on_sale, R.string.sell_info_btn_fix, false) + Triple(R.string.sell_info_msg_on_sale, R.string.sell_info_msg_on_sale, false) } ItemStatus.ORDERED.name -> { Triple(R.string.sell_info_msg_ordered, R.string.sell_info_btn_fix, true) } - ItemStatus.SHIPPING.name -> { + in + listOf( + ItemStatus.SHIPPING.name, + ItemStatus.DELAYED_SHIPPING.name, + ItemStatus.WARNING.name, + ), + -> { Triple(R.string.buy_info_msg_shipping, R.string.sell_info_btn_shipping, false) } diff --git a/feature/sell/src/main/res/layout/activity_sell_confirm.xml b/feature/sell/src/main/res/layout/activity_sell_confirm.xml index 18fbbad2..8f222cbd 100644 --- a/feature/sell/src/main/res/layout/activity_sell_confirm.xml +++ b/feature/sell/src/main/res/layout/activity_sell_confirm.xml @@ -35,8 +35,7 @@ style="@style/TextAppearance.DDanzi.Body2" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="12dp" - android:layout_marginBottom="19dp" + android:padding="20dp" android:text="@string/sell_confirm_tv_title" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/feature/sell/src/main/res/layout/activity_sell_finished.xml b/feature/sell/src/main/res/layout/activity_sell_finished.xml index c40957ac..4077dea2 100644 --- a/feature/sell/src/main/res/layout/activity_sell_finished.xml +++ b/feature/sell/src/main/res/layout/activity_sell_finished.xml @@ -24,8 +24,7 @@ style="@style/TextAppearance.DDanzi.Body2" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="12dp" - android:layout_marginBottom="24dp" + android:padding="20dp" android:text="@string/sell_finished_tv_title" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/feature/sell/src/main/res/layout/activity_sell_info.xml b/feature/sell/src/main/res/layout/activity_sell_info.xml index df6608d9..f9ae852a 100644 --- a/feature/sell/src/main/res/layout/activity_sell_info.xml +++ b/feature/sell/src/main/res/layout/activity_sell_info.xml @@ -24,8 +24,7 @@ style="@style/TextAppearance.DDanzi.Body2" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="12dp" - android:layout_marginBottom="19dp" + android:padding="20dp" android:text="@string/sell_info_tv_title" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" @@ -87,7 +86,7 @@ style="@style/TextAppearance.DDanzi.Body4" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginHorizontal="20dp" + android:layout_marginHorizontal="10dp" android:gravity="center" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/feature/sell/src/main/res/layout/activity_sell_onboarding.xml b/feature/sell/src/main/res/layout/activity_sell_onboarding.xml index edc582e5..9674bc32 100644 --- a/feature/sell/src/main/res/layout/activity_sell_onboarding.xml +++ b/feature/sell/src/main/res/layout/activity_sell_onboarding.xml @@ -24,8 +24,7 @@ style="@style/TextAppearance.DDanzi.Body2" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="12dp" - android:layout_marginBottom="24dp" + android:padding="20dp" android:text="@string/confirm_tv_sell_title" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/feature/sell/src/main/res/layout/activity_sell_progress.xml b/feature/sell/src/main/res/layout/activity_sell_progress.xml index 7fbe0241..24e528a0 100644 --- a/feature/sell/src/main/res/layout/activity_sell_progress.xml +++ b/feature/sell/src/main/res/layout/activity_sell_progress.xml @@ -31,8 +31,7 @@ style="@style/TextAppearance.DDanzi.Body2" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="12dp" - android:layout_marginBottom="24dp" + android:padding="20dp" android:text="@string/confirm_tv_sell_title" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/feature/sell/src/main/res/layout/dialog_sell_product.xml b/feature/sell/src/main/res/layout/dialog_sell_product.xml index f777eba5..3ac3b263 100644 --- a/feature/sell/src/main/res/layout/dialog_sell_product.xml +++ b/feature/sell/src/main/res/layout/dialog_sell_product.xml @@ -60,6 +60,7 @@ style="@style/TextAppearance.DDanzi.Body2" android:layout_width="0dp" android:layout_height="wrap_content" + android:gravity="center" android:layout_marginHorizontal="20dp" android:layout_marginTop="45dp" android:ellipsize="end" diff --git a/feature/setting/src/main/java/co/orange/setting/bank/BankActivity.kt b/feature/setting/src/main/java/co/orange/setting/bank/BankActivity.kt index 4dbdc7b0..8034f2f7 100644 --- a/feature/setting/src/main/java/co/orange/setting/bank/BankActivity.kt +++ b/feature/setting/src/main/java/co/orange/setting/bank/BankActivity.kt @@ -54,7 +54,7 @@ class BankActivity : BaseActivity(featureR.layout.activity_ } private fun navigateToAddBankView(accountId: Long) { - startActivity(BankAddActivity.createIntent(this, accountId)) + startActivity(BankAddActivity.createIntent(this, accountId, viewModel.ownerName)) } private fun observeUserBankState() { diff --git a/feature/setting/src/main/java/co/orange/setting/bank/BankViewModel.kt b/feature/setting/src/main/java/co/orange/setting/bank/BankViewModel.kt index 0419460f..ddd02c2b 100644 --- a/feature/setting/src/main/java/co/orange/setting/bank/BankViewModel.kt +++ b/feature/setting/src/main/java/co/orange/setting/bank/BankViewModel.kt @@ -18,6 +18,7 @@ class BankViewModel private val settingRepository: SettingRepository, ) : ViewModel() { var accountId: Long = -1 + var ownerName: String = "" private val _getUserBankState = MutableStateFlow>(UiState.Empty) val getUserBankState: StateFlow> = _getUserBankState @@ -25,9 +26,10 @@ class BankViewModel fun getUserBankFromServer() { viewModelScope.launch { settingRepository.getUserBank() - .onSuccess { - it.accountId?.let { accountId = it } - _getUserBankState.value = UiState.Success(it) + .onSuccess { response -> + response.accountId?.let { accountId = it } + response.name?.let { ownerName = it } + _getUserBankState.value = UiState.Success(response) } .onFailure { _getUserBankState.value = UiState.Failure(it.message.orEmpty()) diff --git a/feature/setting/src/main/java/co/orange/setting/bank/add/BankAddActivity.kt b/feature/setting/src/main/java/co/orange/setting/bank/add/BankAddActivity.kt index 1144ccb6..8304896a 100644 --- a/feature/setting/src/main/java/co/orange/setting/bank/add/BankAddActivity.kt +++ b/feature/setting/src/main/java/co/orange/setting/bank/add/BankAddActivity.kt @@ -9,6 +9,7 @@ import androidx.lifecycle.lifecycleScope import co.orange.core.R import co.orange.core.amplitude.AmplitudeManager import co.orange.core.base.BaseActivity +import co.orange.core.extension.maskName import co.orange.core.extension.setOnSingleClickListener import co.orange.core.extension.stringOf import co.orange.core.extension.toast @@ -33,6 +34,7 @@ class BankAddActivity : BaseActivity(featureR.layout.act initBackBtnListener() initBankTypeListener() initConfirmBtnListener() + getIntentFromPreviousView() observeAddressResult() } @@ -48,17 +50,26 @@ class BankAddActivity : BaseActivity(featureR.layout.act } private fun initConfirmBtnListener() { - AmplitudeManager.trackEvent("click_account_next") - val accountId = intent.getLongExtra(EXTRA_ACCOUNT_ID, -1) binding.btnConfirm.setOnSingleClickListener { - if (accountId == DEFAULT_ID) { - viewModel.postToAddBankToServer() - } else { - viewModel.putToModBankToServer(accountId) + AmplitudeManager.trackEvent("click_account_next") + with(viewModel) { + if (accountId == DEFAULT_ID) { + postToAddBankToServer() + } else { + putToModBankToServer(accountId) + } } } } + private fun getIntentFromPreviousView() { + with(viewModel) { + accountId = intent.getLongExtra(EXTRA_ACCOUNT_ID, -1) + ownerName = intent.getStringExtra(EXTRA_OWNER_NAME).orEmpty() + maskedName.value = ownerName.takeIf { it.isNotEmpty() }?.maskName() + } + } + private fun observeAddressResult() { viewModel.setBankResult.flowWithLifecycle(lifecycle).distinctUntilChanged() .onEach { isSuccess -> @@ -73,6 +84,7 @@ class BankAddActivity : BaseActivity(featureR.layout.act override fun onDestroy() { super.onDestroy() + bankTypeBottomSheet = null } @@ -81,14 +93,17 @@ class BankAddActivity : BaseActivity(featureR.layout.act private const val BOTTOM_SHEET_BANK_TYPE = "BOTTOM_SHEET_BANK_TYPE" private const val EXTRA_ACCOUNT_ID = "EXTRA_ACCOUNT_ID" + private const val EXTRA_OWNER_NAME = "EXTRA_OWNER_NAME" @JvmStatic fun createIntent( context: Context, accountId: Long, + ownerName: String, ): Intent = Intent(context, BankAddActivity::class.java).apply { putExtra(EXTRA_ACCOUNT_ID, accountId) + putExtra(EXTRA_OWNER_NAME, ownerName) } } } diff --git a/feature/setting/src/main/java/co/orange/setting/bank/add/BankAddViewModel.kt b/feature/setting/src/main/java/co/orange/setting/bank/add/BankAddViewModel.kt index bfee17ac..da7fc08a 100644 --- a/feature/setting/src/main/java/co/orange/setting/bank/add/BankAddViewModel.kt +++ b/feature/setting/src/main/java/co/orange/setting/bank/add/BankAddViewModel.kt @@ -3,10 +3,8 @@ package co.orange.setting.bank.add import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import co.orange.core.extension.maskName import co.orange.domain.entity.request.BankRequestModel import co.orange.domain.repository.SettingRepository -import co.orange.domain.repository.UserRepository import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.SharedFlow @@ -18,8 +16,9 @@ class BankAddViewModel @Inject constructor( private val settingRepository: SettingRepository, - private val userRepository: UserRepository, ) : ViewModel() { + var accountId: Long = -1 + var ownerName = "" var maskedName = MutableLiveData() @@ -33,15 +32,6 @@ class BankAddViewModel private val _setBankResult = MutableSharedFlow() val setBankResult: SharedFlow = _setBankResult - init { - getUserName() - } - - private fun getUserName() { - ownerName = userRepository.getUserName() - maskedName.value = ownerName.takeIf { it.isNotEmpty() }?.maskName() ?: return - } - fun checkIsCompleted() { isCompleted.value = (!maskedName.value.isNullOrEmpty() && bankCode.isNotEmpty() && !accountNumber.value.isNullOrEmpty()) diff --git a/feature/setting/src/main/java/co/orange/setting/history/HistoryActivity.kt b/feature/setting/src/main/java/co/orange/setting/history/HistoryActivity.kt index 0d4a58c0..a7a7a6e0 100644 --- a/feature/setting/src/main/java/co/orange/setting/history/HistoryActivity.kt +++ b/feature/setting/src/main/java/co/orange/setting/history/HistoryActivity.kt @@ -67,7 +67,7 @@ class HistoryActivity : BaseActivity(featureR.layout.act private fun initAdapter() { _buyAdapter = HistoryBuyAdapter { orderId -> - navigationManager.toBuyFinishedView(this, orderId) + navigationManager.toBuyInfoView(this, orderId) } _sellAdapter = HistorySellAdapter { itemId -> diff --git a/feature/setting/src/main/java/co/orange/setting/history/order/HistoryBuyViewHolder.kt b/feature/setting/src/main/java/co/orange/setting/history/order/HistoryBuyViewHolder.kt index 3e766bfc..16919690 100644 --- a/feature/setting/src/main/java/co/orange/setting/history/order/HistoryBuyViewHolder.kt +++ b/feature/setting/src/main/java/co/orange/setting/history/order/HistoryBuyViewHolder.kt @@ -3,6 +3,7 @@ package co.orange.setting.history.order import android.graphics.Paint import androidx.recyclerview.widget.RecyclerView import co.orange.core.extension.breakLines +import co.orange.core.extension.convertDateTime import co.orange.core.extension.setOnSingleClickListener import co.orange.core.extension.setPriceForm import co.orange.domain.entity.response.HistoryBuyModel.OrderProductModel @@ -23,10 +24,20 @@ class HistoryBuyViewHolder( paintFlags = Paint.STRIKE_THRU_TEXT_FLAG } tvBuyItemNowPrice.text = item.salePrice.setPriceForm() + tvBuyItemDate.text = + item.paidAt.convertDateTime( + OLD_DATE_PATTERN, + NEW_DATE_PATTERN, + ) root.setOnSingleClickListener { itemClick(item.orderId) } } } + + companion object { + const val OLD_DATE_PATTERN = "yyyy-MM-dd'T'HH:mm:ss" + const val NEW_DATE_PATTERN = "yyyy년 MM월 dd일 구매" + } } diff --git a/feature/setting/src/main/res/layout/activity_account.xml b/feature/setting/src/main/res/layout/activity_account.xml index b59d42f2..139540af 100644 --- a/feature/setting/src/main/res/layout/activity_account.xml +++ b/feature/setting/src/main/res/layout/activity_account.xml @@ -15,8 +15,8 @@ android:id="@+id/btn_back" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginTop="4dp" android:layout_marginStart="8dp" - android:layout_marginTop="1dp" android:padding="12dp" android:src="@drawable/ic_back" app:layout_constraintStart_toStartOf="parent" diff --git a/feature/setting/src/main/res/layout/activity_history.xml b/feature/setting/src/main/res/layout/activity_history.xml index 6a43049c..82339dcb 100644 --- a/feature/setting/src/main/res/layout/activity_history.xml +++ b/feature/setting/src/main/res/layout/activity_history.xml @@ -35,8 +35,7 @@ style="@style/TextAppearance.DDanzi.Body2" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="12dp" - android:layout_marginBottom="19dp" + android:padding="20dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/feature/setting/src/main/res/layout/activity_setting.xml b/feature/setting/src/main/res/layout/activity_setting.xml index 4b6e8942..1315df68 100644 --- a/feature/setting/src/main/res/layout/activity_setting.xml +++ b/feature/setting/src/main/res/layout/activity_setting.xml @@ -35,8 +35,7 @@ style="@style/TextAppearance.DDanzi.Body2" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="12dp" - android:layout_marginBottom="19dp" + android:padding="20dp" android:text="@string/setting_tv_title" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/feature/setting/src/main/res/layout/item_history_buy.xml b/feature/setting/src/main/res/layout/item_history_buy.xml index 81a76ef8..c45392b0 100644 --- a/feature/setting/src/main/res/layout/item_history_buy.xml +++ b/feature/setting/src/main/res/layout/item_history_buy.xml @@ -18,6 +18,7 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginTop="14dp" + app:cardCornerRadius="10dp" app:cardElevation="0dp" app:layout_constraintDimensionRatio="1" app:layout_constraintEnd_toEndOf="parent"