1 // Copyright 2019 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef IOS_CHROME_BROWSER_UI_SETTINGS_GOOGLE_SERVICES_MANAGE_SYNC_SETTINGS_COORDINATOR_H_
6 #define IOS_CHROME_BROWSER_UI_SETTINGS_GOOGLE_SERVICES_MANAGE_SYNC_SETTINGS_COORDINATOR_H_
7 
8 #import "ios/chrome/browser/ui/coordinators/chrome_coordinator.h"
9 #import "ios/chrome/browser/ui/settings/google_services/sync_settings_view_state.h"
10 
11 @class ManageSyncSettingsCoordinator;
12 @protocol SyncSettingsViewState;
13 
14 // Delegate for ManageSyncSettingsCoordinator.
15 @protocol ManageSyncSettingsCoordinatorDelegate <NSObject>
16 
17 // Called when the view controller is removed from its parent.
18 - (void)manageSyncSettingsCoordinatorWasRemoved:
19     (ManageSyncSettingsCoordinator*)coordinator;
20 
21 @end
22 
23 // Coordinator for the Manage Sync Settings TableView Controller.
24 // This class doesn't commit any sync changes made by the user. This class
25 // relies on GoogleServicesSettingsCoordinator to commit the sync changes.
26 @interface ManageSyncSettingsCoordinator
27     : ChromeCoordinator <SyncSettingsViewState>
28 
29 - (instancetype)initWithBaseViewController:(UIViewController*)viewController
30                                    browser:(Browser*)browser NS_UNAVAILABLE;
31 
32 - (instancetype)initWithBaseNavigationController:
33                     (UINavigationController*)navigationController
34                                          browser:(Browser*)browser
35     NS_DESIGNATED_INITIALIZER;
36 
37 // Delegate.
38 @property(nonatomic, weak) id<ManageSyncSettingsCoordinatorDelegate> delegate;
39 
40 @end
41 
42 #endif  // IOS_CHROME_BROWSER_UI_SETTINGS_GOOGLE_SERVICES_MANAGE_SYNC_SETTINGS_COORDINATOR_H_
43