로그아웃, 라이브 입장

- 플레이어 서비스 중단 로직 추가
This commit is contained in:
klaus 2024-12-13 20:58:57 +09:00
parent c83a865032
commit 6da3192fe8
5 changed files with 46 additions and 5 deletions

View File

@ -82,12 +82,11 @@ class AudioContentPlaylistDetailActivity : BaseActivity<ActivityAudioContentPlay
binding.clMiniPlayer.visibility = View.VISIBLE binding.clMiniPlayer.visibility = View.VISIBLE
binding.clMiniPlayer.setOnClickListener { showPlayerFragment() } binding.clMiniPlayer.setOnClickListener { showPlayerFragment() }
binding.ivStop.setOnClickListener { binding.ivStop.setOnClickListener {
val stopIntent = Intent( startService(
applicationContext, Intent(applicationContext, AudioContentPlayerService::class.java).apply {
AudioContentPlayerService::class.java action = "STOP_SERVICE"
}
) )
stopIntent.action = "STOP_SERVICE"
startService(stopIntent)
} }
connectPlayerService() connectPlayerService()
} }

View File

@ -14,6 +14,7 @@ import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.media3.common.util.UnstableApi
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.zhpan.bannerview.BaseBannerAdapter import com.zhpan.bannerview.BaseBannerAdapter
@ -22,6 +23,7 @@ import com.zhpan.indicator.enums.IndicatorStyle
import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService
import kr.co.vividnext.sodalive.audio_content.all.by_theme.AudioContentAllByThemeActivity import kr.co.vividnext.sodalive.audio_content.all.by_theme.AudioContentAllByThemeActivity
import kr.co.vividnext.sodalive.audio_content.player.AudioContentPlayerService
import kr.co.vividnext.sodalive.base.BaseFragment import kr.co.vividnext.sodalive.base.BaseFragment
import kr.co.vividnext.sodalive.common.Constants import kr.co.vividnext.sodalive.common.Constants
import kr.co.vividnext.sodalive.common.LoadingDialog import kr.co.vividnext.sodalive.common.LoadingDialog
@ -667,6 +669,7 @@ class LiveFragment : BaseFragment<FragmentLiveBinding>(FragmentLiveBinding::infl
) )
} }
@UnstableApi
fun enterLiveRoom(roomId: Long) { fun enterLiveRoom(roomId: Long) {
requireContext().startService( requireContext().startService(
Intent(requireContext(), AudioContentPlayService::class.java).apply { Intent(requireContext(), AudioContentPlayService::class.java).apply {
@ -674,6 +677,12 @@ class LiveFragment : BaseFragment<FragmentLiveBinding>(FragmentLiveBinding::infl
} }
) )
requireContext().startService(
Intent(requireContext(), AudioContentPlayerService::class.java).apply {
action = "STOP_SERVICE"
}
)
val onEnterRoomSuccess = { val onEnterRoomSuccess = {
requireActivity().runOnUiThread { requireActivity().runOnUiThread {
val intent = Intent(requireContext(), LiveRoomActivity::class.java) val intent = Intent(requireContext(), LiveRoomActivity::class.java)

View File

@ -5,10 +5,12 @@ import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.widget.Toast import android.widget.Toast
import androidx.media3.common.util.UnstableApi
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService
import kr.co.vividnext.sodalive.audio_content.player.AudioContentPlayerService
import kr.co.vividnext.sodalive.base.BaseActivity import kr.co.vividnext.sodalive.base.BaseActivity
import kr.co.vividnext.sodalive.common.Constants import kr.co.vividnext.sodalive.common.Constants
import kr.co.vividnext.sodalive.common.GridSpacingItemDecoration import kr.co.vividnext.sodalive.common.GridSpacingItemDecoration
@ -94,6 +96,7 @@ class LiveNowAllActivity : BaseActivity<ActivityLiveNowAllBinding>(
} }
} }
@UnstableApi
private fun enterLiveRoom(roomId: Long) { private fun enterLiveRoom(roomId: Long) {
startService( startService(
Intent(applicationContext, AudioContentPlayService::class.java).apply { Intent(applicationContext, AudioContentPlayService::class.java).apply {
@ -101,6 +104,12 @@ class LiveNowAllActivity : BaseActivity<ActivityLiveNowAllBinding>(
} }
) )
startService(
Intent(applicationContext, AudioContentPlayerService::class.java).apply {
action = "STOP_SERVICE"
}
)
val onEnterRoomSuccess = { val onEnterRoomSuccess = {
runOnUiThread { runOnUiThread {
val intent = Intent(applicationContext, LiveRoomActivity::class.java) val intent = Intent(applicationContext, LiveRoomActivity::class.java)

View File

@ -2,7 +2,9 @@ package kr.co.vividnext.sodalive.network
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import androidx.media3.common.util.UnstableApi
import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService
import kr.co.vividnext.sodalive.audio_content.player.AudioContentPlayerService
import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.user.login.LoginActivity import kr.co.vividnext.sodalive.user.login.LoginActivity
import okhttp3.Authenticator import okhttp3.Authenticator
@ -13,6 +15,7 @@ import okhttp3.Route
class TokenAuthenticator( class TokenAuthenticator(
private val context: Context private val context: Context
) : Authenticator { ) : Authenticator {
@UnstableApi
override fun authenticate(route: Route?, response: Response): Request? { override fun authenticate(route: Route?, response: Response): Request? {
if (response.code == 401) { if (response.code == 401) {
context.startService( context.startService(
@ -20,6 +23,11 @@ class TokenAuthenticator(
action = AudioContentPlayService.MusicAction.STOP.name action = AudioContentPlayService.MusicAction.STOP.name
} }
) )
context.startService(
Intent(context, AudioContentPlayerService::class.java).apply {
action = "STOP_SERVICE"
}
)
SharedPreferenceManager.clear() SharedPreferenceManager.clear()
val intent = Intent(context, LoginActivity::class.java) val intent = Intent(context, LoginActivity::class.java)

View File

@ -7,9 +7,11 @@ import android.os.Bundle
import android.view.View import android.view.View
import android.widget.Toast import android.widget.Toast
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.media3.common.util.UnstableApi
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
import kr.co.vividnext.sodalive.BuildConfig import kr.co.vividnext.sodalive.BuildConfig
import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService
import kr.co.vividnext.sodalive.audio_content.player.AudioContentPlayerService
import kr.co.vividnext.sodalive.base.BaseActivity import kr.co.vividnext.sodalive.base.BaseActivity
import kr.co.vividnext.sodalive.base.SodaDialog import kr.co.vividnext.sodalive.base.SodaDialog
import kr.co.vividnext.sodalive.common.Constants import kr.co.vividnext.sodalive.common.Constants
@ -157,6 +159,7 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
} }
} }
@UnstableApi
private fun logout() { private fun logout() {
startService( startService(
Intent(applicationContext, AudioContentPlayService::class.java).apply { Intent(applicationContext, AudioContentPlayService::class.java).apply {
@ -164,6 +167,12 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
} }
) )
startService(
Intent(applicationContext, AudioContentPlayerService::class.java).apply {
action = "STOP_SERVICE"
}
)
viewModel.logout { viewModel.logout {
SharedPreferenceManager.clear() SharedPreferenceManager.clear()
alarmViewModel.truncate() alarmViewModel.truncate()
@ -172,6 +181,7 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
} }
} }
@UnstableApi
private fun logoutAllDevice() { private fun logoutAllDevice() {
startService( startService(
Intent(applicationContext, AudioContentPlayService::class.java).apply { Intent(applicationContext, AudioContentPlayService::class.java).apply {
@ -179,6 +189,12 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
} }
) )
startService(
Intent(applicationContext, AudioContentPlayerService::class.java).apply {
action = "STOP_SERVICE"
}
)
viewModel.logoutAllDevice() { viewModel.logoutAllDevice() {
SharedPreferenceManager.clear() SharedPreferenceManager.clear()
finishAffinity() finishAffinity()