From 67284885c2542f3ea793bb19925a8820958a4eb7 Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 19 Dec 2025 21:16:15 +0800 Subject: [PATCH] Clean code --- .../java/com/fongmi/android/tv/bean/Episode.java | 15 +++++++++++++++ .../java/com/fongmi/android/tv/bean/Flag.java | 13 ++----------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Episode.java b/app/src/main/java/com/fongmi/android/tv/bean/Episode.java index 7b5399a48..b31667c6b 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Episode.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Episode.java @@ -108,6 +108,14 @@ public class Episode implements Parcelable, Diffable { return name.toLowerCase().contains(getName().toLowerCase()); } + public int getScore(String remarks, int number) { + if (rule1(remarks)) return 100; + if (number != -1 && rule2(number)) return 80; + if (number == -1 && rule3(remarks)) return 70; + if (number == -1 && rule4(remarks)) return 60; + return 0; + } + public Episode trans() { if (Trans.pass()) return this; this.name = Trans.s2t(name); @@ -151,6 +159,13 @@ public class Episode implements Parcelable, Diffable { this.selected = in.readByte() != 0; } + public record Rule(Episode episode, int score) { + + public boolean find() { + return score > 0; + } + } + public static final Creator CREATOR = new Creator<>() { @Override public Episode createFromParcel(Parcel source) { diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Flag.java b/app/src/main/java/com/fongmi/android/tv/bean/Flag.java index ac52513f3..bbc7022a4 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Flag.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Flag.java @@ -3,7 +3,6 @@ package com.fongmi.android.tv.bean; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; -import android.util.Pair; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -106,21 +105,13 @@ public class Flag implements Parcelable, Diffable { for (int i = 0; i < getEpisodes().size(); i++) getEpisodes().get(i).setActivated(i == getPosition()); } - private int getScore(Episode episode, String remarks, int number) { - if (episode.rule1(remarks)) return 100; - if (number != -1 && episode.rule2(number)) return 80; - if (number == -1 && episode.rule3(remarks)) return 70; - if (number == -1 && episode.rule4(remarks)) return 60; - return 0; - } - public Episode find(String remarks, boolean strict) { if (getEpisodes().isEmpty()) return null; if (getEpisodes().size() == 1) return getEpisodes().get(0); int number = Util.getDigit(remarks); return getEpisodes().stream() - .map(episode -> new Pair<>(episode, getScore(episode, remarks, number))) - .filter(pair -> pair.second > 0).max(Comparator.comparingInt(pair -> pair.second)).map(pair -> pair.first) + .map(episode -> new Episode.Rule(episode, episode.getScore(remarks, number))) + .filter(Episode.Rule::find).max(Comparator.comparingInt(Episode.Rule::score)).map(Episode.Rule::episode) .orElseGet(() -> getPosition() != -1 ? getEpisodes().get(getPosition()) : strict ? null : getEpisodes().get(0)); }