From ab7b7351f520dba9bb8b86fff87c2200cd621e5e Mon Sep 17 00:00:00 2001 From: Federico Fissore Date: Fri, 22 May 2015 15:42:05 +0200 Subject: [PATCH] Removed lots of calls to BaseNoGui.getPlatform(): static is evil --- .../libraries/ui/LibraryManagerUI.java | 10 +- .../packages/ui/ContributionManagerUI.java | 9 +- app/src/processing/app/Base.java | 98 +++---------------- app/src/processing/app/Editor.java | 9 +- app/test/processing/app/AbstractGUITest.java | 4 +- .../app/AbstractWithPreferencesTest.java | 4 +- .../libraries/LibraryInstaller.java | 12 ++- .../packages/ContributedTool.java | 14 ++- .../packages/ContributionInstaller.java | 49 +++++----- .../packages/ContributionsIndexer.java | 7 +- .../src/processing/app/BaseNoGui.java | 4 +- 11 files changed, 84 insertions(+), 136 deletions(-) diff --git a/app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java b/app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java index f816d1944..db178f1ed 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java +++ b/app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java @@ -37,6 +37,8 @@ import cc.arduino.contributions.ui.InstallerJDialogUncaughtExceptionHandler; import cc.arduino.contributions.ui.*; import cc.arduino.utils.Progress; import com.google.common.base.Predicate; +import processing.app.BaseNoGui; +import processing.app.Platform; import javax.swing.*; import java.awt.*; @@ -49,8 +51,9 @@ import static processing.app.I18n._; @SuppressWarnings("serial") public class LibraryManagerUI extends InstallerJDialog { - private LibrariesIndexer indexer; private final JComboBox typeChooser; + private final Platform platform; + private LibrariesIndexer indexer; private Predicate typeFilter; @Override @@ -86,8 +89,9 @@ public class LibraryManagerUI extends InstallerJDialog { }; } - public LibraryManagerUI(Frame parent) { + public LibraryManagerUI(Frame parent, Platform platform) { super(parent, "Library Manager", Dialog.ModalityType.APPLICATION_MODAL, _("Unable to reach Arduino.cc due to possible network issues.")); + this.platform = platform; filtersContainer.add(new JLabel(_("Topic")), 1); filtersContainer.remove(2); @@ -177,7 +181,7 @@ public class LibraryManagerUI extends InstallerJDialog { filterField.setEnabled(contribModel.getRowCount() > 0); // Create LibrariesInstaller tied with the provided index - installer = new LibraryInstaller(indexer) { + installer = new LibraryInstaller(indexer, platform) { @Override public void onProgress(Progress progress) { setProgress(progress); diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java b/app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java index 1ffa77af6..6c32b2093 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java @@ -34,7 +34,9 @@ import cc.arduino.contributions.packages.ContributionsIndexer; import cc.arduino.contributions.DownloadableContribution; import cc.arduino.contributions.ui.*; import cc.arduino.utils.Progress; +import processing.app.BaseNoGui; import processing.app.I18n; +import processing.app.Platform; import javax.swing.*; import java.awt.*; @@ -47,7 +49,7 @@ import static processing.app.I18n._; @SuppressWarnings("serial") public class ContributionManagerUI extends InstallerJDialog { - // private ContributedPlatformTableCell cellEditor; + private final Platform platform; @Override protected FilteredAbstractTableModel createContribModel() { @@ -82,8 +84,9 @@ public class ContributionManagerUI extends InstallerJDialog { }; } - public ContributionManagerUI(Frame parent) { + public ContributionManagerUI(Frame parent, Platform platform) { super(parent, _("Boards Manager"), Dialog.ModalityType.APPLICATION_MODAL, _("Unable to reach Arduino.cc due to possible network issues.")); + this.platform = platform; } public void setIndexer(ContributionsIndexer indexer) { @@ -113,7 +116,7 @@ public class ContributionManagerUI extends InstallerJDialog { } // Create ConstributionInstaller tied with the provided index - installer = new ContributionInstaller(indexer) { + installer = new ContributionInstaller(indexer, platform) { @Override public void onProgress(Progress progress) { setProgress(progress); diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index a74bd499d..7c1721151 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -145,9 +145,9 @@ public class Base { BaseNoGui.notifier = new GUIUserNotifier(); - initPlatform(); + BaseNoGui.initPlatform(); - getPlatform().init(); + BaseNoGui.getPlatform().init(); BaseNoGui.initPortableFolder(); @@ -206,7 +206,7 @@ public class Base { // Set the look and feel before opening the window try { - getPlatform().setLookAndFeel(); + BaseNoGui.getPlatform().setLookAndFeel(); } catch (Exception e) { String mess = e.getMessage(); if (mess.indexOf("ch.randelshofer.quaqua.QuaquaLookAndFeel") == -1) { @@ -261,23 +261,6 @@ public class Base { return commandLine; } - - static protected void initPlatform() { - BaseNoGui.initPlatform(); - } - - - static protected void initRequirements() { - try { - Class.forName("com.sun.jdi.VirtualMachine"); - } catch (ClassNotFoundException cnfe) { - showError(_("Please install JDK 1.5 or later"), - _("Arduino requires a full JDK (not just a JRE)\n" + - "to run. Please install JDK 1.5 or later.\n" + - "More information can be found in the reference."), cnfe); - } - } - // Returns a File object for the given pathname. If the pathname // is not absolute, it is interpreted relative to the current // directory when starting the IDE (which is not the same as the @@ -349,8 +332,8 @@ public class Base { PreferencesData.save(); if (parser.isInstallBoard()) { - ContributionsIndexer indexer = new ContributionsIndexer(BaseNoGui.getSettingsFolder()); - ContributionInstaller installer = new ContributionInstaller(indexer) { + ContributionsIndexer indexer = new ContributionsIndexer(BaseNoGui.getSettingsFolder(), BaseNoGui.getPlatform()); + ContributionInstaller installer = new ContributionInstaller(indexer, BaseNoGui.getPlatform()) { private String lastStatus = ""; @Override @@ -396,8 +379,8 @@ public class Base { System.exit(0); } else if (parser.isInstallLibrary()) { - LibrariesIndexer indexer = new LibrariesIndexer(BaseNoGui.getSettingsFolder(), new ContributionsIndexer(BaseNoGui.getSettingsFolder())); - LibraryInstaller installer = new LibraryInstaller(indexer) { + LibrariesIndexer indexer = new LibrariesIndexer(BaseNoGui.getSettingsFolder(), new ContributionsIndexer(BaseNoGui.getSettingsFolder(), BaseNoGui.getPlatform())); + LibraryInstaller installer = new LibraryInstaller(indexer, BaseNoGui.getPlatform()) { private String lastStatus = ""; @Override @@ -929,7 +912,7 @@ public class Base { // } // System.err.println(" creating new editor"); - Editor editor = new Editor(this, file, location); + Editor editor = new Editor(this, file, location, BaseNoGui.getPlatform()); // Editor editor = null; // try { // editor = new Editor(this, path, location); @@ -1302,7 +1285,7 @@ public class Base { private void openManageLibrariesDialog() { @SuppressWarnings("serial") - LibraryManagerUI managerUI = new LibraryManagerUI(activeEditor) { + LibraryManagerUI managerUI = new LibraryManagerUI(activeEditor, BaseNoGui.getPlatform()) { @Override protected void onIndexesUpdated() throws Exception { BaseNoGui.initPackages(); @@ -1325,7 +1308,7 @@ public class Base { private void openInstallBoardDialog(final String filterText) throws Exception { // Create dialog for contribution manager @SuppressWarnings("serial") - ContributionManagerUI managerUI = new ContributionManagerUI(activeEditor) { + ContributionManagerUI managerUI = new ContributionManagerUI(activeEditor, BaseNoGui.getPlatform()) { @Override protected void onIndexesUpdated() throws Exception { BaseNoGui.initPackages(); @@ -1829,65 +1812,6 @@ public class Base { dialog.setVisible(true); } - - // ................................................................... - - - /** - * Get list of platform constants. - */ -// static public int[] getPlatforms() { -// return platforms; -// } - - -// static public int getPlatform() { -// String osname = System.getProperty("os.name"); -// -// if (osname.indexOf("Mac") != -1) { -// return PConstants.MACOSX; -// -// } else if (osname.indexOf("Windows") != -1) { -// return PConstants.WINDOWS; -// -// } else if (osname.equals("Linux")) { // true for the ibm vm -// return PConstants.LINUX; -// -// } else { -// return PConstants.OTHER; -// } -// } - static public Platform getPlatform() { - return BaseNoGui.getPlatform(); - } - - - static public String getPlatformName() { - String osname = System.getProperty("os.name"); - - if (osname.indexOf("Mac") != -1) { - return "macosx"; - - } else if (osname.indexOf("Windows") != -1) { - return "windows"; - - } else if (osname.equals("Linux")) { // true for the ibm vm - return "linux"; - - } else { - return "other"; - } - } - - - // ................................................................. - - - static public File getSettingsFolder() { - return BaseNoGui.getSettingsFolder(); - } - - /** * Convenience method to get a File object for the specified filename inside * the settings folder. @@ -2092,7 +2016,7 @@ public class Base { */ static public void openURL(String url) { try { - getPlatform().openURL(url); + BaseNoGui.getPlatform().openURL(url); } catch (Exception e) { showWarning(_("Problem Opening URL"), diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 385688fe0..4589e8046 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -70,6 +70,8 @@ import cc.arduino.packages.uploaders.SerialUploader; @SuppressWarnings("serial") public class Editor extends JFrame implements RunnerListener { + private final Platform platform; + private static class ShouldSaveIfModified implements Predicate { @Override @@ -184,9 +186,10 @@ public class Editor extends JFrame implements RunnerListener { Runnable exportAppHandler; - public Editor(Base ibase, File file, int[] location) throws Exception { + public Editor(Base ibase, File file, int[] location, Platform platform) throws Exception { super("Arduino"); this.base = ibase; + this.platform = platform; Base.setIcon(this); @@ -992,7 +995,7 @@ public class Editor extends JFrame implements RunnerListener { @Override public void hyperlinkUpdate(HyperlinkEvent hyperlinkEvent) { try { - base.getPlatform().openURL(hyperlinkEvent.getURL().toExternalForm()); + platform.openURL(hyperlinkEvent.getURL().toExternalForm()); } catch (Exception e) { Base.showWarning(e.getMessage(), e.getMessage(), e); } @@ -1129,7 +1132,7 @@ public class Editor extends JFrame implements RunnerListener { List ports = Base.getDiscoveryManager().discovery(); - ports = Base.getPlatform().filterPorts(ports, PreferencesData.getBoolean("serial.ports.showall")); + ports = platform.filterPorts(ports, PreferencesData.getBoolean("serial.ports.showall")); Collections.sort(ports, new Comparator() { @Override diff --git a/app/test/processing/app/AbstractGUITest.java b/app/test/processing/app/AbstractGUITest.java index b4fe19db0..85a82c1b0 100644 --- a/app/test/processing/app/AbstractGUITest.java +++ b/app/test/processing/app/AbstractGUITest.java @@ -50,11 +50,11 @@ public abstract class AbstractGUITest { FailOnThreadViolationRepaintManager.install(); - Base.initPlatform(); + BaseNoGui.initPlatform(); Preferences.init(null); JPopupMenu.setDefaultLightWeightPopupEnabled(false); Theme.init(); - Base.getPlatform().setLookAndFeel(); + BaseNoGui.getPlatform().setLookAndFeel(); Base.untitledFolder = Base.createTempFolder("untitled"); DeleteFilesOnShutdown.add(Base.untitledFolder); diff --git a/app/test/processing/app/AbstractWithPreferencesTest.java b/app/test/processing/app/AbstractWithPreferencesTest.java index 7ee6e2195..f19fd6af0 100644 --- a/app/test/processing/app/AbstractWithPreferencesTest.java +++ b/app/test/processing/app/AbstractWithPreferencesTest.java @@ -37,8 +37,8 @@ public abstract class AbstractWithPreferencesTest { @Before public void init() throws Exception { Runtime.getRuntime().addShutdownHook(new Thread(DeleteFilesOnShutdown.INSTANCE)); - Base.initPlatform(); - Base.getPlatform().init(); + BaseNoGui.initPlatform(); + BaseNoGui.getPlatform().init(); Preferences.init(null); Theme.init(); diff --git a/arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java b/arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java index bf7eec121..b50d9cb2d 100644 --- a/arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java +++ b/arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java @@ -33,8 +33,8 @@ import cc.arduino.contributions.GZippedJsonDownloader; import cc.arduino.utils.ArchiveExtractor; import cc.arduino.utils.MultiStepProgress; import cc.arduino.utils.Progress; -import processing.app.BaseNoGui; import processing.app.I18n; +import processing.app.Platform; import processing.app.helpers.FileUtils; import java.io.File; @@ -60,10 +60,12 @@ public class LibraryInstaller { private final LibrariesIndexer indexer; private final DownloadableContributionsDownloader downloader; + private final Platform platform; - public LibraryInstaller(LibrariesIndexer _indexer) { - indexer = _indexer; - File stagingFolder = _indexer.getStagingFolder(); + public LibraryInstaller(LibrariesIndexer indexer, Platform platform) { + this.indexer = indexer; + this.platform = platform; + File stagingFolder = indexer.getStagingFolder(); downloader = new DownloadableContributionsDownloader(stagingFolder) { @Override protected void onProgress(Progress progress) { @@ -126,7 +128,7 @@ public class LibraryInstaller { File libsFolder = indexer.getSketchbookLibrariesFolder(); File tmpFolder = FileUtils.createTempFolderIn(libsFolder); try { - new ArchiveExtractor(BaseNoGui.getPlatform()).extract(lib.getDownloadedFile(), tmpFolder, 1); + new ArchiveExtractor(platform).extract(lib.getDownloadedFile(), tmpFolder, 1); } catch (Exception e) { if (tmpFolder.exists()) FileUtils.recursiveDelete(tmpFolder); diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributedTool.java b/arduino-core/src/cc/arduino/contributions/packages/ContributedTool.java index 8462846c8..50f7cee1c 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributedTool.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributedTool.java @@ -29,7 +29,7 @@ package cc.arduino.contributions.packages; import cc.arduino.contributions.DownloadableContribution; -import processing.app.BaseNoGui; +import processing.app.Platform; import java.util.List; @@ -41,9 +41,9 @@ public abstract class ContributedTool { public abstract List getSystems(); - public DownloadableContribution getDownloadableContribution() { + public DownloadableContribution getDownloadableContribution(Platform platform) { for (HostDependentDownloadableContribution c : getSystems()) { - if (c.isCompatible(BaseNoGui.getPlatform())) + if (c.isCompatible(platform)) return c; } return null; @@ -51,11 +51,17 @@ public abstract class ContributedTool { @Override public String toString() { + return toString(null); + } + + public String toString(Platform platform) { String res; res = "Tool name : " + getName() + " " + getVersion() + "\n"; for (HostDependentDownloadableContribution sys : getSystems()) { res += " sys"; - res += sys.isCompatible(BaseNoGui.getPlatform()) ? "*" : " "; + if (platform != null) { + res += sys.isCompatible(platform) ? "*" : " "; + } res += " : " + sys + "\n"; } return res; diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java b/arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java index 90c9beaea..474b5fe51 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java @@ -40,6 +40,7 @@ import org.apache.commons.exec.CommandLine; import org.apache.commons.exec.Executor; import processing.app.BaseNoGui; import processing.app.I18n; +import processing.app.Platform; import processing.app.PreferencesData; import processing.app.helpers.FileUtils; import processing.app.helpers.filefilters.OnlyDirs; @@ -58,8 +59,10 @@ public class ContributionInstaller { private final ContributionsIndexer indexer; private final DownloadableContributionsDownloader downloader; + private final Platform platform; - public ContributionInstaller(ContributionsIndexer contributionsIndexer) { + public ContributionInstaller(ContributionsIndexer contributionsIndexer, Platform platform) { + this.platform = platform; File stagingFolder = contributionsIndexer.getStagingFolder(); indexer = contributionsIndexer; downloader = new DownloadableContributionsDownloader(stagingFolder) { @@ -70,18 +73,18 @@ public class ContributionInstaller { }; } - public List install(ContributedPlatform platform) throws Exception { + public List install(ContributedPlatform contributedPlatform) throws Exception { List errors = new LinkedList(); - if (platform.isInstalled()) { + if (contributedPlatform.isInstalled()) { throw new Exception("Platform is already installed!"); } // Do not download already installed tools - List tools = new LinkedList(platform.getResolvedTools()); + List tools = new LinkedList(contributedPlatform.getResolvedTools()); Iterator toolsIterator = tools.iterator(); while (toolsIterator.hasNext()) { ContributedTool tool = toolsIterator.next(); - DownloadableContribution downloadable = tool.getDownloadableContribution(); + DownloadableContribution downloadable = tool.getDownloadableContribution(platform); if (downloadable == null) { throw new Exception(format(_("Tool {0} is not available for your operating system."), tool.getName())); } @@ -96,7 +99,7 @@ public class ContributionInstaller { // Download all try { // Download platform - downloader.download(platform, progress, _("Downloading boards definitions.")); + downloader.download(contributedPlatform, progress, _("Downloading boards definitions.")); progress.stepDone(); // Download tools @@ -104,7 +107,7 @@ public class ContributionInstaller { for (ContributedTool tool : tools) { String msg = format(_("Downloading tools ({0}/{1})."), i, tools.size()); i++; - downloader.download(tool.getDownloadableContribution(), progress, msg); + downloader.download(tool.getDownloadableContribution(platform), progress, msg); progress.stepDone(); } } catch (InterruptedException e) { @@ -112,7 +115,7 @@ public class ContributionInstaller { return errors; } - ContributedPackage pack = platform.getParentPackage(); + ContributedPackage pack = contributedPlatform.getParentPackage(); File packageFolder = new File(indexer.getPackagesFolder(), pack.getName()); // TODO: Extract to temporary folders and move to the final destination only @@ -126,12 +129,12 @@ public class ContributionInstaller { progress.setStatus(format(_("Installing tools ({0}/{1})..."), i, tools.size())); onProgress(progress); i++; - DownloadableContribution toolContrib = tool.getDownloadableContribution(); + DownloadableContribution toolContrib = tool.getDownloadableContribution(platform); File destFolder = new File(toolsFolder, tool.getName() + File.separator + tool.getVersion()); destFolder.mkdirs(); assert toolContrib.getDownloadedFile() != null; - new ArchiveExtractor(BaseNoGui.getPlatform()).extract(toolContrib.getDownloadedFile(), destFolder, 1); + new ArchiveExtractor(platform).extract(toolContrib.getDownloadedFile(), destFolder, 1); try { executePostInstallScriptIfAny(destFolder); } catch (IOException e) { @@ -145,12 +148,12 @@ public class ContributionInstaller { // Unpack platform on the correct location progress.setStatus(_("Installing boards...")); onProgress(progress); - File platformFolder = new File(packageFolder, "hardware" + File.separator + platform.getArchitecture()); - File destFolder = new File(platformFolder, platform.getParsedVersion()); + File platformFolder = new File(packageFolder, "hardware" + File.separator + contributedPlatform.getArchitecture()); + File destFolder = new File(platformFolder, contributedPlatform.getParsedVersion()); destFolder.mkdirs(); - new ArchiveExtractor(BaseNoGui.getPlatform()).extract(platform.getDownloadedFile(), destFolder, 1); - platform.setInstalled(true); - platform.setInstalledFolder(destFolder); + new ArchiveExtractor(platform).extract(contributedPlatform.getDownloadedFile(), destFolder, 1); + contributedPlatform.setInstalled(true); + contributedPlatform.setInstalledFolder(destFolder); progress.stepDone(); progress.setStatus(_("Installation completed!")); @@ -160,7 +163,7 @@ public class ContributionInstaller { } private void executePostInstallScriptIfAny(File folder) throws IOException { - Collection postInstallScripts = Collections2.filter(BaseNoGui.getPlatform().postInstallScripts(folder), new FileExecutablePredicate()); + Collection postInstallScripts = Collections2.filter(platform.postInstallScripts(folder), new FileExecutablePredicate()); if (postInstallScripts.isEmpty()) { String[] subfolders = folder.list(new OnlyDirs()); @@ -190,22 +193,22 @@ public class ContributionInstaller { } } - public List remove(ContributedPlatform platform) { - if (platform == null || platform.isReadOnly()) { + public List remove(ContributedPlatform contributedPlatform) { + if (contributedPlatform == null || contributedPlatform.isReadOnly()) { return new LinkedList(); } List errors = new LinkedList(); - FileUtils.recursiveDelete(platform.getInstalledFolder()); - platform.setInstalled(false); - platform.setInstalledFolder(null); + FileUtils.recursiveDelete(contributedPlatform.getInstalledFolder()); + contributedPlatform.setInstalled(false); + contributedPlatform.setInstalledFolder(null); // Check if the tools are no longer needed - for (ContributedTool tool : platform.getResolvedTools()) { + for (ContributedTool tool : contributedPlatform.getResolvedTools()) { if (indexer.isContributedToolUsed(tool)) { continue; } - DownloadableContribution toolContrib = tool.getDownloadableContribution(); + DownloadableContribution toolContrib = tool.getDownloadableContribution(platform); File destFolder = toolContrib.getInstalledFolder(); FileUtils.recursiveDelete(destFolder); toolContrib.setInstalled(false); diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java index 1e5845214..a38c8dd9a 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java @@ -46,6 +46,7 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Multimaps; import org.apache.commons.compress.utils.IOUtils; import processing.app.BaseNoGui; +import processing.app.Platform; import processing.app.debug.TargetPackage; import processing.app.debug.TargetPlatform; import processing.app.debug.TargetPlatformException; @@ -65,10 +66,12 @@ public class ContributionsIndexer { private final File packagesFolder; private final File stagingFolder; private final File preferencesFolder; + private final Platform platform; private ContributionsIndex index; - public ContributionsIndexer(File preferencesFolder) { + public ContributionsIndexer(File preferencesFolder, Platform platform) { this.preferencesFolder = preferencesFolder; + this.platform = platform; packagesFolder = new File(preferencesFolder, "packages"); stagingFolder = new File(preferencesFolder, "staging" + File.separator + "packages"); } @@ -266,7 +269,7 @@ public class ContributionsIndexer { if (tool == null) { return; } - DownloadableContribution contrib = tool.getDownloadableContribution(); + DownloadableContribution contrib = tool.getDownloadableContribution(platform); if (contrib == null) { System.err.println(tool + " seems to have no downloadable contributions for your operating system, but it is installed in\n" + installationFolder); return; diff --git a/arduino-core/src/processing/app/BaseNoGui.java b/arduino-core/src/processing/app/BaseNoGui.java index 7005b7005..d365b80ea 100644 --- a/arduino-core/src/processing/app/BaseNoGui.java +++ b/arduino-core/src/processing/app/BaseNoGui.java @@ -586,7 +586,7 @@ public class BaseNoGui { } static public void initPackages() throws Exception { - indexer = new ContributionsIndexer(BaseNoGui.getSettingsFolder()); + indexer = new ContributionsIndexer(BaseNoGui.getSettingsFolder(), BaseNoGui.getPlatform()); File indexFile = indexer.getIndexFile("package_index.json"); File defaultPackageJsonFile = new File(getContentFile("dist"), "package_index.json"); if (!indexFile.isFile() || (defaultPackageJsonFile.isFile() && defaultPackageJsonFile.lastModified() > indexFile.lastModified())) { @@ -797,7 +797,7 @@ public class BaseNoGui { PreferencesData.removeAllKeysWithPrefix(prefix); for (ContributedTool tool : indexer.getInstalledTools()) { - File installedFolder = tool.getDownloadableContribution().getInstalledFolder(); + File installedFolder = tool.getDownloadableContribution(getPlatform()).getInstalledFolder(); if (installedFolder != null) { PreferencesData.set(prefix + tool.getName() + ".path", installedFolder.getAbsolutePath()); PreferencesData.set(prefix + tool.getName() + "-" + tool.getVersion() + ".path", installedFolder.getAbsolutePath());