Skip to content

Commit 2af5cf6

Browse files
authored
DialogFragment 생성 시 매개변수 삭제 (#151)
* ImageBottomDialog가 리스너를 받도록 수정 * FilterDialogFragment에 newInstance 추가 * lint
1 parent 35d3100 commit 2af5cf6

File tree

4 files changed

+39
-23
lines changed

4 files changed

+39
-23
lines changed

app/src/main/java/com/wafflestudio/siksha2/ui/common/ImageBottomDialog.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,15 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment
1111
import com.wafflestudio.siksha2.R
1212
import com.wafflestudio.siksha2.databinding.DialogProfileImageBinding
1313

14-
class ImageBottomDialog(
15-
private val onGallerySelected: () -> Unit,
16-
private val onDefaultImageSelected: () -> Unit
17-
) : BottomSheetDialogFragment() {
14+
class ImageBottomDialog : BottomSheetDialogFragment() {
15+
16+
interface Listener {
17+
fun onGallerySelected()
18+
fun onDefaultImageSelected()
19+
}
20+
21+
private val listener: Listener?
22+
get() = parentFragment as? Listener ?: activity as? Listener
1823

1924
override fun onCreateView(
2025
inflater: LayoutInflater,
@@ -24,12 +29,12 @@ class ImageBottomDialog(
2429
val binding = DialogProfileImageBinding.inflate(inflater, container, false)
2530

2631
binding.albumRow.setOnClickListener {
27-
onGallerySelected()
32+
listener?.onGallerySelected()
2833
dismiss()
2934
}
3035

3136
binding.defaultImageRow.setOnClickListener {
32-
onDefaultImageSelected()
37+
listener?.onDefaultImageSelected()
3338
dismiss()
3439
}
3540

app/src/main/java/com/wafflestudio/siksha2/ui/main/restaurant/DailyRestaurantFragment.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -341,12 +341,12 @@ class DailyRestaurantFragment : Fragment() {
341341
}
342342

343343
binding.menuFilter.setOnClickListener {
344-
val filterDialog = FilterDialogFragment(FilterMode.FULL)
344+
val filterDialog = FilterDialogFragment.newInstance(FilterMode.FULL)
345345
filterDialog.show(parentFragmentManager, "FilterDialog")
346346
}
347347

348348
binding.filterDistance.setOnClickListener {
349-
val filterDialog = FilterDialogFragment(FilterMode.DISTANCE)
349+
val filterDialog = FilterDialogFragment.newInstance(FilterMode.DISTANCE)
350350
filterDialog.show(parentFragmentManager, "FilterDialog")
351351

352352
val permission = Manifest.permission.ACCESS_FINE_LOCATION
@@ -356,17 +356,17 @@ class DailyRestaurantFragment : Fragment() {
356356
ContextCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED
357357
) {
358358
requestPermission {
359-
val filterDialog = FilterDialogFragment(FilterMode.DISTANCE)
359+
val filterDialog = FilterDialogFragment.newInstance(FilterMode.DISTANCE)
360360
filterDialog.show(parentFragmentManager, "FilterDialog")
361361
}
362362
} else {
363-
val filterDialog = FilterDialogFragment(FilterMode.DISTANCE)
363+
val filterDialog = FilterDialogFragment.newInstance(FilterMode.DISTANCE)
364364
filterDialog.show(parentFragmentManager, "FilterDialog")
365365
}
366366
}
367367

368368
binding.filterPrice.setOnClickListener {
369-
val filterDialog = FilterDialogFragment(FilterMode.PRICE)
369+
val filterDialog = FilterDialogFragment.newInstance(FilterMode.PRICE)
370370
filterDialog.show(parentFragmentManager, "FilterDialog")
371371
}
372372

@@ -379,12 +379,12 @@ class DailyRestaurantFragment : Fragment() {
379379
}
380380

381381
binding.filterRating.setOnClickListener {
382-
val filterDialog = FilterDialogFragment(FilterMode.RATING)
382+
val filterDialog = FilterDialogFragment.newInstance(FilterMode.RATING)
383383
filterDialog.show(parentFragmentManager, "FilterDialog")
384384
}
385385

386386
binding.filterCategory.setOnClickListener {
387-
val filterDialog = FilterDialogFragment(FilterMode.CATEGORY)
387+
val filterDialog = FilterDialogFragment.newInstance(FilterMode.CATEGORY)
388388
filterDialog.show(parentFragmentManager, "FilterDialog")
389389
}
390390

app/src/main/java/com/wafflestudio/siksha2/ui/main/restaurant/FilterDialogFragment.kt

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,23 @@ import java.util.Locale
3535
import javax.inject.Inject
3636

3737
@AndroidEntryPoint
38-
class FilterDialogFragment(
39-
private val mode: FilterMode
40-
) : DialogFragment() {
38+
class FilterDialogFragment() : DialogFragment() {
39+
companion object {
40+
private const val DEFAULT_MODE = "FULL"
41+
42+
fun newInstance(type: FilterMode): FilterDialogFragment {
43+
return FilterDialogFragment().apply {
44+
arguments = Bundle().apply {
45+
putString(DEFAULT_MODE, type.name)
46+
}
47+
}
48+
}
49+
}
50+
51+
private val mode: FilterMode by lazy {
52+
enumValueOf(requireArguments().getString(DEFAULT_MODE)!!)
53+
}
54+
4155
@Inject
4256
lateinit var mixpanelManager: MixpanelManager
4357

app/src/main/java/com/wafflestudio/siksha2/ui/main/setting/userAccount/UserProfileFragment.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import kotlinx.coroutines.launch
2929
import timber.log.Timber
3030
import kotlin.properties.Delegates
3131

32-
class UserProfileFragment : Fragment() {
32+
class UserProfileFragment : Fragment(), ImageBottomDialog.Listener {
3333
private lateinit var binding: FragmentUserProfileBinding
3434
private val settingViewModel: SettingViewModel by activityViewModels()
3535

@@ -138,10 +138,7 @@ class UserProfileFragment : Fragment() {
138138
}
139139

140140
private fun showImagePickerBottomDialog() {
141-
val bottomSheetFragment = ImageBottomDialog(
142-
onGallerySelected = { changeToGalleryImage() },
143-
onDefaultImageSelected = { changeToDefaultImage() }
144-
)
141+
val bottomSheetFragment = ImageBottomDialog()
145142
bottomSheetFragment.show(childFragmentManager, bottomSheetFragment.tag)
146143
}
147144

@@ -170,12 +167,12 @@ class UserProfileFragment : Fragment() {
170167
imm.hideSoftInputFromWindow(binding.root.windowToken, 0)
171168
}
172169

173-
private fun changeToGalleryImage() {
170+
override fun onGallerySelected() {
174171
pickImage.launch("image/*")
175172
imageChanged = true
176173
}
177174

178-
private fun changeToDefaultImage() {
175+
override fun onDefaultImageSelected() {
179176
settingViewModel.updateImageUri(null)
180177
imageView.apply {
181178
setImageResource(R.drawable.ic_rice_bowl)

0 commit comments

Comments
 (0)