mirror of
https://github.com/revanced/revanced-integrations.git
synced 2025-01-20 16:57:32 +01:00
add preview category (#17)
This commit is contained in:
parent
e08567892d
commit
b9e454e329
@ -269,7 +269,7 @@ public class PlayerController {
|
||||
@Override
|
||||
public void run() {
|
||||
if (SponsorBlockSettings.countSkips &&
|
||||
segment.category != SponsorBlockSettings.SegmentInfo.Preview &&
|
||||
segment.category != SponsorBlockSettings.SegmentInfo.Unsubmitted &&
|
||||
millis - segment.start < 2000) {
|
||||
// Only skips from the start should count as a view
|
||||
SponsorBlockUtils.sendViewCountRequest(segment);
|
||||
@ -508,7 +508,7 @@ public class PlayerController {
|
||||
|
||||
skipToMillisecond(segment.end + 2);
|
||||
SkipSegmentView.hide();
|
||||
if (segment.category == SponsorBlockSettings.SegmentInfo.Preview) {
|
||||
if (segment.category == SponsorBlockSettings.SegmentInfo.Unsubmitted) {
|
||||
SponsorSegment[] newSegments = new SponsorSegment[sponsorSegmentsOfCurrentVideo.length - 1];
|
||||
int i = 0;
|
||||
for (SponsorSegment sponsorSegment : sponsorSegmentsOfCurrentVideo) {
|
||||
|
@ -158,7 +158,7 @@ public class SponsorBlockPreferenceFragment extends PreferenceFragment implement
|
||||
entryValues[i] = behaviour.key;
|
||||
}
|
||||
|
||||
for (SponsorBlockSettings.SegmentInfo segmentInfo : SponsorBlockSettings.SegmentInfo.valuesWithoutPreview()) {
|
||||
for (SponsorBlockSettings.SegmentInfo segmentInfo : SponsorBlockSettings.SegmentInfo.valuesWithoutUnsubmitted()) {
|
||||
ListPreference preference = new ListPreference(context);
|
||||
preference.setTitle(segmentInfo.getTitleWithDot());
|
||||
preference.setSummary(segmentInfo.description.toString());
|
||||
|
@ -106,7 +106,7 @@ public class SponsorBlockSettings {
|
||||
|
||||
SegmentBehaviour[] possibleBehaviours = SegmentBehaviour.values();
|
||||
final ArrayList<String> enabledCategories = new ArrayList<>(possibleBehaviours.length);
|
||||
for (SegmentInfo segment : SegmentInfo.valuesWithoutPreview()) {
|
||||
for (SegmentInfo segment : SegmentInfo.valuesWithoutUnsubmitted()) {
|
||||
SegmentBehaviour behaviour = null;
|
||||
String value = preferences.getString(segment.key, null);
|
||||
if (value == null)
|
||||
@ -127,7 +127,7 @@ public class SponsorBlockSettings {
|
||||
enabledCategories.add(segment.key);
|
||||
}
|
||||
|
||||
//"[%22sponsor%22,%22outro%22,%22music_offtopic%22,%22intro%22,%22selfpromo%22,%22interaction%22]";
|
||||
//"[%22sponsor%22,%22outro%22,%22music_offtopic%22,%22intro%22,%22selfpromo%22,%22interaction%22,%22preview%22]";
|
||||
if (enabledCategories.size() == 0)
|
||||
sponsorBlockUrlCategories = "[]";
|
||||
else
|
||||
@ -179,21 +179,23 @@ public class SponsorBlockSettings {
|
||||
Interaction("interaction", sf("segments_subscribe"), sf("skipped_subscribe"), sf("segments_subscribe_sum"), null, 0xFFcc00ff),
|
||||
SelfPromo("selfpromo", sf("segments_selfpromo"), sf("skipped_selfpromo"), sf("segments_selfpromo_sum"), null, 0xFFffff00),
|
||||
MusicOfftopic("music_offtopic", sf("segments_nomusic"), sf("skipped_nomusic"), sf("segments_nomusic_sum"), null, 0xFFff9900),
|
||||
Preview("preview", StringRef.empty, sf("skipped_preview"), StringRef.empty, SegmentBehaviour.SkipAutomatically, 0xFF000000),
|
||||
Preview("preview", sf("segments_preview"), sf("skipped_preview"), sf("segments_preview_sum"), null, 0xFF0b9d65),
|
||||
Unsubmitted("unsubmitted", StringRef.empty, sf("skipped_unsubmitted"), StringRef.empty, SegmentBehaviour.SkipAutomatically, 0xFFFFFFFF),
|
||||
;
|
||||
|
||||
private static SegmentInfo[] mValuesWithoutPreview = new SegmentInfo[]{
|
||||
private static SegmentInfo[] mValuesWithoutUnsubmitted = new SegmentInfo[]{
|
||||
Sponsor,
|
||||
Intro,
|
||||
Outro,
|
||||
Interaction,
|
||||
SelfPromo,
|
||||
MusicOfftopic
|
||||
MusicOfftopic,
|
||||
Preview
|
||||
};
|
||||
private static Map<String, SegmentInfo> mValuesMap = new HashMap<>(7);
|
||||
private static Map<String, SegmentInfo> mValuesMap = new HashMap<>(8);
|
||||
|
||||
static {
|
||||
for (SegmentInfo value : valuesWithoutPreview())
|
||||
for (SegmentInfo value : valuesWithoutUnsubmitted())
|
||||
mValuesMap.put(value.key, value);
|
||||
}
|
||||
|
||||
@ -223,8 +225,8 @@ public class SponsorBlockSettings {
|
||||
paint.setColor(color);
|
||||
}
|
||||
|
||||
public static SegmentInfo[] valuesWithoutPreview() {
|
||||
return mValuesWithoutPreview;
|
||||
public static SegmentInfo[] valuesWithoutUnsubmitted() {
|
||||
return mValuesWithoutUnsubmitted;
|
||||
}
|
||||
|
||||
public static SegmentInfo byCategoryKey(String key) {
|
||||
|
@ -27,6 +27,7 @@ import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
import java.util.TimeZone;
|
||||
@ -96,7 +97,7 @@ public abstract class SponsorBlockUtils {
|
||||
private static final DialogInterface.OnClickListener segmentTypeListener = new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
SponsorBlockSettings.SegmentInfo segmentType = SponsorBlockSettings.SegmentInfo.valuesWithoutPreview()[which];
|
||||
SponsorBlockSettings.SegmentInfo segmentType = SponsorBlockSettings.SegmentInfo.valuesWithoutUnsubmitted()[which];
|
||||
boolean enableButton;
|
||||
if (!segmentType.behaviour.showOnTimeBar) {
|
||||
Toast.makeText(
|
||||
@ -126,7 +127,7 @@ public abstract class SponsorBlockUtils {
|
||||
Context context = ((AlertDialog) dialog).getContext();
|
||||
dialog.dismiss();
|
||||
|
||||
SponsorBlockSettings.SegmentInfo[] values = SponsorBlockSettings.SegmentInfo.valuesWithoutPreview();
|
||||
SponsorBlockSettings.SegmentInfo[] values = SponsorBlockSettings.SegmentInfo.valuesWithoutUnsubmitted();
|
||||
CharSequence[] titles = new CharSequence[values.length];
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
// titles[i] = values[i].title;
|
||||
@ -366,9 +367,12 @@ public abstract class SponsorBlockUtils {
|
||||
return;
|
||||
}
|
||||
int segmentAmount = sponsorSegmentsOfCurrentVideo.length;
|
||||
CharSequence[] titles = new CharSequence[segmentAmount];
|
||||
List<CharSequence> titles = new ArrayList<>(segmentAmount); // I've replaced an array with a list to prevent null elements in the array as unsubmitted segments get filtered out
|
||||
for (int i = 0; i < segmentAmount; i++) {
|
||||
SponsorSegment segment = sponsorSegmentsOfCurrentVideo[i];
|
||||
if (segment.category == SponsorBlockSettings.SegmentInfo.Unsubmitted) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String start = dateFormatter.format(new Date(segment.start));
|
||||
String end = dateFormatter.format(new Date(segment.end));
|
||||
@ -377,16 +381,16 @@ public abstract class SponsorBlockUtils {
|
||||
segment.category.color, segment.category.title, start, end));
|
||||
if (i + 1 != segmentAmount) // prevents trailing new line after last segment
|
||||
htmlBuilder.append("<br>");
|
||||
titles[i] = Html.fromHtml(htmlBuilder.toString());
|
||||
titles.add(Html.fromHtml(htmlBuilder.toString()));
|
||||
}
|
||||
|
||||
new AlertDialog.Builder(context)
|
||||
.setItems(titles, segmentVoteClickListener)
|
||||
.setItems(titles.toArray(new CharSequence[0]), segmentVoteClickListener)
|
||||
.show();
|
||||
}
|
||||
|
||||
private static void onNewCategorySelect(final SponsorSegment segment, Context context) {
|
||||
final SponsorBlockSettings.SegmentInfo[] values = SponsorBlockSettings.SegmentInfo.valuesWithoutPreview();
|
||||
final SponsorBlockSettings.SegmentInfo[] values = SponsorBlockSettings.SegmentInfo.valuesWithoutUnsubmitted();
|
||||
CharSequence[] titles = new CharSequence[values.length];
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
titles[i] = values[i].getTitleWithDot();
|
||||
@ -414,7 +418,7 @@ public abstract class SponsorBlockUtils {
|
||||
final SponsorSegment[] segments = original == null ? new SponsorSegment[1] : Arrays.copyOf(original, original.length + 1);
|
||||
|
||||
segments[segments.length - 1] = new SponsorSegment(newSponsorSegmentStartMillis, newSponsorSegmentEndMillis,
|
||||
SponsorBlockSettings.SegmentInfo.Preview, null);
|
||||
SponsorBlockSettings.SegmentInfo.Unsubmitted, null);
|
||||
|
||||
Arrays.sort(segments);
|
||||
sponsorSegmentsOfCurrentVideo = segments;
|
||||
|
@ -167,6 +167,8 @@
|
||||
<string name="segments_selfpromo_sum">Similar to "sponsor" except for unpaid or self promotion. This includes sections about merchandise, donations, or information about who they collaborated with</string>
|
||||
<string name="segments_nomusic">Music: Non-Music Section</string>
|
||||
<string name="segments_nomusic_sum">Only for use in music videos. This includes introductions or outros in music videos</string>
|
||||
<string name="segments_preview">Preview/Recap</string>
|
||||
<string name="segments_preview_sum">Quick recap of previous episodes, or a preview of what\'s coming up later in the current video. Meant for edited together clips, not for spoken summaries.</string>
|
||||
<string name="skipped_sponsor">Skipped sponsor</string>
|
||||
<string name="skipped_intermission">Skipped intro</string>
|
||||
<string name="skipped_endcard">Skipped outro</string>
|
||||
@ -174,6 +176,7 @@
|
||||
<string name="skipped_selfpromo">Skipped self promotion</string>
|
||||
<string name="skipped_nomusic">Skipped silence</string>
|
||||
<string name="skipped_preview">Skipped preview</string>
|
||||
<string name="skipped_unsubmitted">Skipped unsubmitted segment</string>
|
||||
<string name="skip_automatically">Skip automatically</string>
|
||||
<string name="skip_showbutton">Show a skip button</string>
|
||||
<string name="skip_ignore">Don\'t do anything</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user