[setui] Remove local SetUI service implementation.
SetUI service is being implemented as a standalone service under
Garnet. Removing this copy as it is not compatible with soft
transitions and currently unused.
Fixes: SU-178
Test: Ensure setup flow still functions with removal.
Change-Id: I57b340595a90ed3bd37960478d081964562dc3b5
diff --git a/lib/setui/settings/service/BUILD.gn b/lib/setui/settings/service/BUILD.gn
index f3a6f6a..bc8cccd 100644
--- a/lib/setui/settings/service/BUILD.gn
+++ b/lib/setui/settings/service/BUILD.gn
@@ -14,7 +14,6 @@
"src/network_controller.dart",
"src/intl_controller.dart",
"src/connectivity_controller.dart",
- "src/local_service.dart",
"src/timezone_controller.dart",
"src/intl/intl_settings_util.dart",
]
@@ -41,7 +40,6 @@
# STOPSHIP(brycelee): add test back once migration to new api is complete.
# "network_controller_test.dart",
"intl_controller_test.dart",
- "service_test.dart",
]
deps = [
diff --git a/lib/setui/settings/service/lib/service.dart b/lib/setui/settings/service/lib/service.dart
index 0d8c0e9..a301379 100644
--- a/lib/setui/settings/service/lib/service.dart
+++ b/lib/setui/settings/service/lib/service.dart
@@ -5,8 +5,6 @@
import 'package:lib_setui_settings_common/setting_adapter.dart';
import 'package:lib_setui_settings_common/setting_source.dart';
-import 'src/local_service.dart';
-
/// Library that wraps the underlying setUi service.
///
/// Can be used to swap out between different implementations.
@@ -37,7 +35,7 @@
this._service, this._listenerBinder, this._logger);
SetUiServiceAdapter._local(this._listenerBinder, this._logger)
- : _service = LocalSetUiService();
+ : _service = null;
/// Gets the setting from the service with the given [SettingType].
///
diff --git a/lib/setui/settings/service/lib/src/local_service.dart b/lib/setui/settings/service/lib/src/local_service.dart
deleted file mode 100644
index 463559b..0000000
--- a/lib/setui/settings/service/lib/src/local_service.dart
+++ /dev/null
@@ -1,82 +0,0 @@
-import 'package:fidl/fidl.dart';
-import 'package:fidl_fuchsia_setui/fidl.dart';
-
-import 'connectivity_controller.dart';
-import 'intl_controller.dart';
-import 'network_controller.dart';
-import 'setui_setting_controller.dart';
-import 'timezone_controller.dart';
-
-class LocalSetUiService implements SetUiService {
- Map<SettingType, SetUiSettingController> controllers = {};
- final SetUiSettingControllerCreator creator;
- final SetUiListenerProxyBinder proxyBinder;
-
- LocalSetUiService(
- {this.creator = SetUiSettingControllerCreator.instance,
- this.proxyBinder = _bindListenerProxy});
-
- @override
- void listen(
- SettingType settingType, InterfaceHandle<SettingListener> listener) {
- _getController(settingType).addListener(proxyBinder(listener));
- }
-
- @override
- void update(
- SettingsObject value, void Function(UpdateResponse response) callback) {
- // TODO: Remove this method and replace with mutate.
- }
-
- @override
- void mutate(SettingType settingType, Mutation mutation,
- void Function(MutationResponse response) callback) {
- interactiveMutate(settingType, mutation, null /*handles*/, callback);
- }
-
- @override
- void interactiveMutate(
- SettingType settingType,
- Mutation mutation,
- MutationHandles handles,
- void Function(MutationResponse response) callback) {
- _getController(settingType).mutate(mutation, handles: handles).then((code) {
- callback(MutationResponse(returnCode: code));
- });
- }
-
- SetUiSettingController _getController(SettingType type) =>
- controllers.putIfAbsent(type, () => creator.createController(type));
-}
-
-class SetUiSettingControllerCreator {
- static const SetUiSettingControllerCreator instance =
- SetUiSettingControllerCreator();
-
- const SetUiSettingControllerCreator();
-
- SetUiSettingController createController(SettingType type) {
- switch (type) {
- case SettingType.timeZone:
- return TimeZoneController();
- case SettingType.wireless:
- return NetworkController();
- case SettingType.connectivity:
- return ConnectivityController();
- case SettingType.intl:
- return IntlSettingsController();
- default:
- throw UnimplementedError('No controller for the given type!');
- }
- }
-}
-
-SettingListenerProxy _bindListenerProxy(
- InterfaceHandle<SettingListener> listener) {
- final proxy = SettingListenerProxy();
- proxy.ctrl.bind(listener);
- return proxy;
-}
-
-typedef SetUiListenerProxyBinder = SettingListenerProxy Function(
- InterfaceHandle<SettingListener> listener);
diff --git a/lib/setui/settings/service/test/service_test.dart b/lib/setui/settings/service/test/service_test.dart
deleted file mode 100644
index 2e7ff3c..0000000
--- a/lib/setui/settings/service/test/service_test.dart
+++ /dev/null
@@ -1,201 +0,0 @@
-import 'dart:async';
-
-import 'package:fidl/fidl.dart';
-import 'package:fidl_fuchsia_setui/fidl.dart';
-import 'package:flutter/material.dart';
-import 'package:lib_setui_service/service.dart';
-import 'package:lib_setui_service/src/local_service.dart';
-import 'package:lib_setui_service/src/setui_setting_controller.dart';
-import 'package:lib_setui_settings_common/setting_source.dart';
-import 'package:mockito/mockito.dart';
-import 'package:test/test.dart';
-// ignore_for_file: implementation_imports
-
-const String defaultValue = 'default';
-
-const String value1 = 'value1';
-
-void main() {
- SetUiServiceAdapter manager;
- LocalSetUiService service;
- FakeSetUiSettingControllerCreator fakeControllers;
-
- setUp(() {
- fakeControllers = FakeSetUiSettingControllerCreator();
- service = LocalSetUiService(
- creator: fakeControllers, proxyBinder: _bindListenerProxy);
- manager = SetUiServiceAdapter.withService(service, _bindListener, null);
- });
-
- group('SetUi service', () {
- test('gets an object that then gets updated', () async {
- final SettingSource<String> object =
- manager.fetch<String>(SettingType.unknown);
-
- await awaitForSetting(object, defaultValue);
- expect(object.state, defaultValue);
-
- final controller = fakeControllers.fakes[SettingType.unknown];
- controller.item.value = value1;
-
- await awaitForSetting(object, value1);
- expect(object.state, value1);
- });
- test('mutates a value', () async {
- final object = manager.fetch<String>(SettingType.unknown);
-
- await awaitForSetting(object, defaultValue);
- expect(object.state, defaultValue);
-
- final response = await manager.mutate(
- SettingType.unknown,
- Mutation.withStringMutationValue(StringMutation(
- operation: StringOperation.update, value: value1)));
- expect(response.returnCode, ReturnCode.ok);
- expect(object.state, value1);
- });
- test('mutates a value without listeners and closes after mutate', () async {
- final response = await manager.mutate(
- SettingType.unknown,
- Mutation.withStringMutationValue(StringMutation(
- operation: StringOperation.update, value: value1)));
- expect(response.returnCode, ReturnCode.ok);
-
- final FakeStringSettingController controller =
- fakeControllers.fakes[SettingType.unknown];
- expect(controller.item.value, value1);
- expect(controller.open, false);
- });
- test('calls initialize and close depending on listeners', () async {
- final object = manager.fetch<String>(SettingType.unknown);
-
- await awaitForSetting(object, defaultValue);
- expect(object.state, defaultValue);
-
- final FakeStringSettingController controller =
- fakeControllers.fakes[SettingType.unknown];
-
- expect(controller.open, true);
-
- final FakeSetUiListenerProxy proxy = controller.listeners.single;
- when(proxy.ctrl.isBound).thenReturn(false);
- controller.item.value = value1;
-
- expect(controller.open, false);
-
- manager.fetch<String>(SettingType.unknown);
-
- expect(controller.open, true);
- });
- });
-}
-
-// Helper function for awaiting for a setting to change. If the setting is
-// already at the expected value, then the function immediately returns.
-Future<void> awaitForSetting(SettingSource source, Object expectedValue) async {
- if (source.state == expectedValue) {
- return;
- }
-
- final Completer<void> completer = Completer<void>();
-
- final StreamSubscription subscription =
- source.addListener(completer.complete);
- await completer.future;
- await subscription.cancel();
-}
-
-Future<void> listenForNextChange(SettingSource notifier) async {
- final completer = Completer();
- final StreamSubscription subscription =
- notifier.addListener(completer.complete);
- await completer.future;
- await subscription.cancel();
-}
-
-class FakeSetUiSettingControllerCreator
- implements SetUiSettingControllerCreator {
- Map<SettingType, FakeStringSettingController> fakes = {};
-
- @override
- SetUiSettingController createController(SettingType type) =>
- fakes.putIfAbsent(type, () => FakeStringSettingController());
-}
-
-class FakeStringSettingController extends SetUiSettingController {
- final ValueNotifier<String> item = ValueNotifier<String>(defaultValue);
- bool open = false;
-
- @override
- Future<void> close() async {
- Completer<void> completer = new Completer<void>();
- item.removeListener(notifyListeners);
- open = false;
- completer.complete();
- return completer.future;
- }
-
- @override
- Future<void> initialize() async {
- Completer<void> completer = new Completer<void>();
- item.addListener(notifyListeners);
- open = true;
- completer.complete();
- return completer.future;
- }
-
- @override
- Future<ReturnCode> mutate(Mutation mutation,
- {MutationHandles handles}) async {
- return applyMutation(mutation, handles: handles);
- }
-
- @override
- Future<ReturnCode> applyMutation(Mutation mutation,
- {MutationHandles handles}) async {
- if (mutation.tag != MutationTag.stringMutationValue) {
- return ReturnCode.unsupported;
- }
-
- item.value = mutation.stringMutationValue.value;
- return ReturnCode.ok;
- }
-
- @override
- SettingsObject get value => stringObject(item.value);
-}
-
-InterfaceHandle<SettingListener> _bindListener(SettingListener impl) =>
- MockInterfaceHandle(impl);
-
-SettingListenerProxy _bindListenerProxy(
- InterfaceHandle<SettingListener> listener) {
- final MockInterfaceHandle<SettingListener> handle = listener;
- return FakeSetUiListenerProxy(handle.impl);
-}
-
-class MockProxyController<T> extends Mock implements ProxyController<T> {}
-
-class MockInterfaceHandle<T> extends Mock implements InterfaceHandle<T> {
- final T impl;
-
- MockInterfaceHandle(this.impl);
-}
-
-class FakeSetUiListenerProxy implements SettingListenerProxy {
- final SettingListener impl;
-
- @override
- final MockProxyController<SettingListener> ctrl =
- MockProxyController<SettingListener>();
-
- FakeSetUiListenerProxy(this.impl) {
- when(ctrl.isBound).thenReturn(true);
- }
-
- @override
- void notify(SettingsObject object) => impl.notify(object);
-}
-
-SettingsObject stringObject(String value) => SettingsObject(
- settingType: SettingType.unknown, data: SettingData.withStringValue(value));