This commit is contained in:
ocean 2024-07-05 11:27:19 +08:00
parent 7bcfa1b3b8
commit c1aa62c693

View File

@ -75,6 +75,7 @@ import java.util.concurrent.TimeUnit
abstract class MoBaseActivity : AppCompatActivity(), MusicPlayerView.PlaySkipForwardListener,
CoroutineScope by MainScope(), LifecycleOwner {
private var playerListener: Player.Listener? = null
private var currentLayoutId: LinearLayout? = null
enum class Event {
ActivityStart, ActivityStop, ActivityOnResume, AutomaticallySwitchSongs,
@ -136,7 +137,11 @@ abstract class MoBaseActivity : AppCompatActivity(), MusicPlayerView.PlaySkipFor
}
}
fun addMusicPlayerViewToLayout(layoutId: LinearLayout) {
fun addMusicPlayerViewToLayout(layoutId: LinearLayout?) {
if (layoutId == null) {
return
}
currentLayoutId = layoutId
if (meController != null && meController.mediaItemCount > 0 && meController.duration > 0) {
if (layoutId.childCount <= 0) {//没有添加view才进行添加
layoutId.addView(musicPlayerView)
@ -173,20 +178,22 @@ abstract class MoBaseActivity : AppCompatActivity(), MusicPlayerView.PlaySkipFor
override fun onPositionDiscontinuity(
oldPosition: Player.PositionInfo, newPosition: Player.PositionInfo, reason: Int
) {
LogTag.LogD(TAG,"reason->$reason")
if (reason == Player.DISCONTINUITY_REASON_AUTO_TRANSITION
|| reason == Player.DISCONTINUITY_REASON_SEEK_ADJUSTMENT) {
LogTag.LogD(TAG, "reason->$reason")
if (reason == Player.DISCONTINUITY_REASON_AUTO_TRANSITION || reason == Player.DISCONTINUITY_REASON_SEEK_ADJUSTMENT) {
if (meController != null) {
musicPlayerView.updateInfoUi(meController.currentMediaItem)
musicPlayerView.updateSetProgress(meController)
musicPlayerView.updateProgressState(meController)
}
LogTag.LogD(TAG,"reason update")
LogTag.LogD(TAG, "reason update")
events.trySend(Event.AutomaticallySwitchSongs)
}
}
override fun onPlaybackStateChanged(playbackState: Int) {
if (currentLayoutId != null) {
addMusicPlayerViewToLayout(currentLayoutId)
}
val meController = MediaControllerManager.getController()
if (meController != null) {
musicPlayerView.updateProgressState(meController)
@ -526,7 +533,7 @@ abstract class MoBaseActivity : AppCompatActivity(), MusicPlayerView.PlaySkipFor
}
fun showRatingDialog() {
val intervalTime = 1000 * 60 * 5
val intervalTime = 1000 * 60 * 60 * 24 * 3
val dialog = RatingDialog(this)
val installTime = appStore.showRateDialogTime
val currentTime = System.currentTimeMillis()