Merge pull request #1628 from eclairevoyant/master

fix: handle duration string timestamps
This commit is contained in:
Bnyro 2022-10-21 15:22:26 +02:00 committed by GitHub
commit c670b1b6be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -10,6 +10,7 @@ import com.github.libretube.constants.IntentData
import com.github.libretube.extensions.TAG import com.github.libretube.extensions.TAG
import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.base.BaseActivity
import com.github.libretube.util.NavigationHelper import com.github.libretube.util.NavigationHelper
import kotlin.time.Duration
class RouterActivity : BaseActivity() { class RouterActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@ -75,14 +76,14 @@ class RouterActivity : BaseActivity() {
intent.putExtra(IntentData.videoId, videoId) intent.putExtra(IntentData.videoId, videoId)
uri.getQueryParameter("t") uri.getQueryParameter("t")
?.let { intent.putExtra(IntentData.timeStamp, it.toLong()) } ?.let { intent.putExtra(IntentData.timeStamp, parseTimestamp(it)) }
} }
else -> { else -> {
val videoId = uri.path!!.replace("/", "") val videoId = uri.path!!.replace("/", "")
intent.putExtra(IntentData.videoId, videoId) intent.putExtra(IntentData.videoId, videoId)
uri.getQueryParameter("t") uri.getQueryParameter("t")
?.let { intent.putExtra(IntentData.timeStamp, it.toLong()) } ?.let { intent.putExtra(IntentData.timeStamp, parseTimestamp(it)) }
} }
} }
return intent return intent
@ -99,4 +100,12 @@ class RouterActivity : BaseActivity() {
) )
this.finishAndRemoveTask() this.finishAndRemoveTask()
} }
private fun parseTimestamp(t: String): Long? {
if (t.all { c -> c.isDigit() }) {
return t.toLong()
}
return Duration.parseOrNull(t)?.inWholeSeconds
}
} }