@@ -16,6 +16,7 @@ import com.hyeeyoung.wishboard.presentation.folder.FolderListAdapter
1616import com.hyeeyoung.wishboard.presentation.folder.types.FolderListViewType
1717import com.hyeeyoung.wishboard.presentation.noti.types.NotiType
1818import com.hyeeyoung.wishboard.util.ContentUriRequestBody
19+ import com.hyeeyoung.wishboard.util.extension.addSourceList
1920import com.hyeeyoung.wishboard.util.extension.toPlainNullableRequestBody
2021import com.hyeeyoung.wishboard.util.extension.toPlainRequestBody
2122import com.hyeeyoung.wishboard.util.getBitmapFromURL
@@ -81,18 +82,27 @@ class WishItemRegistrationViewModel @Inject constructor(
8182 private val folderListSquareAdapter =
8283 FolderListAdapter (FolderListViewType .SQUARE_VIEW_TYPE )
8384
85+ val isEnabledUploadButton = MediatorLiveData <Boolean >().apply {
86+ addSourceList(itemName, itemPrice) { checkValidItemInfoInput() }
87+ }
88+
89+ private fun checkValidItemInfoInput (): Boolean {
90+ return ! (itemName.value.isNullOrBlank() || itemPrice.value.isNullOrBlank() || token == null )
91+ }
92+
8493 init {
8594 initEnabledSaveButton()
8695 fetchFolderList()
8796 }
8897
8998 /* * μ€νκ·Έλν λ©ννκ·Έ νμ±μ ν΅ν΄ μμ΄ν
μ 보 κ°μ Έμ€κΈ° */
90- suspend fun getWishItemInfo (url : String ) {
91- val result = wishRepository.getItemParsingInfo(url)
92- if (result?.first == null ) return
93- itemName.value = result.first!! .name
94- itemPrice.value = result.first!! .price.toString()
95- itemImage.value = result.first!! .image
99+ fun getWishItemInfo (url : String ) {
100+ viewModelScope.launch {
101+ val result = wishRepository.getItemParsingInfo(url)
102+ itemName.value = result?.first?.name
103+ itemPrice.value = if (result?.first?.price == null || result.first?.price == " 0" ) null else result.first?.price
104+ itemImage.value = result?.first?.image
105+ }
96106 }
97107
98108 suspend fun uploadWishItemByLinkSharing () {
@@ -207,7 +217,8 @@ class WishItemRegistrationViewModel @Inject constructor(
207217 private suspend fun updateWishItem (trimmedItemName : String ) { // TODO need refactoring, uploadWishItemByBasics()μ ν©μΉκΈ°
208218 // νμ±μΌλ‘ μμ΄ν
μ΄λ―Έμ§ λΆλ¬μ¨ κ²½μ° λΉνΈλ§΅μ΄λ―Έμ§λ‘ μ΄λ―Έμ§ νμΌ λ§λ€κΈ°
209219 val folderId: RequestBody ? =
210- (folderItem.value?.id ? : wishItemDetail?.folderId)?.toString()?.toPlainNullableRequestBody()
220+ (folderItem.value?.id ? : wishItemDetail?.folderId)?.toString()
221+ ?.toPlainNullableRequestBody()
211222 val itemName: RequestBody = trimmedItemName.toPlainRequestBody()
212223 val itemPrice: RequestBody ? = itemPrice.value?.replace(" ," , " " )?.toIntOrNull()?.toString()
213224 ?.toPlainNullableRequestBody()
@@ -291,9 +302,7 @@ class WishItemRegistrationViewModel @Inject constructor(
291302 if (! isValid) return
292303
293304 selectedGalleryImageUri.value = null // νμ±ν μ΄λ―Έμ§λ₯Ό μ μ©ν κ²μ΄κΈ° λλ¬Έμ κΈ°μ‘΄μ μ νλ μ΄λ―Έμ§λ₯Ό μ κ±°
294- viewModelScope.launch {
295- getWishItemInfo(url!! )
296- }
305+ getWishItemInfo(url!! )
297306 }
298307
299308 /* * url μ ν¨μ± κ²μ¦ */
@@ -437,7 +446,8 @@ class WishItemRegistrationViewModel @Inject constructor(
437446
438447 fun setSelectedGalleryImage (imageUri : Uri , imageFile : File ) {
439448 // κ°€λ¬λ¦¬ μ΄λ―Έμ§λ₯Ό μ μ©ν κ²μ΄κΈ° λλ¬Έμ κΈ°μ‘΄μ νμ±ν μ΄λ―Έμ§λ₯Ό μ κ±°
440- itemImage.value = null // TODO need refactoring, μμ΄ν
μ 보 νμ± ν κ°€λ¬λ¦¬μμ μ΄λ―Έμ§ μ ν νμ§ μμλ μ΄μ μ κ°€λ¬λ¦¬μμ μ΄λ―Έμ§λ₯Ό μ νν μ μ΄ μλ κ²½μ°, κ°€λ¬λ¦¬ μ΄λ―Έμ§κ° 보μ΄λ λ²κ·Έλ₯Ό λ°©μ§νκΈ° μν¨
449+ itemImage.value =
450+ null // TODO need refactoring, μμ΄ν
μ 보 νμ± ν κ°€λ¬λ¦¬μμ μ΄λ―Έμ§ μ ν νμ§ μμλ μ΄μ μ κ°€λ¬λ¦¬μμ μ΄λ―Έμ§λ₯Ό μ νν μ μ΄ μλ κ²½μ°, κ°€λ¬λ¦¬ μ΄λ―Έμ§κ° 보μ΄λ λ²κ·Έλ₯Ό λ°©μ§νκΈ° μν¨
441451 selectedGalleryImageUri.value = imageUri
442452 this .imageFile = imageFile
443453 }
0 commit comments