Replace Settings.INSTANCE with Settings.instance()

This commit is contained in:
yushijinhun
2018-07-29 12:51:16 +08:00
parent 82a62e73c1
commit d549a300ab
15 changed files with 41 additions and 37 deletions

View File

@@ -63,7 +63,7 @@ public class HMCLGameDownloadTask extends Task {
// Force using common directory will not affect the behaviour that repository acts // Force using common directory will not affect the behaviour that repository acts
// Since we always copy the downloaded jar to .minecraft/versions/<version>/ // Since we always copy the downloaded jar to .minecraft/versions/<version>/
File cache = new File(Optional.ofNullable(Settings.INSTANCE.getCommonDirectory()) File cache = new File(Optional.ofNullable(Settings.instance().getCommonDirectory())
.orElse(Settings.getDefaultCommonDirectory()), .orElse(Settings.getDefaultCommonDirectory()),
"jars/" + gameVersion + ".jar"); "jars/" + gameVersion + ".jar");
if (cache.exists()) if (cache.exists())

View File

@@ -58,10 +58,10 @@ public class HMCLGameRepository extends DefaultGameRepository {
@Override @Override
public File getAssetDirectory(String version, String assetId) { public File getAssetDirectory(String version, String assetId) {
if (Settings.INSTANCE.isCommonDirectoryDisabled() || useSelf(assetId)) if (Settings.instance().isCommonDirectoryDisabled() || useSelf(assetId))
return super.getAssetDirectory(version, assetId); return super.getAssetDirectory(version, assetId);
else else
return new File(Settings.INSTANCE.getCommonDirectory(), "assets"); return new File(Settings.instance().getCommonDirectory(), "assets");
} }
@Override @Override
@@ -83,10 +83,10 @@ public class HMCLGameRepository extends DefaultGameRepository {
public File getLibraryFile(Version version, Library lib) { public File getLibraryFile(Version version, Library lib) {
VersionSetting vs = profile.getVersionSetting(version.getId()); VersionSetting vs = profile.getVersionSetting(version.getId());
File self = super.getLibraryFile(version, lib); File self = super.getLibraryFile(version, lib);
if (Settings.INSTANCE.isCommonDirectoryDisabled() || self.exists()) if (Settings.instance().isCommonDirectoryDisabled() || self.exists())
return self; return self;
else else
return new File(Settings.INSTANCE.getCommonDirectory(), "libraries/" + lib.getPath()); return new File(Settings.instance().getCommonDirectory(), "libraries/" + lib.getPath());
} }

View File

@@ -378,7 +378,7 @@ public final class LauncherHelper {
System.out.print(log); System.out.print(log);
logs.add(pair(log, level)); logs.add(pair(log, level));
if (logs.size() > Settings.INSTANCE.getLogLines()) if (logs.size() > Settings.instance().getLogLines())
logs.removeFirst(); logs.removeFirst();
if (setting.isShowLogs()) { if (setting.isShowLogs()) {

View File

@@ -60,7 +60,7 @@ public final class Accounts {
public static final OfflineAccountFactory FACTORY_OFFLINE = OfflineAccountFactory.INSTANCE; public static final OfflineAccountFactory FACTORY_OFFLINE = OfflineAccountFactory.INSTANCE;
public static final YggdrasilAccountFactory FACTORY_YGGDRASIL = new YggdrasilAccountFactory(MojangYggdrasilProvider.INSTANCE); public static final YggdrasilAccountFactory FACTORY_YGGDRASIL = new YggdrasilAccountFactory(MojangYggdrasilProvider.INSTANCE);
public static final AuthlibInjectorAccountFactory FACTORY_AUTHLIB_INJECTOR = new AuthlibInjectorAccountFactory( public static final AuthlibInjectorAccountFactory FACTORY_AUTHLIB_INJECTOR = new AuthlibInjectorAccountFactory(
new AuthlibInjectorDownloader(Launcher.HMCL_DIRECTORY.toPath(), () -> Settings.INSTANCE.getDownloadProvider())::getArtifactInfo, new AuthlibInjectorDownloader(Launcher.HMCL_DIRECTORY.toPath(), () -> Settings.instance().getDownloadProvider())::getArtifactInfo,
Accounts::getOrCreateAuthlibInjectorServer); Accounts::getOrCreateAuthlibInjectorServer);
private static final String TYPE_OFFLINE = "offline"; private static final String TYPE_OFFLINE = "offline";

View File

@@ -122,7 +122,7 @@ public final class Profile {
} }
public HMCLDependencyManager getDependency() { public HMCLDependencyManager getDependency() {
return new HMCLDependencyManager(this, Settings.INSTANCE.getDownloadProvider()); return new HMCLDependencyManager(this, Settings.instance().getDownloadProvider());
} }
public VersionSetting getVersionSetting(String id) { public VersionSetting getVersionSetting(String id) {

View File

@@ -34,7 +34,11 @@ import static org.jackhuang.hmcl.setting.ConfigHolder.config;
public class Settings { public class Settings {
public static final Settings INSTANCE = new Settings(); private static Settings instance = new Settings();
public static Settings instance() {
return instance;
}
private final boolean firstLaunch; private final boolean firstLaunch;

View File

@@ -102,7 +102,7 @@ public final class Controllers {
decorator.showPage(null); decorator.showPage(null);
leftPaneController = new LeftPaneController(decorator.getLeftPane()); leftPaneController = new LeftPaneController(decorator.getLeftPane());
Settings.INSTANCE.onProfileLoading(); Settings.instance().onProfileLoading();
Task.of(JavaVersion::initialize).start(); Task.of(JavaVersion::initialize).start();
decorator.setCustomMaximize(false); decorator.setCustomMaximize(false);

View File

@@ -200,7 +200,7 @@ public final class Decorator extends StackPane implements TaskExecutorDialogWiza
); );
nowAnimation.play(); nowAnimation.play();
}); });
if (!Settings.INSTANCE.isFirstLaunch() || Settings.INSTANCE.getLocale().getLocale() != Locale.CHINA) if (!Settings.instance().isFirstLaunch() || Settings.instance().getLocale().getLocale() != Locale.CHINA)
drawerWrapper.getChildren().remove(welcomeView); drawerWrapper.getChildren().remove(welcomeView);
if (!min) buttonsContainer.getChildren().remove(btnMin); if (!min) buttonsContainer.getChildren().remove(btnMin);

View File

@@ -216,11 +216,11 @@ public final class LeftPaneController {
private void onProfilesLoading() { private void onProfilesLoading() {
LinkedList<RipplerContainer> list = new LinkedList<>(); LinkedList<RipplerContainer> list = new LinkedList<>();
for (Profile profile : Settings.INSTANCE.getProfiles()) { for (Profile profile : Settings.instance().getProfiles()) {
VersionListItem item = new VersionListItem(Profiles.getProfileDisplayName(profile)); VersionListItem item = new VersionListItem(Profiles.getProfileDisplayName(profile));
RipplerContainer ripplerContainer = new RipplerContainer(item); RipplerContainer ripplerContainer = new RipplerContainer(item);
item.setOnSettingsButtonClicked(e -> Controllers.getDecorator().showPage(new ProfilePage(profile))); item.setOnSettingsButtonClicked(e -> Controllers.getDecorator().showPage(new ProfilePage(profile)));
ripplerContainer.setOnMouseClicked(e -> Settings.INSTANCE.setSelectedProfile(profile)); ripplerContainer.setOnMouseClicked(e -> Settings.instance().setSelectedProfile(profile));
ripplerContainer.getProperties().put("profile", profile.getName()); ripplerContainer.getProperties().put("profile", profile.getName());
ripplerContainer.maxWidthProperty().bind(leftPane.widthProperty()); ripplerContainer.maxWidthProperty().bind(leftPane.widthProperty());
list.add(ripplerContainer); list.add(ripplerContainer);

View File

@@ -177,12 +177,12 @@ public final class LogWindow extends Stage {
engine = webView.getEngine(); engine = webView.getEngine();
engine.loadContent(Lang.ignoringException(() -> IOUtils.readFullyAsString(getClass().getResourceAsStream("/assets/log-window-content.html"))) engine.loadContent(Lang.ignoringException(() -> IOUtils.readFullyAsString(getClass().getResourceAsStream("/assets/log-window-content.html")))
.replace("${FONT}", Settings.INSTANCE.getFont().getSize() + "px \"" + Settings.INSTANCE.getFont().getFamily() + "\"")); .replace("${FONT}", Settings.instance().getFont().getSize() + "px \"" + Settings.instance().getFont().getFamily() + "\""));
engine.getLoadWorker().stateProperty().addListener((a, b, newValue) -> { engine.getLoadWorker().stateProperty().addListener((a, b, newValue) -> {
if (newValue == Worker.State.SUCCEEDED) { if (newValue == Worker.State.SUCCEEDED) {
document = engine.getDocument(); document = engine.getDocument();
body = document.getElementsByTagName("body").item(0); body = document.getElementsByTagName("body").item(0);
engine.executeScript("limitedLogs=" + Settings.INSTANCE.getLogLines()); engine.executeScript("limitedLogs=" + Settings.instance().getLogLines());
latch.countDown(); latch.countDown();
onDone.fireEvent(new Event(LogWindow.this)); onDone.fireEvent(new Event(LogWindow.this));
} }
@@ -190,14 +190,14 @@ public final class LogWindow extends Stage {
boolean flag = false; boolean flag = false;
for (String i : cboLines.getItems()) for (String i : cboLines.getItems())
if (Integer.toString(Settings.INSTANCE.getLogLines()).equals(i)) { if (Integer.toString(Settings.instance().getLogLines()).equals(i)) {
cboLines.getSelectionModel().select(i); cboLines.getSelectionModel().select(i);
flag = true; flag = true;
} }
cboLines.getSelectionModel().selectedItemProperty().addListener((a, b, newValue) -> { cboLines.getSelectionModel().selectedItemProperty().addListener((a, b, newValue) -> {
Settings.INSTANCE.setLogLines(newValue == null ? 100 : Integer.parseInt(newValue)); Settings.instance().setLogLines(newValue == null ? 100 : Integer.parseInt(newValue));
engine.executeScript("limitedLogs=" + Settings.INSTANCE.getLogLines()); engine.executeScript("limitedLogs=" + Settings.instance().getLogLines());
}); });
if (!flag) if (!flag)

View File

@@ -101,7 +101,7 @@ public final class MainPage extends StackPane implements DecoratorPage {
btnAdd.setOnMouseClicked(e -> Controllers.getDecorator().startWizard(new DownloadWizardProvider(), i18n("install"))); btnAdd.setOnMouseClicked(e -> Controllers.getDecorator().startWizard(new DownloadWizardProvider(), i18n("install")));
FXUtils.installTooltip(btnAdd, i18n("install")); FXUtils.installTooltip(btnAdd, i18n("install"));
btnRefresh.setOnMouseClicked(e -> Settings.INSTANCE.getSelectedProfile().getRepository().refreshVersionsAsync().start()); btnRefresh.setOnMouseClicked(e -> Settings.instance().getSelectedProfile().getRepository().refreshVersionsAsync().start());
FXUtils.installTooltip(btnRefresh, i18n("button.refresh")); FXUtils.installTooltip(btnRefresh, i18n("button.refresh"));
} }

View File

@@ -80,7 +80,7 @@ public final class ProfilePage extends StackPane implements DecoratorPage {
@FXML @FXML
private void onDelete() { private void onDelete() {
if (profile != null) { if (profile != null) {
Settings.INSTANCE.deleteProfile(profile); Settings.instance().deleteProfile(profile);
Controllers.navigate(null); Controllers.navigate(null);
} }
} }
@@ -99,10 +99,10 @@ public final class ProfilePage extends StackPane implements DecoratorPage {
} }
Profile newProfile = new Profile(txtProfileName.getText(), new File(getLocation())); Profile newProfile = new Profile(txtProfileName.getText(), new File(getLocation()));
newProfile.setUseRelativePath(toggleUseRelativePath.isSelected()); newProfile.setUseRelativePath(toggleUseRelativePath.isSelected());
Settings.INSTANCE.putProfile(newProfile); Settings.instance().putProfile(newProfile);
} }
Settings.INSTANCE.onProfileLoading(); Settings.instance().onProfileLoading();
Controllers.navigate(null); Controllers.navigate(null);
} }

View File

@@ -111,35 +111,35 @@ public final class SettingsPage extends StackPane implements DecoratorPage {
FXUtils.smoothScrolling(scroll); FXUtils.smoothScrolling(scroll);
cboDownloadSource.getSelectionModel().select(DownloadProviders.DOWNLOAD_PROVIDERS.indexOf(Settings.INSTANCE.getDownloadProvider())); cboDownloadSource.getSelectionModel().select(DownloadProviders.DOWNLOAD_PROVIDERS.indexOf(Settings.instance().getDownloadProvider()));
cboDownloadSource.getSelectionModel().selectedIndexProperty().addListener((a, b, newValue) -> Settings.INSTANCE.setDownloadProvider(DownloadProviders.getDownloadProvider(newValue.intValue()))); cboDownloadSource.getSelectionModel().selectedIndexProperty().addListener((a, b, newValue) -> Settings.instance().setDownloadProvider(DownloadProviders.getDownloadProvider(newValue.intValue())));
cboFont.getSelectionModel().select(Settings.INSTANCE.getFont().getFamily()); cboFont.getSelectionModel().select(Settings.instance().getFont().getFamily());
cboFont.valueProperty().addListener((a, b, newValue) -> { cboFont.valueProperty().addListener((a, b, newValue) -> {
Font font = Font.font(newValue, Settings.INSTANCE.getFont().getSize()); Font font = Font.font(newValue, Settings.instance().getFont().getSize());
Settings.INSTANCE.setFont(font); Settings.instance().setFont(font);
lblDisplay.setStyle("-fx-font: " + font.getSize() + " \"" + font.getFamily() + "\";"); lblDisplay.setStyle("-fx-font: " + font.getSize() + " \"" + font.getFamily() + "\";");
}); });
txtFontSize.setText(Double.toString(Settings.INSTANCE.getFont().getSize())); txtFontSize.setText(Double.toString(Settings.instance().getFont().getSize()));
txtFontSize.getValidators().add(new Validator(it -> Lang.toDoubleOrNull(it) != null)); txtFontSize.getValidators().add(new Validator(it -> Lang.toDoubleOrNull(it) != null));
txtFontSize.textProperty().addListener((a, b, newValue) -> { txtFontSize.textProperty().addListener((a, b, newValue) -> {
if (txtFontSize.validate()) { if (txtFontSize.validate()) {
Font font = Font.font(Settings.INSTANCE.getFont().getFamily(), Double.parseDouble(newValue)); Font font = Font.font(Settings.instance().getFont().getFamily(), Double.parseDouble(newValue));
Settings.INSTANCE.setFont(font); Settings.instance().setFont(font);
lblDisplay.setStyle("-fx-font: " + font.getSize() + " \"" + font.getFamily() + "\";"); lblDisplay.setStyle("-fx-font: " + font.getSize() + " \"" + font.getFamily() + "\";");
} }
}); });
lblDisplay.setStyle("-fx-font: " + Settings.INSTANCE.getFont().getSize() + " \"" + Settings.INSTANCE.getFont().getFamily() + "\";"); lblDisplay.setStyle("-fx-font: " + Settings.instance().getFont().getSize() + " \"" + Settings.instance().getFont().getFamily() + "\";");
ObservableList<Label> list = FXCollections.observableArrayList(); ObservableList<Label> list = FXCollections.observableArrayList();
for (Locales.SupportedLocale locale : Locales.LOCALES) for (Locales.SupportedLocale locale : Locales.LOCALES)
list.add(new Label(locale.getName(Settings.INSTANCE.getLocale().getResourceBundle()))); list.add(new Label(locale.getName(Settings.instance().getLocale().getResourceBundle())));
cboLanguage.setItems(list); cboLanguage.setItems(list);
cboLanguage.getSelectionModel().select(Locales.LOCALES.indexOf(Settings.INSTANCE.getLocale())); cboLanguage.getSelectionModel().select(Locales.LOCALES.indexOf(Settings.instance().getLocale()));
cboLanguage.getSelectionModel().selectedIndexProperty().addListener((a, b, newValue) -> Settings.INSTANCE.setLocale(Locales.getLocale(newValue.intValue()))); cboLanguage.getSelectionModel().selectedIndexProperty().addListener((a, b, newValue) -> Settings.instance().setLocale(Locales.getLocale(newValue.intValue())));
// ==== Proxy ==== // ==== Proxy ====
txtProxyHost.textProperty().bindBidirectional(config().proxyHostProperty()); txtProxyHost.textProperty().bindBidirectional(config().proxyHostProperty());
@@ -191,7 +191,7 @@ public final class SettingsPage extends StackPane implements DecoratorPage {
fileCommonLocation.selectedDataProperty().bindBidirectional(config().commonDirTypeProperty()); fileCommonLocation.selectedDataProperty().bindBidirectional(config().commonDirTypeProperty());
fileCommonLocation.customTextProperty().bindBidirectional(config().commonDirectoryProperty()); fileCommonLocation.customTextProperty().bindBidirectional(config().commonDirectoryProperty());
fileCommonLocation.subtitleProperty().bind( fileCommonLocation.subtitleProperty().bind(
Bindings.createObjectBinding(() -> Optional.ofNullable(Settings.INSTANCE.getCommonDirectory()) Bindings.createObjectBinding(() -> Optional.ofNullable(Settings.instance().getCommonDirectory())
.orElse(i18n("launcher.common_directory.disabled")), .orElse(i18n("launcher.common_directory.disabled")),
config().commonDirectoryProperty(), config().commonDirTypeProperty())); config().commonDirectoryProperty(), config().commonDirTypeProperty()));

View File

@@ -41,7 +41,7 @@ public final class DownloadWizardProvider implements WizardProvider {
@Override @Override
public void start(Map<String, Object> settings) { public void start(Map<String, Object> settings) {
profile = Settings.INSTANCE.getSelectedProfile(); profile = Settings.instance().getSelectedProfile();
settings.put(PROFILE, profile); settings.put(PROFILE, profile);
} }

View File

@@ -33,7 +33,7 @@ public final class I18n {
static { static {
try { try {
RESOURCE_BUNDLE = Settings.INSTANCE.getLocale().getResourceBundle(); RESOURCE_BUNDLE = Settings.instance().getLocale().getResourceBundle();
} catch (Throwable e) { } catch (Throwable e) {
LOG.log(Level.SEVERE, "Settings cannot be initialized", e); LOG.log(Level.SEVERE, "Settings cannot be initialized", e);
} }