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

Side by Side Diff: remoting/client/ios/app/host_collection_view_cell.mm

Issue 2871993003: Moving the iOS directory to be remoting top level. (Closed)
Patch Set: //remoting/ios was the old landing target for the internal iOS application. Fix. Created 3 years, 7 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #if !defined(__has_feature) || !__has_feature(objc_arc)
6 #error "This file requires ARC support."
7 #endif
8
9 #import <UIKit/UIKit.h>
10
11 #import "remoting/client/ios/app/host_collection_view_cell.h"
12
13 #import "ios/third_party/material_components_ios/src/components/ShadowElevations /src/MaterialShadowElevations.h"
14 #import "ios/third_party/material_components_ios/src/components/ShadowLayer/src/ MaterialShadowLayer.h"
15 #import "ios/third_party/material_components_ios/src/components/Typography/src/M aterialTypography.h"
16 #import "remoting/client/ios/domain/host_info.h"
17
18 static const CGFloat kLinePadding = 2.f;
19 static const CGFloat kHostCardIconInset = 10.f;
20 static const CGFloat kHostCardPadding = 4.f;
21 static const CGFloat kHostCardIconSize = 45.f;
22
23 @interface HostCollectionViewCell () {
24 UIImageView* _imageView;
25 UILabel* _statusLabel;
26 UILabel* _titleLabel;
27 UIView* _cellView;
28 }
29 @end
30
31 //
32 // This is the implementation of the info card for a host's status shown in
33 // the host list. This will also be the selection for which host to connect
34 // to and other managements actions for a host in this list.
35 //
36 @implementation HostCollectionViewCell
37
38 @synthesize hostInfo = _hostInfo;
39
40 + (Class)layerClass {
41 return [MDCShadowLayer class];
42 }
43
44 - (id)initWithFrame:(CGRect)frame {
45 self = [super initWithFrame:frame];
46 if (self) {
47 self.backgroundColor = [UIColor clearColor];
48 [self commonInit];
49 }
50 return self;
51 }
52
53 - (void)commonInit {
54 _cellView = [[UIView alloc] initWithFrame:self.bounds];
55 _cellView.autoresizingMask =
56 UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
57 _cellView.backgroundColor = [UIColor whiteColor];
58 _cellView.clipsToBounds = YES;
59 [self addSubview:_cellView];
60
61 MDCShadowLayer* shadowLayer = (MDCShadowLayer*)self.layer;
62 shadowLayer.shadowMaskEnabled = NO;
63 [shadowLayer setElevation:MDCShadowElevationCardResting];
64
65 CGRect imageViewFrame =
66 CGRectMake(kHostCardIconInset,
67 self.frame.size.height / 2.f - kHostCardIconSize / 2.f,
68 kHostCardIconSize, kHostCardIconSize);
69 _imageView = [[UIImageView alloc] initWithFrame:imageViewFrame];
70 _imageView.contentMode = UIViewContentModeCenter;
71 _imageView.alpha = 0.87f;
72 _imageView.backgroundColor = UIColor.lightGrayColor;
73 _imageView.layer.cornerRadius = kHostCardIconSize / 2.f;
74 _imageView.layer.masksToBounds = YES;
75 [_cellView addSubview:_imageView];
76
77 _titleLabel = [[UILabel alloc] init];
78 _titleLabel.font = [MDCTypography titleFont];
79 _titleLabel.alpha = [MDCTypography titleFontOpacity];
80 _titleLabel.textColor = [UIColor colorWithWhite:0 alpha:0.87f];
81 _titleLabel.frame = CGRectMake(
82 imageViewFrame.origin.x + imageViewFrame.size.width + kHostCardIconInset,
83 (self.frame.size.height / 2.f) -
84 (_titleLabel.font.pointSize + kHostCardPadding / 2.f),
85 self.frame.size.width, _titleLabel.font.pointSize + kLinePadding);
86 [_cellView addSubview:_titleLabel];
87
88 _statusLabel = [[UILabel alloc] init];
89 _statusLabel.font = [MDCTypography captionFont];
90 _statusLabel.alpha = [MDCTypography captionFontOpacity];
91 _statusLabel.textColor = [UIColor colorWithWhite:0 alpha:0.60f];
92 _statusLabel.frame = CGRectMake(
93 imageViewFrame.origin.x + imageViewFrame.size.width + kHostCardIconInset,
94 (self.frame.size.height / 2.f) + kHostCardPadding / 2.f,
95 self.frame.size.width, _statusLabel.font.pointSize + kLinePadding);
96 [_cellView addSubview:_statusLabel];
97 }
98
99 #pragma mark - HostCollectionViewCell Public
100
101 - (void)populateContentWithHostInfo:(HostInfo*)hostInfo {
102 _hostInfo = hostInfo;
103
104 _titleLabel.text = _hostInfo.hostName;
105 _statusLabel.text = _hostInfo.status;
106
107 _imageView.image = [UIImage imageNamed:@"ic_desktop"];
108
109 // TODO(nicholss): These colors are incorrect for the final product.
110 // Need to update to the values in the mocks.
111 if ([_hostInfo.status isEqualToString:@"ONLINE"]) {
112 _imageView.backgroundColor = UIColor.greenColor;
113 } else {
114 _imageView.backgroundColor = UIColor.lightGrayColor;
115 }
116 }
117
118 #pragma mark - UICollectionReusableView
119
120 - (void)prepareForReuse {
121 [super prepareForReuse];
122 _hostInfo = nil;
123 _statusLabel.text = nil;
124 _titleLabel.text = nil;
125 }
126
127 @end
OLDNEW
« no previous file with comments | « remoting/client/ios/app/host_collection_view_cell.h ('k') | remoting/client/ios/app/host_collection_view_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698