Skip to content

Commit e55aba1

Browse files
authored
[CQ] fix nullability problems for flutter/settings (#8308)
Fix nullability problems in `src/io/flutter/settings/`. See #8291. If we pursue #8292, we could mark `src/io/flutter/settings/` as null-"clean". --- - [x] I’ve reviewed the contributor guide and applied the relevant portions to this PR. <details> <summary>Contribution guidelines:</summary><br> - See our [contributor guide]([https://github.com/dart-lang/sdk/blob/main/CONTRIBUTING.md](https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview) for general expectations for PRs. - Larger or significant changes should be discussed in an issue before creating a PR. - Dart contributions to our repos should follow the [Dart style guide](https://dart.dev/guides/language/effective-dart) and use `dart format`. - Java and Kotlin contributions should strive to follow Java and Kotlin best practices ([discussion](#8098)). </details>
1 parent efd2faa commit e55aba1

File tree

2 files changed

+21
-12
lines changed

2 files changed

+21
-12
lines changed

flutter-idea/src/io/flutter/settings/FlutterSettings.java

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.intellij.util.EventDispatcher;
1212
import com.jetbrains.lang.dart.analyzer.DartClosingLabelManager;
1313
import org.jetbrains.annotations.NotNull;
14+
import org.jetbrains.annotations.Nullable;
1415

1516
import java.util.EventListener;
1617
import java.util.Objects;
@@ -35,13 +36,13 @@ public class FlutterSettings {
3536
private static final String sdkVersionOutdatedWarningAcknowledgedKey = "io.flutter.sdkVersionOutdatedWarningAcknowledged";
3637
private static final String androidStudioBotAcknowledgedKey = "io.flutter.androidStudioBotAcknowledgedKey";
3738

38-
private static FlutterSettings testInstance;
39+
private static @Nullable FlutterSettings testInstance;
3940

4041
/**
4142
* This is only used for testing.
4243
*/
4344
@VisibleForTesting
44-
public static void setInstance(FlutterSettings instance) {
45+
public static void setInstance(@Nullable FlutterSettings instance) {
4546
testInstance = instance;
4647
}
4748

@@ -53,8 +54,10 @@ public static void setInstance(FlutterSettings instance) {
5354
return Objects.requireNonNull(Objects.requireNonNull(ApplicationManager.getApplication()).getService(FlutterSettings.class));
5455
}
5556

56-
protected static PropertiesComponent getPropertiesComponent() {
57-
return PropertiesComponent.getInstance();
57+
protected static @NotNull PropertiesComponent getPropertiesComponent() {
58+
var component = PropertiesComponent.getInstance();
59+
assert component != null;
60+
return component;
5861
}
5962

6063
public interface Listener extends EventListener {
@@ -63,7 +66,7 @@ public interface Listener extends EventListener {
6366

6467
private final EventDispatcher<Listener> dispatcher = EventDispatcher.create(Listener.class);
6568

66-
public void addListener(Listener listener) {
69+
public void addListener(@NotNull Listener listener) {
6770
dispatcher.addListener(listener);
6871
}
6972

@@ -177,11 +180,15 @@ public void setShowBuildMethodGuides(boolean value) {
177180
}
178181

179182
public boolean isShowClosingLabels() {
180-
return DartClosingLabelManager.getInstance().getShowClosingLabels();
183+
var labelManager = DartClosingLabelManager.getInstance();
184+
return labelManager != null && labelManager.getShowClosingLabels();
181185
}
182186

183187
public void setShowClosingLabels(boolean value) {
184-
DartClosingLabelManager.getInstance().setShowClosingLabels(value);
188+
var labelManager = DartClosingLabelManager.getInstance();
189+
if (labelManager != null) {
190+
labelManager.setShowClosingLabels(value);
191+
}
185192
}
186193

187194
public String getFontPackages() {
@@ -235,15 +242,15 @@ public void setShowBazelIosRunNotification(boolean value) {
235242
/**
236243
* See {FlutterSdkVersion#MIN_SDK_SUPPORTED}.
237244
*/
238-
public boolean isSdkVersionOutdatedWarningAcknowledged(String versionText, boolean isBeforeSunset) {
245+
public boolean isSdkVersionOutdatedWarningAcknowledged(@Nullable String versionText, boolean isBeforeSunset) {
239246
return getPropertiesComponent().getBoolean(getSdkVersionKey(versionText, isBeforeSunset));
240247
}
241248

242-
public void setSdkVersionOutdatedWarningAcknowledged(String versionText, boolean isBeforeSunset, boolean value) {
249+
public void setSdkVersionOutdatedWarningAcknowledged(@Nullable String versionText, boolean isBeforeSunset, boolean value) {
243250
getPropertiesComponent().setValue(getSdkVersionKey(versionText, isBeforeSunset), value);
244251
}
245252

246-
private String getSdkVersionKey(String versionText, boolean isBeforeSunset) {
253+
private String getSdkVersionKey(@Nullable String versionText, boolean isBeforeSunset) {
247254
return sdkVersionOutdatedWarningAcknowledgedKey + "_" + versionText + "_" + (isBeforeSunset ? "beforeSunset" : "afterSunset");
248255
}
249256

flutter-idea/src/io/flutter/settings/FlutterUIConfig.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,20 @@
55
*/
66
package io.flutter.settings;
77

8+
import org.jetbrains.annotations.NotNull;
9+
810
/**
911
* Persists Flutter settings for a session.
1012
*/
1113
public class FlutterUIConfig {
12-
private static final FlutterUIConfig INSTANCE = new FlutterUIConfig();
14+
private static final @NotNull FlutterUIConfig INSTANCE = new FlutterUIConfig();
1315

1416
private boolean ignoreOutOfDateFlutterSdks;
1517

1618
private FlutterUIConfig() {
1719
}
1820

19-
public static FlutterUIConfig getInstance() {
21+
public static @NotNull FlutterUIConfig getInstance() {
2022
return INSTANCE;
2123
}
2224

0 commit comments

Comments
 (0)