Skip to content

Commit 9510c7d

Browse files
authored
ServiceExtensionManager: simplify code around service state and availability (#9288)
1 parent 4bebd62 commit 9510c7d

1 file changed

Lines changed: 19 additions & 24 deletions

File tree

packages/devtools_app_shared/lib/src/service/service_extension_manager.dart

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -541,31 +541,27 @@ final class ServiceExtensionManager with DisposerMixin {
541541
}
542542
}
543543

544-
bool isServiceExtensionAvailable(String name) {
545-
return _serviceExtensions.contains(name) ||
546-
_pendingServiceExtensions.contains(name);
547-
}
544+
bool isServiceExtensionAvailable(String name) =>
545+
_serviceExtensions.contains(name) ||
546+
_pendingServiceExtensions.contains(name);
548547

549548
Future<bool> waitForServiceExtensionAvailable(String name) {
550549
if (isServiceExtensionAvailable(name)) return Future.value(true);
551550

552-
Completer<bool> createCompleter() {
553-
// Listen for when the service extension is added and use it.
554-
final completer = Completer<bool>();
555-
final listenable = hasServiceExtension(name);
556-
late VoidCallback listener;
557-
listener = () {
558-
if (listenable.value || !completer.isCompleted) {
559-
listenable.removeListener(listener);
560-
completer.complete(true);
561-
}
562-
};
563-
hasServiceExtension(name).addListener(listener);
564-
return completer;
565-
}
551+
// Listen for when the service extension is added and use it.
552+
final completer = Completer<bool>();
553+
final listenable = hasServiceExtension(name);
554+
late final VoidCallback listener;
555+
listener = () {
556+
if (listenable.value || !completer.isCompleted) {
557+
listenable.removeListener(listener);
558+
completer.complete(true);
559+
}
560+
};
561+
hasServiceExtension(name).addListener(listener);
566562

567-
_maybeRegisteringServiceExtensions[name] ??= createCompleter();
568-
return _maybeRegisteringServiceExtensions[name]!.future;
563+
_maybeRegisteringServiceExtensions[name] ??= completer;
564+
return completer.future;
569565
}
570566

571567
ValueListenable<bool> hasServiceExtension(String name) {
@@ -587,10 +583,9 @@ final class ServiceExtensionManager with DisposerMixin {
587583
return _serviceExtensionStates.putIfAbsent(
588584
name,
589585
() {
590-
return ValueNotifier<ServiceExtensionState>(
591-
_enabledServiceExtensions.containsKey(name)
592-
? _enabledServiceExtensions[name]!
593-
: ServiceExtensionState(enabled: false, value: null),
586+
final state = _enabledServiceExtensions[name];
587+
return ValueNotifier(
588+
state ?? ServiceExtensionState(enabled: false, value: null),
594589
);
595590
},
596591
);

0 commit comments

Comments
 (0)