From 9b7b8c762abfd67f74c1c352fa394e3f3ab6cd07 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Mon, 22 Nov 2021 17:30:15 +0800 Subject: [PATCH] Fix repo loading sync (#1425) --- app/src/main/java/org/lsposed/manager/repo/RepoLoader.java | 6 +++--- .../java/org/lsposed/manager/ui/fragment/HomeFragment.java | 3 ++- app/src/main/java/org/lsposed/manager/util/ModuleUtil.java | 2 +- 3 files changed, 6 insertions(+), 5 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 f4fbc704..18759c20 100644 --- a/app/src/main/java/org/lsposed/manager/repo/RepoLoader.java +++ b/app/src/main/java/org/lsposed/manager/repo/RepoLoader.java @@ -143,12 +143,12 @@ public class RepoLoader { onlineModules = modules; Files.write(repoFile, bodyString.getBytes(StandardCharsets.UTF_8)); - for (Listener listener : listeners) { - listener.repoLoaded(); - } synchronized (this) { repoLoaded = true; } + for (Listener listener : listeners) { + listener.repoLoaded(); + } } catch (Throwable t) { Log.e(App.TAG, Log.getStackTraceString(t)); for (Listener listener : listeners) { diff --git a/app/src/main/java/org/lsposed/manager/ui/fragment/HomeFragment.java b/app/src/main/java/org/lsposed/manager/ui/fragment/HomeFragment.java index 80d3032a..1cfd67fc 100644 --- a/app/src/main/java/org/lsposed/manager/ui/fragment/HomeFragment.java +++ b/app/src/main/java/org/lsposed/manager/ui/fragment/HomeFragment.java @@ -228,6 +228,7 @@ public class HomeFragment extends BaseFragment implements RepoLoader.Listener, M @Override public void onModulesReloaded() { + if (repoLoader.isRepoLoaded()) repoLoaded(); setModulesSummary(moduleUtil.getEnabledModulesCount()); } @@ -259,7 +260,7 @@ public class HomeFragment extends BaseFragment implements RepoLoader.Listener, M } private void setModulesSummary(int moduleCount) { - runOnUiThread(() -> binding.modulesSummary.setText(getResources().getQuantityString(R.plurals.modules_enabled_count, moduleCount, moduleCount))); + runOnUiThread(() -> binding.modulesSummary.setText(moduleCount == - 1? getString(R.string.loading) : getResources().getQuantityString(R.plurals.modules_enabled_count, moduleCount, moduleCount))); } @Override diff --git a/app/src/main/java/org/lsposed/manager/util/ModuleUtil.java b/app/src/main/java/org/lsposed/manager/util/ModuleUtil.java index de9f56b1..d0935159 100644 --- a/app/src/main/java/org/lsposed/manager/util/ModuleUtil.java +++ b/app/src/main/java/org/lsposed/manager/util/ModuleUtil.java @@ -181,7 +181,7 @@ public final class ModuleUtil { } public int getEnabledModulesCount() { - return enabledModules.size(); + return isReloading ? -1 : enabledModules.size(); } public void addListener(ModuleListener listener) {