Fix repo loading sync (#1425)

This commit is contained in:
LoveSy 2021-11-22 17:30:15 +08:00 committed by GitHub
parent 2863fef5a1
commit 9b7b8c762a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 5 deletions

View File

@ -143,12 +143,12 @@ public class RepoLoader {
onlineModules = modules; onlineModules = modules;
Files.write(repoFile, bodyString.getBytes(StandardCharsets.UTF_8)); Files.write(repoFile, bodyString.getBytes(StandardCharsets.UTF_8));
for (Listener listener : listeners) {
listener.repoLoaded();
}
synchronized (this) { synchronized (this) {
repoLoaded = true; repoLoaded = true;
} }
for (Listener listener : listeners) {
listener.repoLoaded();
}
} catch (Throwable t) { } catch (Throwable t) {
Log.e(App.TAG, Log.getStackTraceString(t)); Log.e(App.TAG, Log.getStackTraceString(t));
for (Listener listener : listeners) { for (Listener listener : listeners) {

View File

@ -228,6 +228,7 @@ public class HomeFragment extends BaseFragment implements RepoLoader.Listener, M
@Override @Override
public void onModulesReloaded() { public void onModulesReloaded() {
if (repoLoader.isRepoLoaded()) repoLoaded();
setModulesSummary(moduleUtil.getEnabledModulesCount()); setModulesSummary(moduleUtil.getEnabledModulesCount());
} }
@ -259,7 +260,7 @@ public class HomeFragment extends BaseFragment implements RepoLoader.Listener, M
} }
private void setModulesSummary(int moduleCount) { 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 @Override

View File

@ -181,7 +181,7 @@ public final class ModuleUtil {
} }
public int getEnabledModulesCount() { public int getEnabledModulesCount() {
return enabledModules.size(); return isReloading ? -1 : enabledModules.size();
} }
public void addListener(ModuleListener listener) { public void addListener(ModuleListener listener) {