diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/LiveFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/LiveFragment.kt index a923eaf..4ec2c9a 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/LiveFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/LiveFragment.kt @@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.live import android.annotation.SuppressLint import android.app.Activity import android.content.Intent +import android.content.SharedPreferences import android.graphics.Rect import android.net.Uri import android.os.Bundle @@ -76,6 +77,27 @@ class LiveFragment : BaseFragment(FragmentLiveBinding::infl private var message = "" private val handler = Handler(Looper.getMainLooper()) + private val preferenceChangeListener = + SharedPreferences.OnSharedPreferenceChangeListener { sharedPreferences, key -> + // 특정 키에 대한 값이 변경될 때 UI 업데이트 + if (key == Constants.PREF_USER_ROLE) { + if ( + sharedPreferences.getString( + key, + MemberRole.USER.name + ) == MemberRole.CREATOR.name + ) { + binding.ivMakeRoom.visibility = View.VISIBLE + binding.ivMakeRoom.setOnClickListener { + val intent = Intent(requireContext(), LiveRoomCreateActivity::class.java) + activityResultLauncher.launch(intent) + } + } else { + binding.ivMakeRoom.visibility = View.GONE + } + } + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -96,6 +118,7 @@ class LiveFragment : BaseFragment(FragmentLiveBinding::infl override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + SharedPreferenceManager.registerOnSharedPreferenceChangeListener(preferenceChangeListener) setupView() setupRecommendLive() @@ -121,6 +144,11 @@ class LiveFragment : BaseFragment(FragmentLiveBinding::infl viewModel.getSummary() } + override fun onDestroyView() { + SharedPreferenceManager.unregisterOnSharedPreferenceChangeListener(preferenceChangeListener) + super.onDestroyView() + } + private fun setupView() { loadingDialog = LoadingDialog(requireActivity(), layoutInflater)