mirror of
https://github.com/revanced/revanced-integrations.git
synced 2025-01-20 16:57:32 +01:00
refactor(Tumblr): Use a common filter patch (#479)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
This commit is contained in:
parent
c992289d59
commit
1689bf4125
@ -0,0 +1,32 @@
|
||||
package app.revanced.tumblr.patches;
|
||||
|
||||
import com.tumblr.rumblr.model.TimelineObject;
|
||||
import com.tumblr.rumblr.model.Timelineable;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
||||
public final class TimelineFilterPatch {
|
||||
private static final HashSet<String> blockedObjectTypes = new HashSet<>();
|
||||
|
||||
static {
|
||||
// This dummy gets removed by the TimelineFilterPatch and in its place,
|
||||
// equivalent instructions with a different constant string
|
||||
// will be inserted for each Timeline object type filter.
|
||||
// Modifying this line may break the patch.
|
||||
blockedObjectTypes.add("BLOCKED_OBJECT_DUMMY");
|
||||
}
|
||||
|
||||
// Calls to this method are injected where the list of Timeline objects is first received.
|
||||
// We modify the list filter out elements that we want to hide.
|
||||
public static void filterTimeline(final List<TimelineObject<? extends Timelineable>> timelineObjects) {
|
||||
final var iterator = timelineObjects.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
var timelineElement = iterator.next();
|
||||
if (timelineElement == null) continue;
|
||||
|
||||
String elementType = timelineElement.getData().getTimelineObjectType().toString();
|
||||
if (blockedObjectTypes.contains(elementType)) iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package com.tumblr.rumblr.model;
|
||||
|
||||
public class TimelineObject<T extends Timelineable> {
|
||||
public final T getData() {
|
||||
throw new UnsupportedOperationException("Stub");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package com.tumblr.rumblr.model;
|
||||
|
||||
public enum TimelineObjectType {
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
package com.tumblr.rumblr.model;
|
||||
|
||||
public interface Timelineable {
|
||||
TimelineObjectType getTimelineObjectType();
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user