diff --git a/core/src/main/res/drawable/fi_info.xml b/core/src/main/res/drawable/fi_info.xml new file mode 100644 index 000000000..f158b1930 --- /dev/null +++ b/core/src/main/res/drawable/fi_info.xml @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/core/src/main/res/drawable/ic_copy.xml b/core/src/main/res/drawable/ic_copy.xml new file mode 100644 index 000000000..cf355af16 --- /dev/null +++ b/core/src/main/res/drawable/ic_copy.xml @@ -0,0 +1,9 @@ + + + diff --git a/data/src/main/java/in/koreatech/koin/data/mapper/StoreMapper.kt b/data/src/main/java/in/koreatech/koin/data/mapper/StoreMapper.kt index 9fd96c7a0..8afaca9e6 100644 --- a/data/src/main/java/in/koreatech/koin/data/mapper/StoreMapper.kt +++ b/data/src/main/java/in/koreatech/koin/data/mapper/StoreMapper.kt @@ -69,6 +69,8 @@ fun StoreItemWithMenusResponse.toStoreWithMenu(): StoreWithMenu = StoreWithMenu( deliveryPrice = deliveryPrice ?: 0, isCardOk = isCardOk ?: false, isBankOk = isBankOk ?: false, + updateAt = updateAt, + isEvent = isEvent ?: false, open = open?.filter { it.dayOfWeek == localDayOfWeekName }?.map { Store.OpenData( dayOfWeek = it.dayOfWeek, @@ -79,7 +81,9 @@ fun StoreItemWithMenusResponse.toStoreWithMenu(): StoreWithMenu = StoreWithMenu( }.orEmpty().getOrElse(0) {Store.OpenData(localDayOfWeekName, false, "00:00", "00,00")}, imageUrls = imageUrls ?: emptyList(), shopCategories = shopCategories?.map { it.toCategory() }.orEmpty(), - menuCategories = menuCategories?.map { it.toCategory() }.orEmpty() + menuCategories = menuCategories?.map { it.toCategory() }.orEmpty(), + bank = bank ?: null, + accountNumber = accountNumber ?: null ) fun StoreItemWithMenusResponse.CategoriesResponseDTO.toCategory() = StoreWithMenu.Category( diff --git a/data/src/main/java/in/koreatech/koin/data/response/store/StoreItemWithMenusResponse.kt b/data/src/main/java/in/koreatech/koin/data/response/store/StoreItemWithMenusResponse.kt index 7e5d3b38d..e33d416c4 100644 --- a/data/src/main/java/in/koreatech/koin/data/response/store/StoreItemWithMenusResponse.kt +++ b/data/src/main/java/in/koreatech/koin/data/response/store/StoreItemWithMenusResponse.kt @@ -14,8 +14,12 @@ data class StoreItemWithMenusResponse( @SerializedName("pay_bank") val isBankOk: Boolean?, @SerializedName("open") val open: List?, @SerializedName("image_urls") val imageUrls: ArrayList?, + @SerializedName("updated_at") val updateAt: String, + @SerializedName("is_event") val isEvent: Boolean?, @SerializedName("shop_categories") val shopCategories: List?, @SerializedName("menu_categories") val menuCategories: List?, + @SerializedName("bank") val bank: String, + @SerializedName("account_number") val accountNumber: String ) { data class CategoriesResponseDTO( @SerializedName("id") diff --git a/domain/src/main/java/in/koreatech/koin/domain/model/store/Store.kt b/domain/src/main/java/in/koreatech/koin/domain/model/store/Store.kt index a08531ce0..d059f44f6 100644 --- a/domain/src/main/java/in/koreatech/koin/domain/model/store/Store.kt +++ b/domain/src/main/java/in/koreatech/koin/domain/model/store/Store.kt @@ -16,7 +16,7 @@ data class Store( val isEvent: Boolean, val isOpen: Boolean, val open: OpenData, - val categoryIds: List, + val categoryIds: List ) { data class OpenData( val dayOfWeek: String, diff --git a/domain/src/main/java/in/koreatech/koin/domain/model/store/StoreWithMenu.kt b/domain/src/main/java/in/koreatech/koin/domain/model/store/StoreWithMenu.kt index 566333cd7..39737d563 100644 --- a/domain/src/main/java/in/koreatech/koin/domain/model/store/StoreWithMenu.kt +++ b/domain/src/main/java/in/koreatech/koin/domain/model/store/StoreWithMenu.kt @@ -12,8 +12,12 @@ data class StoreWithMenu( val isBankOk: Boolean, val open: Store.OpenData, val imageUrls: List?, + val updateAt: String, + val isEvent: Boolean?, val shopCategories: List?, val menuCategories: List?, + val bank: String?, + val accountNumber: String? ) { data class Category( val id: Int, diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1e009124d..1e39e9223 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -54,7 +54,6 @@ napier = "2.6.1" composeNumberPickerVersion = "1.0.3" powerSpinner = "1.2.7" firebaseCrashlyticsBuildtoolsVersion = "2.9.9" -composeNumberPickerVersion = "1.0.3" [libraries] androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "activityKtxVersion" } @@ -147,7 +146,6 @@ coil-svg = {module = "io.coil-kt:coil-svg", version.ref ="coilVersion"} compose-numberPicker = {module = "com.chargemap.compose:numberpicker", version.ref = "composeNumberPickerVersion"} powerSpinner = {module = "com.github.skydoves:powerspinner", version.ref = "powerSpinner"} -compose-numberPicker = {module = "com.chargemap.compose:numberpicker", version.ref = "composeNumberPickerVersion"} [plugins] android-application = { id = "com.android.application", version.ref = "androidGradleVersion" } diff --git a/koin/src/main/java/in/koreatech/koin/ui/store/activity/StoreDetailActivity.kt b/koin/src/main/java/in/koreatech/koin/ui/store/activity/StoreDetailActivity.kt index c910b5878..4db82f318 100644 --- a/koin/src/main/java/in/koreatech/koin/ui/store/activity/StoreDetailActivity.kt +++ b/koin/src/main/java/in/koreatech/koin/ui/store/activity/StoreDetailActivity.kt @@ -1,7 +1,10 @@ package `in`.koreatech.koin.ui.store.activity import android.Manifest +import android.content.ClipData +import android.content.ClipboardManager import android.os.Bundle +import android.util.Log import android.widget.TextView import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels @@ -123,6 +126,18 @@ class StoreDetailActivity : KoinNavigationDrawerActivity() { override fun onTabReselected(p0: TabLayout.Tab?) {} }) + binding.storeDetailAccountCopyButton.setOnClickListener { + + val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager + val clipData = ClipData.newPlainText( + getString(R.string.account_number), + binding.storeDetailAccountTextview.text + ) + clipboardManager.setPrimaryClip(clipData) + + ToastUtil.getInstance().makeShort(getString(R.string.store_account_copy)) + } + initViewModel() val storeId = intent.extras?.getInt(StoreDetailActivityContract.STORE_ID) if (storeId == null) { @@ -198,12 +213,23 @@ class StoreDetailActivity : KoinNavigationDrawerActivity() { storeDetailEtcTextview.text = it.description } + if(it.bank == null){ + storeDetailAccountTextview.isVisible = false + storeDetailConstAccountTextview.isVisible = false + storeDetailAccountCopyButton.isVisible = false + } + else{ + storeDetailAccountTextview.text = it.bank + " " + it.accountNumber + } + setEtcInfo(storeDetailIsCardTextview, it.isCardOk) //카드결제 setEtcInfo(storeDetailIsCardTextview, it.isCardOk) //계좌이체 setEtcInfo(storeDetailIsBankTextview, it.isBankOk) + updateInfoTv.text = getString(R.string.store_update_at, it.updateAt.replace("-", ".")) + binding.storeDetailImageview.apply { adapter = StoreDetailImageViewpagerAdapter(it.imageUrls) diff --git a/koin/src/main/res/layout/store_activity_detail.xml b/koin/src/main/res/layout/store_activity_detail.xml index 51c66f2eb..c2119b289 100644 --- a/koin/src/main/res/layout/store_activity_detail.xml +++ b/koin/src/main/res/layout/store_activity_detail.xml @@ -248,6 +248,53 @@ app:barrierDirection="bottom" app:constraint_referenced_ids="store_detail_const_deliver_textview, store_detail_deliver_textview" /> + + + + + + + + + app:layout_constraintTop_toBottomOf="@+id/barrier_account" /> + + + + %1$s에서 %1$s는 준비 중 입니다. %1$s은 준비 중 입니다. + %1$s 업데이트 + 계좌번호 복사 완료! + 필수 업데이트가 있습니다.\n업데이트 하시겠습니까? @@ -434,6 +437,7 @@ 운영시간 주소정보 배달금액 + 계좌번호 기타정보 #배달가능 #카드가능