mirror of
https://github.com/libre-tube/LibreTube.git
synced 2024-12-13 22:00:30 +05:30
Merge pull request #1628 from eclairevoyant/master
fix: handle duration string timestamps
This commit is contained in:
commit
c670b1b6be
@ -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
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user