From b39424cea8f51bd697b0cc9a59e75002c00a6768 Mon Sep 17 00:00:00 2001 From: okjack Date: Wed, 13 Mar 2024 09:00:57 +0800 Subject: [PATCH] home refresh --- .../android/tv/ui/activity/HomeActivity.java | 29 ++++++++++++------- .../android/tv/ui/activity/VodActivity.java | 5 ++++ .../tv/ui/presenter/TypePresenter.java | 3 ++ .../android/tv/ui/activity/MainActivity.java | 11 ++----- .../android/tv/ui/fragment/VodFragment.java | 20 ++++++++----- 5 files changed, 41 insertions(+), 27 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java index 84d8725d1..6c9ecbbfb 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java @@ -287,22 +287,22 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen @Override public void setConfig(Config config) { + setConfig(config, ""); + } + + private void setConfig(Config config, String success) { if (config.getUrl().startsWith("file") && !PermissionX.isGranted(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) { - PermissionX.init(this).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> load(config)); + PermissionX.init(this).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> load(config, success)); } else { - load(config); + load(config, success); } } public void initConfig() { - initConfig(""); - } - - public void initConfig(String success) { if (isLoading()) return; WallConfig.get().init(); LiveConfig.get().init().load(); - VodConfig.get().init().load(getCallback(success), true); + VodConfig.get().init().load(getCallback(""), true); setLoading(true); } @@ -335,11 +335,11 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen })); } - private void load(Config config) { + private void load(Config config, String success) { switch (config.getType()) { case 0: getHomeFragment().mBinding.progressLayout.showProgress(); - VodConfig.load(config, getCallback("")); + VodConfig.load(config, getCallback(success)); break; } } @@ -375,12 +375,19 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen FileUtil.clearCache(new Callback() { @Override public void success() { - VodConfig.get().getConfig().json("").save(); - initConfig(ResUtil.getString(R.string.config_refreshed)); + setConfig(VodConfig.get().getConfig().json("").save(), ResUtil.getString(R.string.config_refreshed)); } }); } + @Override + public boolean onItemLongClick(Class item) { + if (mBinding.pager.getCurrentItem() != 0) return true; + onRefresh(); + return true; + } + + @Override public void setSite(Site item) { VodConfig.get().setHome(item); 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 b61cd3b1b..f4b136093 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 @@ -160,6 +160,11 @@ public class VodActivity extends BaseActivity implements TypePresenter.OnClickLi updateFilter(item); } + @Override + public boolean onItemLongClick(Class item) { + return true; + } + @Override public void onRefresh(Class item) { getFragment().onRefresh(); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/TypePresenter.java b/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/TypePresenter.java index ef6243718..e87361105 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/TypePresenter.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/TypePresenter.java @@ -24,6 +24,8 @@ public class TypePresenter extends Presenter { void onItemClick(Class item); void onRefresh(Class item); + + boolean onItemLongClick(Class item); } @Override @@ -40,6 +42,7 @@ public class TypePresenter extends Presenter { holder.binding.text.setCompoundDrawablesWithIntrinsicBounds(0, 0, getIcon(item), 0); holder.binding.text.setListener(() -> mListener.onRefresh(item)); setOnClickListener(holder, view -> mListener.onItemClick(item)); + holder.view.setOnLongClickListener(view -> mListener.onItemLongClick(item)); } @Override diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java index 01858e50b..abf2e9f5c 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java @@ -103,24 +103,19 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt if (savedInstanceState == null) mManager.change(0); } - public void initConfig() { - initConfig(""); - } - - public void initConfig(String success) { + private void initConfig() { WallConfig.get().init(); LiveConfig.get().init().load(); - VodConfig.get().init().load(getCallback(success), true); + VodConfig.get().init().load(getCallback(), true); } - private Callback getCallback(String success) { + private Callback getCallback() { return new Callback() { @Override public void success() { checkAction(getIntent()); RefreshEvent.config(); RefreshEvent.video(); - if (!TextUtils.isEmpty(success)) Notify.show(success); } @Override 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 ee4decd8d..e51111426 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 @@ -3,6 +3,7 @@ package com.fongmi.android.tv.ui.fragment; import android.Manifest; import android.app.Activity; import android.content.Intent; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -37,7 +38,6 @@ import com.fongmi.android.tv.model.SiteViewModel; import com.fongmi.android.tv.ui.activity.CollectActivity; import com.fongmi.android.tv.ui.activity.HistoryActivity; import com.fongmi.android.tv.ui.activity.KeepActivity; -import com.fongmi.android.tv.ui.activity.MainActivity; import com.fongmi.android.tv.ui.activity.VideoActivity; import com.fongmi.android.tv.ui.adapter.TypeAdapter; import com.fongmi.android.tv.ui.base.BaseFragment; @@ -219,8 +219,7 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal FileUtil.clearCache(new Callback() { @Override public void success() { - VodConfig.get().getConfig().json("").save(); - if (getActivity() instanceof MainActivity) ((MainActivity) getActivity()).initConfig(ResUtil.getString(R.string.config_refreshed)); + setConfig(VodConfig.get().getConfig().json("").save(), ResUtil.getString(R.string.config_refreshed)); } }); return true; @@ -283,27 +282,32 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal @Override public void setConfig(Config config) { + setConfig(config, ""); + } + + private void setConfig(Config config, String success) { if (config.getUrl().startsWith("file") && !PermissionX.isGranted(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) { - PermissionX.init(this).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> load(config)); + PermissionX.init(this).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> load(config, success)); } else { - load(config); + load(config, success); } } - private void load(Config config) { + private void load(Config config, String success) { switch (config.getType()) { case 0: Notify.progress(getActivity()); - VodConfig.load(config, getCallback()); + VodConfig.load(config, getCallback(success)); break; } } - private Callback getCallback() { + private Callback getCallback(String success) { return new Callback() { @Override public void success() { setConfig(); + if (!TextUtils.isEmpty(success)) Notify.show(success); } @Override