Skip to content

Commit

Permalink
Merge branch 'dev' into feat/#955
Browse files Browse the repository at this point in the history
  • Loading branch information
SeongHoonC committed May 11, 2024
2 parents 343710c + 15cc097 commit 32cb412
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 33 deletions.
4 changes: 2 additions & 2 deletions android/festago/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ android {
applicationId = "com.festago.festago"
minSdk = 28
targetSdk = 34
versionCode = 11
versionName = "2.0.2"
versionCode = 12
versionName = "2.0.3"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,6 @@ class FestivalListFragment : Fragment() {
val schoolRegions = SchoolRegion.values().map {
SchoolRegionUiState(it, it == this.schoolRegion)
}
val dialog = createRegionDialog(schoolRegions)

return mutableListOf<Any>().apply {
if (popularFestivalUiState.festivals.isNotEmpty()) {
Expand All @@ -172,10 +171,7 @@ class FestivalListFragment : Fragment() {
selectedRegion = schoolRegion,
onFilterSelected = { vm.loadFestivals(it, schoolRegion) },
) {
dialog.show(
parentFragmentManager,
RegionBottomSheetDialogFragment::class.java.name,
)
createRegionDialog(schoolRegions).show(parentFragmentManager, tag)
},
)
addAll(festivals)
Expand All @@ -201,17 +197,16 @@ class FestivalListFragment : Fragment() {

private fun FestivalListUiState.Success.createRegionDialog(
schoolRegions: List<SchoolRegionUiState>,
) = RegionBottomSheetDialogFragment.newInstance(
items = schoolRegions,
listener = object : RegionBottomSheetDialogFragment.OnRegionSelectListener {
override fun onRegionSelect(region: SchoolRegion) {
vm.loadFestivals(
festivalFilterUiState = festivalFilter,
schoolRegion = if (region == schoolRegion) null else region,
)
): RegionBottomSheetDialogFragment {
return RegionBottomSheetDialogFragment().apply {
items = schoolRegions
listener = object : RegionBottomSheetDialogFragment.OnRegionSelectListener {
override fun onRegionSelect(region: SchoolRegion) {
vm.loadFestivals(festivalFilter, region)
}
}
},
)
}
}

private fun showSearch() {
findNavController().navigate(actionFestivalListFragmentToSearchFragment())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,35 +8,38 @@ import com.festago.festago.domain.model.festival.SchoolRegion
import com.festago.festago.presentation.databinding.FragmentRegionBottomSheetBinding
import com.festago.festago.presentation.ui.home.festivallist.uistate.SchoolRegionUiState
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class RegionBottomSheetDialogFragment() : BottomSheetDialogFragment() {

private var _binding: FragmentRegionBottomSheetBinding? = null
private val binding: FragmentRegionBottomSheetBinding get() = _binding!!

private lateinit var listener: OnRegionSelectListener
private lateinit var items: List<SchoolRegionUiState>
var items: List<SchoolRegionUiState>? = null
var listener: OnRegionSelectListener? = null

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
super.onCreateView(inflater, container, savedInstanceState)
_binding = FragmentRegionBottomSheetBinding.inflate(inflater)
binding.lifecycleOwner = viewLifecycleOwner
return binding.root
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initView()
}

private fun initView() {
val schoolRegions = items ?: return
val onRegionSelectListener = listener ?: return

binding.rvRegionList.adapter = RegionAdapter(
items = items,
onRegionSelect = listener::onRegionSelect
items = schoolRegions,
onRegionSelect = onRegionSelectListener::onRegionSelect,
) { dismiss() }
}

Expand All @@ -48,14 +51,4 @@ class RegionBottomSheetDialogFragment() : BottomSheetDialogFragment() {
interface OnRegionSelectListener {
fun onRegionSelect(region: SchoolRegion)
}

companion object {
fun newInstance(
items: List<SchoolRegionUiState>,
listener: OnRegionSelectListener,
): RegionBottomSheetDialogFragment = RegionBottomSheetDialogFragment().apply {
this.listener = listener
this.items = items
}
}
}

0 comments on commit 32cb412

Please sign in to comment.