Skip to content

Commit

Permalink
feat: 공모 참여 시 프로그래스 바 보이도록 구현 (#627)
Browse files Browse the repository at this point in the history
* fix: 공모 참여 후 홈화면에서 상태가 바뀌지 않는 오류 수정

* refactor: ProgressBar색상 mainColor로 변경

* refactor: loading 상태 네이밍 변경

* feat: 공모 참여 시 프로그래스 바 보이는 기능 구현
  • Loading branch information
Namyunsuk authored and fromitive committed Nov 28, 2024
1 parent 3d5aeb9 commit 9e9c252
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -118,11 +118,13 @@ class HomeFragment : Fragment(), OnOfferingClickListener {

private fun initFragmentResultListener() {
setFragmentResultListener(OfferingDetailFragment.OFFERING_DETAIL_BUNDLE_KEY) { _, bundle ->
viewModel.fetchUpdatedOffering(bundle.getLong(OfferingDetailFragment.UPDATED_OFFERING_ID_KEY))
}
if (bundle.containsKey(OfferingDetailFragment.UPDATED_OFFERING_ID_KEY)) {
viewModel.fetchUpdatedOffering(bundle.getLong(OfferingDetailFragment.UPDATED_OFFERING_ID_KEY))
}

setFragmentResultListener(OfferingDetailFragment.OFFERING_DETAIL_BUNDLE_KEY) { _, bundle ->
viewModel.refreshOfferings(bundle.getBoolean(OfferingDetailFragment.DELETED_OFFERING_ID_KEY))
if (bundle.containsKey(OfferingDetailFragment.DELETED_OFFERING_ID_KEY)) {
viewModel.refreshOfferings(bundle.getBoolean(OfferingDetailFragment.DELETED_OFFERING_ID_KEY))
}
}

setFragmentResultListener(OfferingWriteOptionalFragment.OFFERING_WRITE_BUNDLE_KEY) { _, bundle ->
Expand Down Expand Up @@ -221,7 +223,8 @@ class HomeFragment : Fragment(), OnOfferingClickListener {
viewModel.updatedOffering.observe(viewLifecycleOwner) {
offeringAdapter.addUpdatedItem(it.toList())
}
viewModel.updatedOffering.getValue()?.toList()?.let { offeringAdapter.addUpdatedItem(it) }
viewModel.updatedOffering.getValue()?.toList()
?.let { offeringAdapter.addUpdatedItem(it) }

viewModel.refreshTokenExpiredEvent.observe(viewLifecycleOwner) {
LoginActivity.startActivity(requireContext())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ class OfferingDetailFragment : Fragment(), OnOfferingDeleteAlertClickListener {
dialog.dismiss()
}

viewModel.loading.observe(viewLifecycleOwner) {
viewModel.isOfferingDetailLoading.observe(viewLifecycleOwner) {
startShimmer(it)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,16 +95,19 @@ class OfferingDetailViewModel
private val _alertCancelEvent = MutableSingleLiveData<Unit>()
val alertCancelEvent: SingleLiveData<Unit> get() = _alertCancelEvent

private val _loading: MutableLiveData<Boolean> = MutableLiveData(false)
val loading: LiveData<Boolean> get() = _loading
private val _isOfferingDetailLoading: MutableLiveData<Boolean> = MutableLiveData(false)
val isOfferingDetailLoading: LiveData<Boolean> get() = _isOfferingDetailLoading

private val _isParticipationLoading: MutableLiveData<Boolean> = MutableLiveData(false)
val isParticipationLoading: LiveData<Boolean> get() = _isParticipationLoading

init {
loadOffering()
}

fun loadOffering() {
viewModelScope.launch {
_loading.value = true
_isOfferingDetailLoading.value = true
when (val result = offeringDetailRepository.fetchOfferingDetail(offeringId)) {
is Result.Error ->
when (result.error) {
Expand All @@ -115,7 +118,7 @@ class OfferingDetailViewModel
}

is Result.Error -> {
_loading.value = false
_isOfferingDetailLoading.value = false
userPreferencesDataStore.removeAllData()
_refreshTokenExpiredEvent.setValue(Unit)
return@launch
Expand All @@ -133,7 +136,7 @@ class OfferingDetailViewModel
}

is Result.Success -> {
_loading.value = false
_isOfferingDetailLoading.value = false
_offeringDetail.value = result.data
_currentCount.value = result.data.currentCount.value
_offeringCondition.value = result.data.condition
Expand All @@ -148,6 +151,7 @@ class OfferingDetailViewModel

override fun participate() {
viewModelScope.launch {
_isParticipationLoading.value = true
when (val result = offeringDetailRepository.saveParticipation(offeringId)) {
is Result.Error ->
when (result.error) {
Expand All @@ -172,6 +176,7 @@ class OfferingDetailViewModel
}

is Result.Success -> {
_isParticipationLoading.value = false
_isParticipated.value = true
_commentDetailEvent.setValue(offeringDetail.value?.title ?: DEFAULT_TITLE)
_updatedOfferingId.value = offeringId
Expand Down Expand Up @@ -260,6 +265,7 @@ class OfferingDetailViewModel
}

override fun onClickConfirm() {
_alertCancelEvent.setValue(Unit)
participate()
}

Expand Down
1 change: 1 addition & 0 deletions android/app/src/main/res/layout/fragment_home.xml
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@
android:id="@+id/pb_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateTint="@color/main_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
Expand Down
19 changes: 15 additions & 4 deletions android/app/src/main/res/layout/fragment_offering_detail.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
android:layout_height="0dp"
android:overScrollMode="never"
android:scrollbars="none"
app:isVisible="@{!vm.loading}"
app:isVisible="@{!vm.isOfferingDetailLoading}"
app:layout_constraintBottom_toTopOf="@id/btn_participate"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
Expand Down Expand Up @@ -363,7 +363,7 @@
app:condition="@{vm.offeringCondition}"
app:currentCount="@{vm.currentCount}"
app:debouncedOnClick="@{() -> vm.onParticipateClick()}"
app:isVisible="@{!vm.isParticipated &amp;&amp; !vm.loading}"
app:isVisible="@{!vm.isParticipated &amp;&amp; !vm.isOfferingDetailLoading}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
Expand All @@ -383,7 +383,7 @@
android:text="@string/offering_detail_move_comment_detail"
android:textColor="@color/white"
app:debouncedOnClick="@{() -> vm.onClickMoveCommentDetail()}"
app:isVisible="@{vm.isParticipated &amp;&amp; !vm.loading}"
app:isVisible="@{vm.isParticipated &amp;&amp; !vm.isOfferingDetailLoading}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
Expand All @@ -393,13 +393,24 @@
android:id="@+id/sfl_offering_detail"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:isVisible="@{vm.loading}"
app:isVisible="@{vm.isOfferingDetailLoading}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

<include layout="@layout/fragment_offering_detail_shimmer" />

</com.facebook.shimmer.ShimmerFrameLayout>

<ProgressBar
android:id="@+id/pb_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateTint="@color/main_color"
app:isVisible="@{vm.isParticipationLoading}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@
android:id="@+id/progressBar"
android:layout_width="@dimen/size_20"
android:layout_height="@dimen/size_20"
android:indeterminateTint="@color/main_color"
app:isVisible="@{vm.isLoading}"
app:layout_constraintBottom_toBottomOf="@+id/iv_upload_photo"
app:layout_constraintEnd_toEndOf="@+id/iv_upload_photo"
Expand Down Expand Up @@ -271,8 +272,8 @@
android:text="@string/modify_submit"
android:textColor="@color/white"
android:textSize="@dimen/size_16"
app:debouncedOnClick="@{() -> vm.postOfferingModify()}"
app:debounceTime="@{1200L}"
app:debouncedOnClick="@{() -> vm.postOfferingModify()}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
Expand All @@ -282,4 +283,4 @@

</androidx.constraintlayout.widget.ConstraintLayout>

</layout>
</layout>

0 comments on commit 9e9c252

Please sign in to comment.