diff --git a/app/src/main/java/com/el/yello/presentation/main/MainActivity.kt b/app/src/main/java/com/el/yello/presentation/main/MainActivity.kt index ca38297d..2ae72062 100644 --- a/app/src/main/java/com/el/yello/presentation/main/MainActivity.kt +++ b/app/src/main/java/com/el/yello/presentation/main/MainActivity.kt @@ -26,7 +26,6 @@ import com.el.yello.presentation.util.dp import com.el.yello.util.amplitude.AmplitudeUtils import com.el.yello.util.context.yelloSnackbar import com.example.domain.enum.SubscribeType.CANCELED -import com.example.domain.enum.SubscribeType.NORMAL import com.example.ui.base.BindingActivity import com.example.ui.context.toast import com.example.ui.intent.stringExtra @@ -35,6 +34,7 @@ import com.example.ui.view.UiState.Failure import com.example.ui.view.UiState.Loading import com.example.ui.view.UiState.Success import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.Job import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import java.text.SimpleDateFormat @@ -49,6 +49,7 @@ class MainActivity : BindingActivity(R.layout.activity_main private val type by stringExtra() private var backPressedTime: Long = 0 + private var userSubsStateJob: Job? = null private val onBackPressedCallback = object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { @@ -189,7 +190,7 @@ class MainActivity : BindingActivity(R.layout.activity_main } private fun setupGetUserSubsState() { - viewModel.getUserSubsState.flowWithLifecycle(lifecycle) + userSubsStateJob = viewModel.getUserSubsState.flowWithLifecycle(lifecycle) .onEach { state -> when (state) { is Empty -> return@onEach @@ -275,6 +276,10 @@ class MainActivity : BindingActivity(R.layout.activity_main badgeDrawable.isVisible = count != 0 } + fun resetUserSubsStateFlow() { + userSubsStateJob?.cancel() + } + companion object { private const val EXTRA_TYPE = "type" private const val EXTRA_PATH = "path" diff --git a/app/src/main/java/com/el/yello/presentation/pay/PayReSubsNoticeDialog.kt b/app/src/main/java/com/el/yello/presentation/pay/PayReSubsNoticeDialog.kt index 0e19e69f..b74b45cb 100644 --- a/app/src/main/java/com/el/yello/presentation/pay/PayReSubsNoticeDialog.kt +++ b/app/src/main/java/com/el/yello/presentation/pay/PayReSubsNoticeDialog.kt @@ -9,12 +9,16 @@ import android.view.ViewGroup import android.view.WindowManager import com.el.yello.R import com.el.yello.databinding.FragmentNoticeResubscribeBinding +import com.el.yello.presentation.main.MainActivity import com.example.ui.base.BindingDialogFragment import com.example.ui.view.setOnSingleClickListener class PayReSubsNoticeDialog : BindingDialogFragment(R.layout.fragment_notice_resubscribe) { + private val mainActivity: MainActivity by lazy { + requireActivity() as MainActivity + } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setNoticeBtnClickListener() @@ -36,12 +40,16 @@ class PayReSubsNoticeDialog : } private fun setNoticeBtnClickListener() { - binding.btnNoticeQuit.setOnSingleClickListener { dismiss() } - binding.btnYelloplusSubscribe.setOnSingleClickListener { + binding.btnNoticeQuit.setOnSingleClickListener { dismiss() + mainActivity.resetUserSubsStateFlow() + } + binding.btnYelloplusSubscribe.setOnSingleClickListener { Intent(requireContext(), PayActivity::class.java).apply { startActivity(this) } + dismiss() + mainActivity.resetUserSubsStateFlow() } }