Skip to content

Commit

Permalink
use durationMs from media3
Browse files Browse the repository at this point in the history
  • Loading branch information
nift4 committed Sep 10, 2024
1 parent d4b0c73 commit 5a2daf1
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ class LastPlayedManager(context: Context,
b.writeLong(it.mediaMetadata.extras?.getLong("GenreId"))
b.writeStringSafe(it.mediaMetadata.extras?.getString("Author"))
b.writeInt(it.mediaMetadata.extras?.getInt("CdTrackNumber"))
b.writeLong(it.mediaMetadata.extras?.getLong("Duration"))
b.writeLong(it.mediaMetadata.durationMs)
b.writeStringUnsafe(it.mediaMetadata.extras?.getString("Path"))
b.writeLong(it.mediaMetadata.extras?.getLong("ModifiedDate"))
b.toString()
Expand Down Expand Up @@ -219,6 +219,7 @@ class LastPlayedManager(context: Context,
.setDiscNumber(discNumber)
.setRecordingYear(recordingYear)
.setReleaseYear(releaseYear)
.setDurationMs(duration)
.setIsBrowsable(isBrowsable)
.setIsPlayable(isPlayable)
.setExtras(Bundle().apply {
Expand All @@ -238,9 +239,6 @@ class LastPlayedManager(context: Context,
putInt("CdTrackNumber", cdTrackNumber)
}
putString("Author", author)
if (duration != null) {
putLong("Duration", duration)
}
putString("Path", path)
if (modifiedDate != null) {
putLong("ModifiedDate", modifiedDate)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@ package org.akanework.gramophone.logic.utils
import android.content.Context
import android.os.Bundle
import android.os.Parcelable
import androidx.annotation.OptIn
import androidx.media3.common.MediaItem
import androidx.media3.common.MediaMetadata
import androidx.media3.common.util.UnstableApi
import androidx.preference.PreferenceManager
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
Expand Down Expand Up @@ -51,6 +53,7 @@ object MediaStoreUtils {
* @param context
* @return
*/
@OptIn(UnstableApi::class)
private fun getAllSongs(context: Context): ReaderResult<MediaItem> {
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
val limitValue = prefs.getInt(
Expand All @@ -74,6 +77,7 @@ object MediaStoreUtils {
.Builder()
.setIsBrowsable(false)
.setIsPlayable(true)
.setDurationMs(duration)
.setTitle(title)
.setWriter(writer)
.setCompilation(compilation)
Expand Down Expand Up @@ -103,9 +107,6 @@ object MediaStoreUtils {
if (addDate != null) {
putLong("AddDate", addDate)
}
if (duration != null) {
putLong("Duration", duration)
}
if (modifiedDate != null) {
putLong("ModifiedDate", modifiedDate)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ class FullBottomSheet
private val touchListener = object : SeekBar.OnSeekBarChangeListener, Slider.OnSliderTouchListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
if (fromUser) {
val dest = instance?.currentMediaItem?.mediaMetadata?.extras?.getLong("Duration")
val dest = instance?.currentMediaItem?.mediaMetadata?.durationMs
if (dest != null) {
bottomSheetFullPosition.text =
CalculationUtils.convertDurationToTimeStamp((progress.toLong()))
Expand Down Expand Up @@ -470,7 +470,7 @@ class FullBottomSheet

bottomSheetFullSlider.addOnChangeListener { _, value, isUser ->
if (isUser) {
val dest = instance?.currentMediaItem?.mediaMetadata?.extras?.getLong("Duration")
val dest = instance?.currentMediaItem?.mediaMetadata?.durationMs
if (dest != null) {
bottomSheetFullPosition.text =
CalculationUtils.convertDurationToTimeStamp((value).toLong())
Expand Down Expand Up @@ -924,8 +924,7 @@ class FullBottomSheet
bottomSheetFullSubtitle.setTextAnimation(
mediaItem?.mediaMetadata?.artist ?: context.getString(R.string.unknown_artist), skipAnimation = firstTime
)
bottomSheetFullDuration.text =
mediaItem?.mediaMetadata?.extras?.getLong("Duration")
bottomSheetFullDuration.text = mediaItem?.mediaMetadata?.durationMs
?.let { CalculationUtils.convertDurationToTimeStamp(it) }
if (playlistNowPlaying != null) {
playlistNowPlaying!!.text = mediaItem?.mediaMetadata?.title
Expand All @@ -952,7 +951,7 @@ class FullBottomSheet
playlistNowPlayingCover?.dispose()
}
val position = CalculationUtils.convertDurationToTimeStamp(instance?.currentPosition ?: 0)
val duration = instance?.currentMediaItem?.mediaMetadata?.extras?.getLong("Duration")
val duration = instance?.currentMediaItem?.mediaMetadata?.durationMs
if (duration != null && !isUserTracking) {
bottomSheetFullSeekBar.max = duration.toInt()
bottomSheetFullSeekBar.progress = instance?.currentPosition?.toInt() ?: 0
Expand Down Expand Up @@ -1286,9 +1285,7 @@ class FullBottomSheet
holder.songName.text = item.mediaMetadata.title
holder.songArtist.text = item.mediaMetadata.artist
holder.indicator.text =
CalculationUtils.convertDurationToTimeStamp(
item.mediaMetadata.extras?.getLong("Duration")!!
)
CalculationUtils.convertDurationToTimeStamp(item.mediaMetadata.durationMs!!)
holder.songCover.load(item.mediaMetadata.artworkUri) {
placeholderScaleToFit(R.drawable.ic_default_cover)
crossfade(true)
Expand Down Expand Up @@ -1529,7 +1526,7 @@ class FullBottomSheet
if (!runnableRunning) return
val position =
CalculationUtils.convertDurationToTimeStamp(instance?.currentPosition ?: 0)
val duration = instance?.currentMediaItem?.mediaMetadata?.extras?.getLong("Duration")
val duration = instance?.currentMediaItem?.mediaMetadata?.durationMs
if (duration != null && !isUserTracking) {
bottomSheetFullSeekBar.max = duration.toInt()
bottomSheetFullSeekBar.progress = instance?.currentPosition?.toInt() ?: 0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ class DetailDialogFragment : BaseFragment(false) {
if (mediaMetadata.releaseYear != null || mediaMetadata.recordingYear != null) {
yearTextView.text = (mediaMetadata.releaseYear ?: mediaMetadata.recordingYear)?.toString()
}
durationTextView.text = convertDurationToTimeStamp(mediaMetadata.extras!!.getLong("Duration"))
durationTextView.text = convertDurationToTimeStamp(mediaMetadata.durationMs!!)
mimeTypeTextView.text = mediaItem.localConfiguration?.mimeType ?: "(null)"
pathTextView.text = mediaItem.getFile()?.path
?: mediaItem.requestMetadata.mediaUri?.toString() ?: "(null)"
Expand Down

0 comments on commit 5a2daf1

Please sign in to comment.