Skip to content

Commit

Permalink
[refactor] #287 필터 재설정 기능 - keyword 부분 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
Haeeul committed Jan 2, 2024
1 parent 0cbb4b4 commit c879239
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,28 @@ class FilterFragment : Fragment() {
initView()
}

override fun onAttach(context: Context) {
super.onAttach(context)

onBackPressedCallback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
closeSelfWithAnimation()
}
}
requireActivity().onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
}

override fun onResume() {
super.onResume()

firebaseAnalytics.setPageViewEvent("Filter", this::class.java.name)
}

override fun onDetach() {
super.onDetach()
onBackPressedCallback.remove()
}

override fun onDestroyView() {
super.onDestroyView()
_binding = null
Expand Down Expand Up @@ -97,11 +119,7 @@ class FilterFragment : Fragment() {
text = "적용"
isEnabled = false
}
seriesViewModel.clearSelectedList()
brandViewModel.resetSelectedBrandList()
val fragment = filterViewPagerAdapter.getItem(1) as FilterBrandFragment
fragment.resetBrandList()
keywordViewModel.clearSelectedList()
resetFilter()
}
}

Expand All @@ -111,26 +129,15 @@ class FilterFragment : Fragment() {
}
}

override fun onAttach(context: Context) {
super.onAttach(context)

onBackPressedCallback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
closeSelfWithAnimation()
}
}
requireActivity().onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
}

override fun onResume() {
super.onResume()

firebaseAnalytics.setPageViewEvent("Filter", this::class.java.name)
}
private fun resetFilter(){
seriesViewModel.clearSelectedList()
brandViewModel.resetSelectedBrandList()
keywordViewModel.resetSelectedKeywordList()

override fun onDetach() {
super.onDetach()
onBackPressedCallback.remove()
val brandFragment = filterViewPagerAdapter.getItem(1) as FilterBrandFragment
brandFragment.resetBrandList()
val keywordFragment = filterViewPagerAdapter.getItem(2) as FilterKeywordFragment
keywordFragment.resetKeywordList()
}

private fun initViewPager() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,6 @@ class FilterBrandFragment : Fragment() {
}

fun resetBrandList(){
// updateContents(binding.tabBrand.getTabAt(binding.tabBrand.selectedTabPosition))
brandAdapter.notifyDataSetChanged()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,11 @@ import com.scentsnote.android.viewmodel.filter.FilterKeywordViewModel
* 키워드 리스트 제공
*/
class FilterKeywordFragment : Fragment() {
private lateinit var binding: FragmentFilterKeywordBinding
private val viewModel: FilterKeywordViewModel by activityViewModels()

private lateinit var binding: FragmentFilterKeywordBinding
private lateinit var keywordAdapter: FlexboxRecyclerViewAdapter

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
Expand Down Expand Up @@ -64,7 +66,7 @@ class FilterKeywordFragment : Fragment() {
alignItems = AlignItems.STRETCH
}

val keywordAdapter = FlexboxRecyclerViewAdapter(
keywordAdapter = FlexboxRecyclerViewAdapter(
select = { info, selected -> viewModel.selectKeywordList(info, selected) },
isOverSelectLimit = { viewModel.isOverSelectLimit() }
)
Expand All @@ -88,4 +90,8 @@ class FilterKeywordFragment : Fragment() {
// TODO remove
}

fun resetKeywordList(){
keywordAdapter.notifyDataSetChanged()
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,9 @@ internal fun MutableList<KeywordInfo>.removeKeyword(keywordInfo: KeywordInfo) {
keyword?.checked = false
this.remove(keyword)
}

internal fun MutableList<KeywordInfo>.resetKeyword(){
this.forEach {
it.checked = false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import com.scentsnote.android.data.vo.request.FilterInfoP
import com.scentsnote.android.data.vo.request.FilterType
import com.scentsnote.android.data.vo.response.KeywordInfo
import com.scentsnote.android.utils.extension.removeKeyword
import com.scentsnote.android.utils.extension.resetBrand
import com.scentsnote.android.utils.extension.resetKeyword
import kotlinx.coroutines.launch
import retrofit2.HttpException

Expand Down Expand Up @@ -68,6 +70,11 @@ class FilterKeywordViewModel(
_selectedCount.value = selectedKeywordList.size
}

fun resetSelectedKeywordList(){
selectedKeywordList.resetKeyword()
clearSelectedList()
}

companion object {
private const val MAX_COUNT = 5
}
Expand Down

0 comments on commit c879239

Please sign in to comment.