로그아웃, 라이브 입장

- 플레이어 서비스 중단 로직 추가
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.setOnClickListener { showPlayerFragment() }
binding.ivStop.setOnClickListener {
val stopIntent = Intent(
applicationContext,
AudioContentPlayerService::class.java
startService(
Intent(applicationContext, AudioContentPlayerService::class.java).apply {
action = "STOP_SERVICE"
}
)
stopIntent.action = "STOP_SERVICE"
startService(stopIntent)
}
connectPlayerService()
}

View File

@ -14,6 +14,7 @@ import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat
import androidx.media3.common.util.UnstableApi
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
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.audio_content.AudioContentPlayService
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.common.Constants
import kr.co.vividnext.sodalive.common.LoadingDialog
@ -667,6 +669,7 @@ class LiveFragment : BaseFragment<FragmentLiveBinding>(FragmentLiveBinding::infl
)
}
@UnstableApi
fun enterLiveRoom(roomId: Long) {
requireContext().startService(
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 = {
requireActivity().runOnUiThread {
val intent = Intent(requireContext(), LiveRoomActivity::class.java)

View File

@ -5,10 +5,12 @@ import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.Toast
import androidx.media3.common.util.UnstableApi
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
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.common.Constants
import kr.co.vividnext.sodalive.common.GridSpacingItemDecoration
@ -94,6 +96,7 @@ class LiveNowAllActivity : BaseActivity<ActivityLiveNowAllBinding>(
}
}
@UnstableApi
private fun enterLiveRoom(roomId: Long) {
startService(
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 = {
runOnUiThread {
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.Intent
import androidx.media3.common.util.UnstableApi
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.user.login.LoginActivity
import okhttp3.Authenticator
@ -13,6 +15,7 @@ import okhttp3.Route
class TokenAuthenticator(
private val context: Context
) : Authenticator {
@UnstableApi
override fun authenticate(route: Route?, response: Response): Request? {
if (response.code == 401) {
context.startService(
@ -20,6 +23,11 @@ class TokenAuthenticator(
action = AudioContentPlayService.MusicAction.STOP.name
}
)
context.startService(
Intent(context, AudioContentPlayerService::class.java).apply {
action = "STOP_SERVICE"
}
)
SharedPreferenceManager.clear()
val intent = Intent(context, LoginActivity::class.java)

View File

@ -7,9 +7,11 @@ import android.os.Bundle
import android.view.View
import android.widget.Toast
import androidx.activity.viewModels
import androidx.media3.common.util.UnstableApi
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
import kr.co.vividnext.sodalive.BuildConfig
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.SodaDialog
import kr.co.vividnext.sodalive.common.Constants
@ -157,6 +159,7 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
}
}
@UnstableApi
private fun logout() {
startService(
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 {
SharedPreferenceManager.clear()
alarmViewModel.truncate()
@ -172,6 +181,7 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(ActivitySettingsB
}
}
@UnstableApi
private fun logoutAllDevice() {
startService(
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() {
SharedPreferenceManager.clear()
finishAffinity()