feat(chat-character): 캐릭터 탭 모든 액션
- 로그인과 본인인증이 되어 있어야 가능하도록 수정
This commit is contained in:
		@@ -26,6 +26,11 @@ import kr.co.vividnext.sodalive.common.SharedPreferenceManager
 | 
				
			|||||||
import kr.co.vividnext.sodalive.databinding.FragmentCharacterTabBinding
 | 
					import kr.co.vividnext.sodalive.databinding.FragmentCharacterTabBinding
 | 
				
			||||||
import kr.co.vividnext.sodalive.extensions.dpToPx
 | 
					import kr.co.vividnext.sodalive.extensions.dpToPx
 | 
				
			||||||
import kr.co.vividnext.sodalive.main.MainActivity
 | 
					import kr.co.vividnext.sodalive.main.MainActivity
 | 
				
			||||||
 | 
					import kr.co.vividnext.sodalive.mypage.MyPageViewModel
 | 
				
			||||||
 | 
					import kr.co.vividnext.sodalive.mypage.auth.Auth
 | 
				
			||||||
 | 
					import kr.co.vividnext.sodalive.mypage.auth.AuthVerifyRequest
 | 
				
			||||||
 | 
					import kr.co.vividnext.sodalive.splash.SplashActivity
 | 
				
			||||||
 | 
					import com.google.gson.Gson
 | 
				
			||||||
import org.koin.android.ext.android.inject
 | 
					import org.koin.android.ext.android.inject
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 캐릭터 탭 프래그먼트
 | 
					// 캐릭터 탭 프래그먼트
 | 
				
			||||||
@@ -34,6 +39,7 @@ class CharacterTabFragment : BaseFragment<FragmentCharacterTabBinding>(
 | 
				
			|||||||
    FragmentCharacterTabBinding::inflate
 | 
					    FragmentCharacterTabBinding::inflate
 | 
				
			||||||
) {
 | 
					) {
 | 
				
			||||||
    private val viewModel: CharacterTabViewModel by inject()
 | 
					    private val viewModel: CharacterTabViewModel by inject()
 | 
				
			||||||
 | 
					    private val myPageViewModel: MyPageViewModel by inject()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private lateinit var contentBannerAdapter: CharacterBannerAdapter
 | 
					    private lateinit var contentBannerAdapter: CharacterBannerAdapter
 | 
				
			||||||
    private lateinit var recentCharacterAdapter: RecentCharacterAdapter
 | 
					    private lateinit var recentCharacterAdapter: RecentCharacterAdapter
 | 
				
			||||||
@@ -75,14 +81,12 @@ class CharacterTabFragment : BaseFragment<FragmentCharacterTabBinding>(
 | 
				
			|||||||
            pagerWidth,
 | 
					            pagerWidth,
 | 
				
			||||||
            pagerHeight
 | 
					            pagerHeight
 | 
				
			||||||
        ) {
 | 
					        ) {
 | 
				
			||||||
            if (SharedPreferenceManager.token.isNotBlank()) {
 | 
					            ensureLoginAndAuth {
 | 
				
			||||||
                startActivity(
 | 
					                startActivity(
 | 
				
			||||||
                    Intent(requireContext(), CharacterDetailActivity::class.java).apply {
 | 
					                    Intent(requireContext(), CharacterDetailActivity::class.java).apply {
 | 
				
			||||||
                        putExtra(EXTRA_CHARACTER_ID, it.characterId)
 | 
					                        putExtra(EXTRA_CHARACTER_ID, it.characterId)
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                )
 | 
					                )
 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                (requireActivity() as MainActivity).showLoginActivity()
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -353,6 +357,47 @@ class CharacterTabFragment : BaseFragment<FragmentCharacterTabBinding>(
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private fun ensureLoginAndAuth(onAuthed: () -> Unit) {
 | 
				
			||||||
 | 
					        if (SharedPreferenceManager.token.isBlank()) {
 | 
				
			||||||
 | 
					            (requireActivity() as MainActivity).showLoginActivity()
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!SharedPreferenceManager.isAuth) {
 | 
				
			||||||
 | 
					            Toast.makeText(requireContext(), "본인인증이 필요합니다.", Toast.LENGTH_LONG).show()
 | 
				
			||||||
 | 
					            startAuthFlow()
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        onAuthed()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private fun startAuthFlow() {
 | 
				
			||||||
 | 
					        Auth.auth(requireActivity(), requireContext()) { json ->
 | 
				
			||||||
 | 
					            val bootpayResponse = Gson().fromJson(
 | 
				
			||||||
 | 
					                json,
 | 
				
			||||||
 | 
					                kr.co.vividnext.sodalive.mypage.auth.BootpayResponse::class.java
 | 
				
			||||||
 | 
					            )
 | 
				
			||||||
 | 
					            val request = AuthVerifyRequest(receiptId = bootpayResponse.data.receiptId)
 | 
				
			||||||
 | 
					            requireActivity().runOnUiThread {
 | 
				
			||||||
 | 
					                myPageViewModel.authVerify(request) {
 | 
				
			||||||
 | 
					                    startActivity(
 | 
				
			||||||
 | 
					                        Intent(
 | 
				
			||||||
 | 
					                            requireContext(),
 | 
				
			||||||
 | 
					                            SplashActivity::class.java
 | 
				
			||||||
 | 
					                        ).apply {
 | 
				
			||||||
 | 
					                            addFlags(
 | 
				
			||||||
 | 
					                                Intent.FLAG_ACTIVITY_CLEAR_TASK or
 | 
				
			||||||
 | 
					                                    Intent.FLAG_ACTIVITY_NEW_TASK
 | 
				
			||||||
 | 
					                            )
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    )
 | 
				
			||||||
 | 
					                    requireActivity().finish()
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun observeViewModel() {
 | 
					    private fun observeViewModel() {
 | 
				
			||||||
        viewModel.isLoading.observe(viewLifecycleOwner) {
 | 
					        viewModel.isLoading.observe(viewLifecycleOwner) {
 | 
				
			||||||
            if (it) {
 | 
					            if (it) {
 | 
				
			||||||
@@ -372,14 +417,12 @@ class CharacterTabFragment : BaseFragment<FragmentCharacterTabBinding>(
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun onCharacterClick(characterId: Long) {
 | 
					    private fun onCharacterClick(characterId: Long) {
 | 
				
			||||||
        if (SharedPreferenceManager.token.isNotBlank()) {
 | 
					        ensureLoginAndAuth {
 | 
				
			||||||
            startActivity(
 | 
					            startActivity(
 | 
				
			||||||
                Intent(requireContext(), CharacterDetailActivity::class.java).apply {
 | 
					                Intent(requireContext(), CharacterDetailActivity::class.java).apply {
 | 
				
			||||||
                    putExtra(EXTRA_CHARACTER_ID, characterId)
 | 
					                    putExtra(EXTRA_CHARACTER_ID, characterId)
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            (requireActivity() as MainActivity).showLoginActivity()
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user