Skip to content

Commit

Permalink
[feat] 삭제 다이얼로그 디자인 통일
Browse files Browse the repository at this point in the history
  • Loading branch information
leeeha committed Aug 19, 2023
1 parent a98d1e1 commit dad0085
Show file tree
Hide file tree
Showing 10 changed files with 70 additions and 400 deletions.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ import android.view.WindowManager
import android.widget.PopupWindow
import android.widget.TextView
import androidx.core.view.isVisible
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.commit
import androidx.fragment.app.replace
import androidx.fragment.app.viewModels
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.flowWithLifecycle
Expand All @@ -20,15 +23,18 @@ import com.android.go.sopt.winey.databinding.FragmentWineyFeedBinding
import com.android.go.sopt.winey.domain.entity.User
import com.android.go.sopt.winey.domain.entity.WineyFeed
import com.android.go.sopt.winey.domain.repository.DataStoreRepository
import com.android.go.sopt.winey.presentation.main.AlertDialogFragment
import com.android.go.sopt.winey.presentation.main.MainViewModel
import com.android.go.sopt.winey.presentation.main.feed.upload.UploadActivity
import com.android.go.sopt.winey.presentation.main.mypage.MyPageFragment
import com.android.go.sopt.winey.util.binding.BindingFragment
import com.android.go.sopt.winey.util.fragment.WineyDialogFragment
import com.android.go.sopt.winey.util.fragment.snackBar
import com.android.go.sopt.winey.util.fragment.stringOf
import com.android.go.sopt.winey.util.fragment.viewLifeCycle
import com.android.go.sopt.winey.util.fragment.viewLifeCycleScope
import com.android.go.sopt.winey.util.view.UiState
import com.android.go.sopt.winey.util.view.setOnSingleClickListener
import com.google.android.material.bottomnavigation.BottomNavigationView
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.first
Expand All @@ -44,7 +50,6 @@ import javax.inject.Inject
class WineyFeedFragment : BindingFragment<FragmentWineyFeedBinding>(R.layout.fragment_winey_feed) {
private val viewModel by viewModels<WineyFeedViewModel>()
private val mainViewModel by activityViewModels<MainViewModel>()
private lateinit var wineyFeedDialogFragment: WineyFeedDialogFragment
private lateinit var wineyFeedAdapter: WineyFeedAdapter
private lateinit var wineyFeedHeaderAdapter: WineyFeedHeaderAdapter
private lateinit var wineyFeedLoadAdapter: WineyFeedLoadAdapter
Expand Down Expand Up @@ -87,17 +92,21 @@ class WineyFeedFragment : BindingFragment<FragmentWineyFeedBinding>(R.layout.fra
WindowManager.LayoutParams.WRAP_CONTENT,
true
)

val menuDelete = popupView.findViewById<TextView>(R.id.tv_popup_delete)
val menuReport = popupView.findViewById<TextView>(R.id.tv_popup_report)

if (wineyFeed.userId == runBlocking { dataStoreRepository.getUserId().first() }) {
menuReport.isVisible = false
} else {
menuDelete.isVisible = false
}

menuDelete.setOnSingleClickListener {
showDeleteDialog(wineyFeed.feedId, wineyFeed.writerLevel)
showDeleteDialog(wineyFeed.feedId)
popupWindow.dismiss()
}

popupWindow.showAsDropDown(view)
}

Expand All @@ -109,23 +118,17 @@ class WineyFeedFragment : BindingFragment<FragmentWineyFeedBinding>(R.layout.fra
}
}

private fun showDeleteDialog(feedId: Int, userLevel: Int) {
val dialogSub: Int =
if (userLevel <= LV_KNIGHT) {
R.string.myfeed_dialog_lowlevel_sub
} else {
R.string.myfeed_dialog_highlevel_sub
}

val deleteDialog = AlertDialogFragment(
getString(R.string.wineyfeed_dialog_title),
getString(dialogSub),
getString(R.string.wineyfeed_dialog_cancel),
getString(R.string.myfeed_dialog_delete),
handleNegativeButton = { },
private fun showDeleteDialog(feedId: Int) {
val dialog = WineyDialogFragment(
getString(R.string.feed_delete_dialog_title),
getString(R.string.feed_delete_dialog_subtitle),
getString(R.string.feed_delete_dialog_negative_button),
getString(R.string.feed_delete_dialog_positive_button),
handleNegativeButton = {},
handlePositiveButton = { viewModel.deleteFeed(feedId) }
)
deleteDialog.show(parentFragmentManager, TAG_DELETE_DIALOG)
dialog.show(parentFragmentManager, TAG_DELETE_DIALOG)

initDeleteFeedStateObserver()
}

Expand Down Expand Up @@ -215,13 +218,28 @@ class WineyFeedFragment : BindingFragment<FragmentWineyFeedBinding>(R.layout.fra

private fun isGoalValid(data: User?) {
if (data?.isOver == true) {
wineyFeedDialogFragment = WineyFeedDialogFragment()
wineyFeedDialogFragment.show(parentFragmentManager, TAG_WINEYFEED_DIALOG)
val dialog = WineyDialogFragment(
stringOf(R.string.wineyfeed_goal_dialog_title),
stringOf(R.string.wineyfeed_goal_dialog_subtitle),
stringOf(R.string.wineyfeed_goal_dialog_negative_button),
stringOf(R.string.wineyfeed_goal_dialog_positive_button),
handleNegativeButton = {},
handlePositiveButton = { navigateTo<MyPageFragment>() }
)
dialog.show(parentFragmentManager, TAG_GOAL_DIALOG)
} else {
navigateToUpload()
}
}

private inline fun <reified T : Fragment> navigateTo() {
parentFragmentManager.commit {
replace<T>(R.id.fcv_main, T::class.simpleName)
}
val bottomNav: BottomNavigationView = requireActivity().findViewById(R.id.bnv_main)
bottomNav.selectedItemId = R.id.menu_mypage
}

private fun setSwipeRefreshListener() {
binding.layoutWineyfeedRefresh.setOnRefreshListener {
wineyFeedAdapter.refresh()
Expand All @@ -236,8 +254,9 @@ class WineyFeedFragment : BindingFragment<FragmentWineyFeedBinding>(R.layout.fra

companion object {
private const val LV_KNIGHT = 2
private const val TAG_WINEYFEED_DIALOG = "NO_GOAL_DIALOG"
private const val MSG_WINEYFEED_ERROR = "ERROR"

private const val TAG_GOAL_DIALOG = "NO_GOAL_DIALOG"
private const val TAG_DELETE_DIALOG = "DELETE_DIALOG"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ class MyPageFragment : BindingFragment<FragmentMyPageBinding>(R.layout.fragment_

private fun initToMyFeedButtonClickListener() {
binding.clMypageToMyfeed.setOnSingleClickListener {
navigateTo<MyFeedFragment>()
navigateAndBackStack<MyFeedFragment>()
}
}

Expand Down Expand Up @@ -236,7 +236,7 @@ class MyPageFragment : BindingFragment<FragmentMyPageBinding>(R.layout.fragment_
}
}

private inline fun <reified T : Fragment> navigateTo() {
private inline fun <reified T : Fragment> navigateAndBackStack() {
parentFragmentManager.commit {
replace<T>(R.id.fcv_main, T::class.simpleName)
addToBackStack(null)
Expand Down

This file was deleted.

Loading

0 comments on commit dad0085

Please sign in to comment.