Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Side by Side Diff: ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_panel_controller.mm

Issue 2791393003: [ObjC ARC] Converts ios/chrome/browser/ui/ntp/recent_tabs:recent_tabs to ARC. (Closed)
Patch Set: weak Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_panel_controller.h" 5 #import "ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_panel_controller.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/mac/scoped_nsobject.h"
10 #include "components/browser_sync/profile_sync_service.h" 9 #include "components/browser_sync/profile_sync_service.h"
11 #include "components/sessions/core/tab_restore_service.h" 10 #include "components/sessions/core/tab_restore_service.h"
12 #include "components/signin/core/browser/signin_manager.h" 11 #include "components/signin/core/browser/signin_manager.h"
13 #include "components/sync_sessions/open_tabs_ui_delegate.h" 12 #include "components/sync_sessions/open_tabs_ui_delegate.h"
14 #include "components/sync_sessions/synced_session.h" 13 #include "components/sync_sessions/synced_session.h"
15 #include "ios/chrome/browser/browser_state/chrome_browser_state.h" 14 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
16 #include "ios/chrome/browser/sessions/ios_chrome_tab_restore_service_factory.h" 15 #include "ios/chrome/browser/sessions/ios_chrome_tab_restore_service_factory.h"
17 #include "ios/chrome/browser/signin/signin_manager_factory.h" 16 #include "ios/chrome/browser/signin/signin_manager_factory.h"
18 #include "ios/chrome/browser/sync/ios_chrome_profile_sync_service_factory.h" 17 #include "ios/chrome/browser/sync/ios_chrome_profile_sync_service_factory.h"
19 #include "ios/chrome/browser/sync/sync_setup_service.h" 18 #include "ios/chrome/browser/sync/sync_setup_service.h"
20 #include "ios/chrome/browser/sync/sync_setup_service_factory.h" 19 #include "ios/chrome/browser/sync/sync_setup_service_factory.h"
21 #import "ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_bridges.h" 20 #import "ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_bridges.h"
22 #import "ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_table_view_controller .h" 21 #import "ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_table_view_controller .h"
23 #import "ios/chrome/browser/ui/ntp/recent_tabs/synced_sessions_bridge.h" 22 #import "ios/chrome/browser/ui/ntp/recent_tabs/synced_sessions_bridge.h"
24 23
24 #if !defined(__has_feature) || !__has_feature(objc_arc)
25 #error "This file requires ARC support."
26 #endif
27
25 @interface RecentTabsPanelController ()<SyncedSessionsObserver, 28 @interface RecentTabsPanelController ()<SyncedSessionsObserver,
26 RecentTabsTableViewControllerDelegate> { 29 RecentTabsTableViewControllerDelegate> {
27 std::unique_ptr<synced_sessions::SyncedSessionsObserverBridge> 30 std::unique_ptr<synced_sessions::SyncedSessionsObserverBridge>
28 _syncedSessionsObserver; 31 _syncedSessionsObserver;
29 std::unique_ptr<recent_tabs::ClosedTabsObserverBridge> _closedTabsObserver; 32 std::unique_ptr<recent_tabs::ClosedTabsObserverBridge> _closedTabsObserver;
30 SessionsSyncUserState _userState; 33 SessionsSyncUserState _userState;
31 base::scoped_nsobject<RecentTabsTableViewController> _tableViewController; 34 RecentTabsTableViewController* _tableViewController;
32 ios::ChromeBrowserState* _browserState; // Weak. 35 ios::ChromeBrowserState* _browserState; // Weak.
33 } 36 }
34 37
35 // Return the user's current sign-in and chrome-sync state. 38 // Return the user's current sign-in and chrome-sync state.
36 - (SessionsSyncUserState)userSignedInState; 39 - (SessionsSyncUserState)userSignedInState;
37 // Utility functions for -userSignedInState so these can be mocked out 40 // Utility functions for -userSignedInState so these can be mocked out
38 // easily for unit tests. 41 // easily for unit tests.
39 - (BOOL)isSignedIn; 42 - (BOOL)isSignedIn;
40 - (BOOL)isSyncTabsEnabled; 43 - (BOOL)isSyncTabsEnabled;
41 - (BOOL)hasForeignSessions; 44 - (BOOL)hasForeignSessions;
42 - (BOOL)isSyncCompleted; 45 - (BOOL)isSyncCompleted;
43 // Reload the panel. 46 // Reload the panel.
44 - (void)refreshSessionsView; 47 - (void)refreshSessionsView;
45 // Force a contact to the sync server to reload remote sessions. 48 // Force a contact to the sync server to reload remote sessions.
46 - (void)reloadSessionsData; 49 - (void)reloadSessionsData;
47 50
48 @end 51 @end
49 52
50 // The controller for RecentTabs panel that is added to the NewTabPage 53 // The controller for RecentTabs panel that is added to the NewTabPage
51 // Instantiate a UITableView and a UITableViewController, and notifies the 54 // Instantiate a UITableView and a UITableViewController, and notifies the
52 // UITableViewController of any signed in state change. 55 // UITableViewController of any signed in state change.
53 @implementation RecentTabsPanelController 56 @implementation RecentTabsPanelController
54 57
55 // Property declared in NewTabPagePanelProtocol. 58 // Property declared in NewTabPagePanelProtocol.
56 @synthesize delegate = _delegate; 59 @synthesize delegate = _delegate;
57 60
58 - (instancetype)initWithLoader:(id<UrlLoader>)loader 61 - (instancetype)initWithLoader:(id<UrlLoader>)loader
59 browserState:(ios::ChromeBrowserState*)browserState { 62 browserState:(ios::ChromeBrowserState*)browserState {
60 return [self initWithController:[[[RecentTabsTableViewController alloc] 63 return [self initWithController:[[RecentTabsTableViewController alloc]
61 initWithBrowserState:browserState 64 initWithBrowserState:browserState
62 loader:loader] autorelease] 65 loader:loader]
63 browserState:browserState]; 66 browserState:browserState];
64 } 67 }
65 68
66 - (instancetype)initWithController:(RecentTabsTableViewController*)controller 69 - (instancetype)initWithController:(RecentTabsTableViewController*)controller
67 browserState:(ios::ChromeBrowserState*)browserState { 70 browserState:(ios::ChromeBrowserState*)browserState {
68 self = [super init]; 71 self = [super init];
69 if (self) { 72 if (self) {
70 DCHECK(controller); 73 DCHECK(controller);
71 DCHECK(browserState); 74 DCHECK(browserState);
72 _browserState = browserState; 75 _browserState = browserState;
73 _tableViewController.reset([controller retain]); 76 _tableViewController = controller;
74 [_tableViewController setDelegate:self]; 77 [_tableViewController setDelegate:self];
75 [self initObservers]; 78 [self initObservers];
76 [self reloadSessions]; 79 [self reloadSessions];
77 } 80 }
78 return self; 81 return self;
79 } 82 }
80 83
81 - (void)dealloc { 84 - (void)dealloc {
82 [_tableViewController setDelegate:nil]; 85 [_tableViewController setDelegate:nil];
83 [self deallocObservers]; 86 [self deallocObservers];
84 [super dealloc];
85 } 87 }
86 88
87 - (void)initObservers { 89 - (void)initObservers {
88 if (!_syncedSessionsObserver) { 90 if (!_syncedSessionsObserver) {
89 _syncedSessionsObserver.reset( 91 _syncedSessionsObserver.reset(
90 new synced_sessions::SyncedSessionsObserverBridge(self, _browserState)); 92 new synced_sessions::SyncedSessionsObserverBridge(self, _browserState));
91 } 93 }
92 if (!_closedTabsObserver) { 94 if (!_closedTabsObserver) {
93 _closedTabsObserver.reset(new recent_tabs::ClosedTabsObserverBridge(self)); 95 _closedTabsObserver.reset(new recent_tabs::ClosedTabsObserverBridge(self));
94 sessions::TabRestoreService* restoreService = 96 sessions::TabRestoreService* restoreService =
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 [_tableViewController refreshUserState:[self userSignedInState]]; 234 [_tableViewController refreshUserState:[self userSignedInState]];
233 } 235 }
234 236
235 #pragma mark - RecentTabsTableViewControllerDelegate 237 #pragma mark - RecentTabsTableViewControllerDelegate
236 238
237 - (void)recentTabsTableViewContentMoved:(UITableView*)tableView { 239 - (void)recentTabsTableViewContentMoved:(UITableView*)tableView {
238 [self.delegate updateNtpBarShadowForPanelController:self]; 240 [self.delegate updateNtpBarShadowForPanelController:self];
239 } 241 }
240 242
241 @end 243 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698