From 992c933b0aeff283c1be713a2d57b2456517b2f6 Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Tue, 18 Oct 2022 20:34:54 +0800 Subject: [PATCH] Use data from Beta channel when Snapshot not available (#2184) --- .../java/org/lsposed/manager/repo/RepoLoader.java | 14 ++++++++++---- .../lsposed/manager/ui/fragment/RepoFragment.java | 2 +- .../manager/ui/fragment/RepoItemFragment.java | 3 ++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/lsposed/manager/repo/RepoLoader.java b/app/src/main/java/org/lsposed/manager/repo/RepoLoader.java index 773feccf..2a53867b 100644 --- a/app/src/main/java/org/lsposed/manager/repo/RepoLoader.java +++ b/app/src/main/java/org/lsposed/manager/repo/RepoLoader.java @@ -211,8 +211,11 @@ public class RepoLoader { if (!module.releasesLoaded) { if (channel.equals(channels[1]) && !(module.getBetaReleases() != null && module.getBetaReleases().isEmpty())) { releases = module.getBetaReleases(); - } else if (channel.equals(channels[2]) && !(module.getSnapshotReleases() != null && module.getSnapshotReleases().isEmpty())) - releases = module.getSnapshotReleases(); + } else if (channel.equals(channels[2])) + if (!(module.getSnapshotReleases() != null && module.getSnapshotReleases().isEmpty())) + releases = module.getSnapshotReleases(); + else if (!(module.getBetaReleases() != null && module.getBetaReleases().isEmpty())) + releases = module.getBetaReleases(); } } } @@ -228,8 +231,11 @@ public class RepoLoader { releaseTime = module.getLatestReleaseTime(); if (channel.equals(channels[1]) && module.getLatestBetaReleaseTime() != null) { releaseTime = module.getLatestBetaReleaseTime(); - } else if (channel.equals(channels[2]) && module.getLatestSnapshotReleaseTime() != null) - releaseTime = module.getLatestSnapshotReleaseTime(); + } else if (channel.equals(channels[2])) + if (module.getLatestSnapshotReleaseTime() != null) + releaseTime = module.getLatestSnapshotReleaseTime(); + else if (module.getLatestBetaReleaseTime() != null) + releaseTime = module.getLatestBetaReleaseTime(); } } return releaseTime; diff --git a/app/src/main/java/org/lsposed/manager/ui/fragment/RepoFragment.java b/app/src/main/java/org/lsposed/manager/ui/fragment/RepoFragment.java index 232a05d5..fa5058f0 100644 --- a/app/src/main/java/org/lsposed/manager/ui/fragment/RepoFragment.java +++ b/app/src/main/java/org/lsposed/manager/ui/fragment/RepoFragment.java @@ -356,7 +356,7 @@ public class RepoFragment extends BaseFragment implements RepoLoader.RepoListene int sort = App.getPreferences().getInt("repo_sort", 0); boolean upgradableFirst = App.getPreferences().getBoolean("upgradable_first", true); ConcurrentHashMap upgradable = new ConcurrentHashMap<>(); - fullList = modules.parallelStream().filter((onlineModule -> !onlineModule.isHide() && !(onlineModule.getReleases() != null && onlineModule.getReleases().isEmpty()))) + fullList = modules.parallelStream().filter((onlineModule -> !onlineModule.isHide() && !(repoLoader.getReleases(onlineModule.getName()) != null && repoLoader.getReleases(onlineModule.getName()).isEmpty()))) .sorted((a, b) -> { if (upgradableFirst) { var aUpgrade = upgradable.computeIfAbsent(a.getName(), n -> getUpgradableVer(a) != null); diff --git a/app/src/main/java/org/lsposed/manager/ui/fragment/RepoItemFragment.java b/app/src/main/java/org/lsposed/manager/ui/fragment/RepoItemFragment.java index aade32e2..b9c53b3d 100644 --- a/app/src/main/java/org/lsposed/manager/ui/fragment/RepoItemFragment.java +++ b/app/src/main/java/org/lsposed/manager/ui/fragment/RepoItemFragment.java @@ -235,10 +235,11 @@ public class RepoItemFragment extends BaseFragment implements RepoLoader.RepoLis @Override public void onModuleReleasesLoaded(OnlineModule module) { this.module = module; + var repoLoader = RepoLoader.getInstance(); if (releaseAdapter != null) { runAsync(releaseAdapter::loadItems); } - if ((module.getReleases() != null ? module.getReleases().size() : 1) == 1) { + if ((repoLoader.getReleases(module.getName()) != null ? repoLoader.getReleases(module.getName()).size() : 1) == 1) { showHint(R.string.module_release_no_more, true); } }