From d7d34c4a63ea99dac08f6b49a67c354e79a07edf Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 20 Mar 2026 00:07:00 +0800 Subject: [PATCH] Add refetsh category api --- .../com/fongmi/android/tv/ui/activity/VodActivity.java | 9 +++++++++ .../java/com/fongmi/android/tv/event/RefreshEvent.java | 6 +++++- .../com/fongmi/android/tv/server/process/Action.java | 1 + .../fongmi/android/tv/ui/fragment/FolderFragment.java | 4 ++++ .../com/fongmi/android/tv/ui/fragment/VodFragment.java | 3 +++ 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java index 11f06c094..ff3fd52a4 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java @@ -23,12 +23,16 @@ import com.fongmi.android.tv.api.config.VodConfig; import com.fongmi.android.tv.bean.Class; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.databinding.ActivityVodBinding; +import com.fongmi.android.tv.event.RefreshEvent; import com.fongmi.android.tv.ui.base.BaseActivity; import com.fongmi.android.tv.ui.fragment.FolderFragment; import com.fongmi.android.tv.ui.presenter.TypePresenter; import com.fongmi.android.tv.utils.KeyUtil; import com.fongmi.android.tv.utils.ResUtil; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + import java.util.Optional; public class VodActivity extends BaseActivity implements TypePresenter.OnClickListener { @@ -141,6 +145,11 @@ public class VodActivity extends BaseActivity implements TypePresenter.OnClickLi if (isFilterVisible()) updateFilter(); } + @Subscribe(threadMode = ThreadMode.MAIN) + public void onRefreshEvent(RefreshEvent event) { + if (event.getType() == RefreshEvent.Type.CATEGORY) getFragment().onRefresh(); + } + @Override public void onItemClick(Class item) { updateFilter(item); diff --git a/app/src/main/java/com/fongmi/android/tv/event/RefreshEvent.java b/app/src/main/java/com/fongmi/android/tv/event/RefreshEvent.java index fc153371b..7044bf46e 100644 --- a/app/src/main/java/com/fongmi/android/tv/event/RefreshEvent.java +++ b/app/src/main/java/com/fongmi/android/tv/event/RefreshEvent.java @@ -14,6 +14,10 @@ public class RefreshEvent { EventBus.getDefault().post(new RefreshEvent(Type.HOME)); } + public static void category() { + EventBus.getDefault().post(new RefreshEvent(Type.CATEGORY)); + } + public static void history() { EventBus.getDefault().post(new RefreshEvent(Type.HISTORY)); } @@ -77,6 +81,6 @@ public class RefreshEvent { } public enum Type { - HOME, HISTORY, KEEP, SIZE, LIVE, DETAIL, PLAYER, SUBTITLE, DANMAKU, VOD + HOME, CATEGORY, HISTORY, KEEP, SIZE, LIVE, DETAIL, PLAYER, SUBTITLE, DANMAKU, VOD } } diff --git a/app/src/main/java/com/fongmi/android/tv/server/process/Action.java b/app/src/main/java/com/fongmi/android/tv/server/process/Action.java index 830029d06..5b11c7346 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/process/Action.java +++ b/app/src/main/java/com/fongmi/android/tv/server/process/Action.java @@ -86,6 +86,7 @@ public class Action implements Process { if ("live".equals(type)) RefreshEvent.live(); else if ("detail".equals(type)) RefreshEvent.detail(); else if ("player".equals(type)) RefreshEvent.player(); + else if ("category".equals(type)) RefreshEvent.category(); else if ("danmaku".equals(type)) RefreshEvent.danmaku(path); else if ("subtitle".equals(type)) RefreshEvent.subtitle(path); else if ("vod".equals(type)) RefreshEvent.vod(Vod.objectFrom(json)); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/FolderFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/FolderFragment.java index bd0fb2b1e..2ab666380 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/FolderFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/FolderFragment.java @@ -84,6 +84,10 @@ public class FolderFragment extends BaseFragment { return getParent().getResult(); } + public void onRefresh() { + Optional.ofNullable(getChild()).ifPresent(TypeFragment::onRefresh); + } + public void scrollToTop() { Optional.ofNullable(getChild()).ifPresent(TypeFragment::scrollToTop); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java index c8c60933a..f7cddb778 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java @@ -243,6 +243,9 @@ public class VodFragment extends BaseFragment implements ConfigCallback, SiteCal case SIZE: homeContent(); break; + case CATEGORY: + getFragment().onRefresh(); + break; } }