diff --git a/src/io/flutter/pub/PubRoot.java b/src/io/flutter/pub/PubRoot.java index 100051f664..19ec89cc3a 100644 --- a/src/io/flutter/pub/PubRoot.java +++ b/src/io/flutter/pub/PubRoot.java @@ -280,9 +280,13 @@ public VirtualFile getPackagesFile() { } /** - * Returns true if the packages file is up to date. + * Returns true if the packages are up to date wrt pubspec.yaml. */ public boolean hasUpToDatePackages() { + final VirtualFile configFile = getPackageConfigFile(); + if (configFile != null) { + return pubspec.getTimeStamp() < configFile.getTimeStamp(); + } final VirtualFile packagesFile = getPackagesFile(); if (packagesFile == null) { return false; diff --git a/src/io/flutter/sdk/FlutterSdkUtil.java b/src/io/flutter/sdk/FlutterSdkUtil.java index b20f227564..75607e0cbb 100644 --- a/src/io/flutter/sdk/FlutterSdkUtil.java +++ b/src/io/flutter/sdk/FlutterSdkUtil.java @@ -261,13 +261,13 @@ public static void enableDartSdk(@NotNull final Project project) { public static String guessFlutterSdkFromPackagesFile(@NotNull Module module) { // First, look for .dart_tool/package_config.json for (PubRoot pubRoot : PubRoots.forModule(module)) { - final VirtualFile packagesFile = pubRoot.getPackageConfigFile(); - if (packagesFile == null) { + final VirtualFile configFile = pubRoot.getPackageConfigFile(); + if (configFile == null) { continue; } // parse it try { - final String contents = new String(packagesFile.contentsToByteArray(true /* cache contents */)); + final String contents = new String(configFile.contentsToByteArray(true /* cache contents */)); final JsonElement element = new JsonParser().parse(contents); if (element == null) { continue;