Use data from Beta channel when Snapshot not available (#2184)

This commit is contained in:
Howard Wu 2022-10-18 20:34:54 +08:00 committed by GitHub
parent 993c429f90
commit 992c933b0a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 6 deletions

View File

@ -211,8 +211,11 @@ public class RepoLoader {
if (!module.releasesLoaded) { if (!module.releasesLoaded) {
if (channel.equals(channels[1]) && !(module.getBetaReleases() != null && module.getBetaReleases().isEmpty())) { if (channel.equals(channels[1]) && !(module.getBetaReleases() != null && module.getBetaReleases().isEmpty())) {
releases = module.getBetaReleases(); releases = module.getBetaReleases();
} else if (channel.equals(channels[2]) && !(module.getSnapshotReleases() != null && module.getSnapshotReleases().isEmpty())) } else if (channel.equals(channels[2]))
releases = module.getSnapshotReleases(); 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(); releaseTime = module.getLatestReleaseTime();
if (channel.equals(channels[1]) && module.getLatestBetaReleaseTime() != null) { if (channel.equals(channels[1]) && module.getLatestBetaReleaseTime() != null) {
releaseTime = module.getLatestBetaReleaseTime(); releaseTime = module.getLatestBetaReleaseTime();
} else if (channel.equals(channels[2]) && module.getLatestSnapshotReleaseTime() != null) } else if (channel.equals(channels[2]))
releaseTime = module.getLatestSnapshotReleaseTime(); if (module.getLatestSnapshotReleaseTime() != null)
releaseTime = module.getLatestSnapshotReleaseTime();
else if (module.getLatestBetaReleaseTime() != null)
releaseTime = module.getLatestBetaReleaseTime();
} }
} }
return releaseTime; return releaseTime;

View File

@ -356,7 +356,7 @@ public class RepoFragment extends BaseFragment implements RepoLoader.RepoListene
int sort = App.getPreferences().getInt("repo_sort", 0); int sort = App.getPreferences().getInt("repo_sort", 0);
boolean upgradableFirst = App.getPreferences().getBoolean("upgradable_first", true); boolean upgradableFirst = App.getPreferences().getBoolean("upgradable_first", true);
ConcurrentHashMap<String, Boolean> upgradable = new ConcurrentHashMap<>(); ConcurrentHashMap<String, Boolean> 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) -> { .sorted((a, b) -> {
if (upgradableFirst) { if (upgradableFirst) {
var aUpgrade = upgradable.computeIfAbsent(a.getName(), n -> getUpgradableVer(a) != null); var aUpgrade = upgradable.computeIfAbsent(a.getName(), n -> getUpgradableVer(a) != null);

View File

@ -235,10 +235,11 @@ public class RepoItemFragment extends BaseFragment implements RepoLoader.RepoLis
@Override @Override
public void onModuleReleasesLoaded(OnlineModule module) { public void onModuleReleasesLoaded(OnlineModule module) {
this.module = module; this.module = module;
var repoLoader = RepoLoader.getInstance();
if (releaseAdapter != null) { if (releaseAdapter != null) {
runAsync(releaseAdapter::loadItems); 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); showHint(R.string.module_release_no_more, true);
} }
} }