OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 #if !defined(__has_feature) || !__has_feature(objc_arc) | 5 #if !defined(__has_feature) || !__has_feature(objc_arc) |
6 #error "This file requires ARC support." | 6 #error "This file requires ARC support." |
7 #endif | 7 #endif |
8 | 8 |
9 #import "remoting/client/ios/app/remoting_settings_view_controller.h" | 9 #import "remoting/client/ios/app/remoting_settings_view_controller.h" |
10 | 10 |
11 #import "ios/third_party/material_components_ios/src/components/AppBar/src/Mater
ialAppBar.h" | 11 #import "ios/third_party/material_components_ios/src/components/AppBar/src/Mater
ialAppBar.h" |
12 #import "ios/third_party/material_components_ios/src/components/Buttons/src/Mate
rialButtons.h" | 12 #import "ios/third_party/material_components_ios/src/components/Buttons/src/Mate
rialButtons.h" |
| 13 #import "remoting/client/ios/facade/remoting_service.h" |
13 | 14 |
14 #include "base/strings/stringprintf.h" | 15 #include "base/strings/stringprintf.h" |
15 #include "google_apis/google_api_keys.h" | 16 #include "google_apis/google_api_keys.h" |
16 #include "net/base/escape.h" | 17 #include "net/base/escape.h" |
17 | 18 |
18 // TODO(nicholss): This should be generated from a remoting/base class: | 19 // TODO(nicholss): This should be generated from a remoting/base class: |
19 | 20 |
20 static NSString* const kReusableIdentifierItem = | 21 static NSString* const kReusableIdentifierItem = |
21 @"remotingSettingsViewControllerItem"; | 22 @"remotingSettingsViewControllerItem"; |
22 static UIColor* kBackgroundColor = | 23 static UIColor* kBackgroundColor = |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 [self.collectionView registerClass:[MDCCollectionViewTextCell class] | 107 [self.collectionView registerClass:[MDCCollectionViewTextCell class] |
107 forCellWithReuseIdentifier:kReusableIdentifierItem]; | 108 forCellWithReuseIdentifier:kReusableIdentifierItem]; |
108 | 109 |
109 [self.collectionView registerClass:[MDCCollectionViewTextCell class] | 110 [self.collectionView registerClass:[MDCCollectionViewTextCell class] |
110 forSupplementaryViewOfKind:UICollectionElementKindSectionHeader | 111 forSupplementaryViewOfKind:UICollectionElementKindSectionHeader |
111 withReuseIdentifier:UICollectionElementKindSectionHeader]; | 112 withReuseIdentifier:UICollectionElementKindSectionHeader]; |
112 | 113 |
113 self.styler.cellStyle = MDCCollectionViewCellStyleCard; | 114 self.styler.cellStyle = MDCCollectionViewCellStyleCard; |
114 | 115 |
115 _content = [NSMutableArray array]; | 116 _content = [NSMutableArray array]; |
116 [_content addObject:@[ @"Login" ]]; | 117 [_content addObject:@[ @"Login", @"Logout" ]]; |
117 } | 118 } |
118 | 119 |
119 #pragma mark - UICollectionViewDataSource | 120 #pragma mark - UICollectionViewDataSource |
120 | 121 |
121 - (NSInteger)numberOfSectionsInCollectionView: | 122 - (NSInteger)numberOfSectionsInCollectionView: |
122 (UICollectionView*)collectionView { | 123 (UICollectionView*)collectionView { |
123 return (NSInteger)[_content count]; | 124 return (NSInteger)[_content count]; |
124 } | 125 } |
125 | 126 |
126 - (NSInteger)collectionView:(UICollectionView*)collectionView | 127 - (NSInteger)collectionView:(UICollectionView*)collectionView |
(...skipping 12 matching lines...) Expand all Loading... |
139 if (indexPath.section == 0 && indexPath.item == 0) { | 140 if (indexPath.section == 0 && indexPath.item == 0) { |
140 MDCRaisedButton* accessCodeButton = [[MDCRaisedButton alloc] init]; | 141 MDCRaisedButton* accessCodeButton = [[MDCRaisedButton alloc] init]; |
141 [accessCodeButton setTitle:@"Get Access Code" | 142 [accessCodeButton setTitle:@"Get Access Code" |
142 forState:UIControlStateNormal]; | 143 forState:UIControlStateNormal]; |
143 [accessCodeButton sizeToFit]; | 144 [accessCodeButton sizeToFit]; |
144 [accessCodeButton addTarget:self | 145 [accessCodeButton addTarget:self |
145 action:@selector(didTapGetAccessCode:) | 146 action:@selector(didTapGetAccessCode:) |
146 forControlEvents:UIControlEventTouchUpInside]; | 147 forControlEvents:UIControlEventTouchUpInside]; |
147 accessCodeButton.translatesAutoresizingMaskIntoConstraints = NO; | 148 accessCodeButton.translatesAutoresizingMaskIntoConstraints = NO; |
148 cell.accessoryView = accessCodeButton; | 149 cell.accessoryView = accessCodeButton; |
149 } else { | 150 } else if (indexPath.section == 0 && indexPath.item == 1) { |
150 UISwitch* editingSwitch = [[UISwitch alloc] initWithFrame:CGRectZero]; | 151 MDCRaisedButton* logoutButton = [[MDCRaisedButton alloc] init]; |
151 cell.accessoryView = editingSwitch; | 152 [logoutButton setTitle:@"Logout" forState:UIControlStateNormal]; |
| 153 [logoutButton sizeToFit]; |
| 154 [logoutButton addTarget:self |
| 155 action:@selector(didTapLogout:) |
| 156 forControlEvents:UIControlEventTouchUpInside]; |
| 157 logoutButton.translatesAutoresizingMaskIntoConstraints = NO; |
| 158 cell.accessoryView = logoutButton; |
152 } | 159 } |
| 160 |
153 return cell; | 161 return cell; |
154 } | 162 } |
155 | 163 |
156 - (UICollectionReusableView*)collectionView:(UICollectionView*)collectionView | 164 - (UICollectionReusableView*)collectionView:(UICollectionView*)collectionView |
157 viewForSupplementaryElementOfKind:(NSString*)kind | 165 viewForSupplementaryElementOfKind:(NSString*)kind |
158 atIndexPath:(NSIndexPath*)indexPath { | 166 atIndexPath:(NSIndexPath*)indexPath { |
159 MDCCollectionViewTextCell* supplementaryView = | 167 MDCCollectionViewTextCell* supplementaryView = |
160 [collectionView dequeueReusableSupplementaryViewOfKind:kind | 168 [collectionView dequeueReusableSupplementaryViewOfKind:kind |
161 withReuseIdentifier:kind | 169 withReuseIdentifier:kind |
162 forIndexPath:indexPath]; | 170 forIndexPath:indexPath]; |
(...skipping 22 matching lines...) Expand all Loading... |
185 [self dismissViewControllerAnimated:YES completion:nil]; | 193 [self dismissViewControllerAnimated:YES completion:nil]; |
186 } | 194 } |
187 | 195 |
188 - (void)didTapGetAccessCode:(id)sender { | 196 - (void)didTapGetAccessCode:(id)sender { |
189 NSString* authUri = | 197 NSString* authUri = |
190 [NSString stringWithCString:GetAuthorizationCodeUri().c_str() | 198 [NSString stringWithCString:GetAuthorizationCodeUri().c_str() |
191 encoding:[NSString defaultCStringEncoding]]; | 199 encoding:[NSString defaultCStringEncoding]]; |
192 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:authUri]]; | 200 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:authUri]]; |
193 } | 201 } |
194 | 202 |
| 203 - (void)didTapLogout:(id)sender { |
| 204 [[RemotingService SharedInstance] logout]; |
| 205 } |
| 206 |
195 @end | 207 @end |
OLD | NEW |