Destroy unskip tracking variables when non-graced rewinding

* Also add back destroyUnskipVars() helper
This commit is contained in:
mikooomich 2024-05-12 21:42:00 -04:00
parent b25b1e2dc4
commit 02deb69e25
No known key found for this signature in database

View file

@ -1056,7 +1056,10 @@ public final class Player implements PlaybackListener, Listener {
seekTo(skipTarget);
simpleExoPlayer.setSeekParameters(seekParams);
lastSegment = sponsorBlockSegment;
if (!isRewind || isGracedRewind) {
// DO NOT TRACK for non-graced rewinds to work, BUT always track for graced
lastSegment = sponsorBlockSegment;
}
if (isUnSkip) {
return;
@ -1881,6 +1884,7 @@ public final class Player implements PlaybackListener, Listener {
return;
}
destroyUnskipVars(); // destroy, else rewind into segment won't skip
triggerProgressUpdate(true);
}
//endregion
@ -2502,12 +2506,7 @@ public final class Player implements PlaybackListener, Listener {
&& progress > lastSegment.endTime + UNSKIP_WINDOW_MILLIS) {
// un-skip window is over
hideUnskipButtons();
lastSegment = null;
autoSkipGracePeriod = false;
if (DEBUG) {
Log.d("SPONSOR_BLOCK", "Destroyed last segment variables (UNSKIP)");
}
destroyUnskipVars();
} else if (lastSegment != null
&& progress < lastSegment.endTime + UNSKIP_WINDOW_MILLIS
&& progress >= lastSegment.startTime) {
@ -2528,6 +2527,15 @@ public final class Player implements PlaybackListener, Listener {
UIs.call(PlayerUi::hideAutoUnskip);
}
private void destroyUnskipVars() {
lastSegment = null;
autoSkipGracePeriod = false;
if (DEBUG) {
Log.d("SPONSOR_BLOCK", "Destroyed last segment variables (UNSKIP)");
}
}
private SponsorBlockSecondaryMode getSecondaryMode(final SponsorBlockSegment segment) {
if (segment == null) {
return SponsorBlockSecondaryMode.DISABLED;