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