Skip to content

Commit ff5df61

Browse files
yarneomaterial-automation
authored andcommitted
[Shadows] Move MDCShadowForElevation to become an instance method of MDCShadowsCollection.
PiperOrigin-RevId: 368416329
1 parent e12e0a4 commit ff5df61

File tree

5 files changed

+36
-63
lines changed

5 files changed

+36
-63
lines changed

components/Shadow/examples/ShadowTypicalUseExample.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ final class ShadowedView: UIView {
3030
override func layoutSubviews() {
3131
super.layoutSubviews()
3232
MDCConfigureShadow(
33-
for: self, shadow: MDCShadowForElevation(1, MDCShadowsCollectionDefault()),
33+
for: self, shadow: MDCShadowsCollectionDefault().shadow(forElevation: 1),
3434
color: MDCShadowColor())
3535
}
3636
}
@@ -64,7 +64,7 @@ final class ShapedView: UIView {
6464
shapeLayer.path = path
6565

6666
MDCConfigureShadow(
67-
for: self, shadow: MDCShadowForElevation(1, MDCShadowsCollectionDefault()),
67+
for: self, shadow: MDCShadowsCollectionDefault().shadow(forElevation: 1),
6868
color: MDCShadowColor(),
6969
path: path)
7070
}
@@ -109,7 +109,7 @@ final class AnimatedShapedView: UIView {
109109
else { return }
110110
shapeLayer.path = startPath
111111
MDCConfigureShadow(
112-
for: self, shadow: MDCShadowForElevation(1, MDCShadowsCollectionDefault()),
112+
for: self, shadow: MDCShadowsCollectionDefault().shadow(forElevation: 1),
113113
color: MDCShadowColor(),
114114
path: startPath)
115115

components/Shadow/src/MDCShadowsCollection.h

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,19 @@ __attribute__((objc_subclassing_restricted)) @interface MDCShadowsCollection : N
2727

2828
- (nonnull instancetype)init NS_UNAVAILABLE;
2929

30+
/**
31+
Returns an MDCShadow instance representing the shadow properties for the given elevation (in
32+
points) by fetching from the @c shadowsCollection container holding elevation to MDCShadow instance
33+
bindings.
34+
35+
Note: If the provided elevation is not stored, the shadow properties that are set are of the
36+
nearest elevation above the provided elevation. i.e. if elevations 1 and 3 are set, and an
37+
elevation of 2 is provided as input, the shadow properties set will be of elevation 3. If the
38+
provided elevation is above the highest elevation value that is set, then the shadow properties set
39+
will be of the highest elevation.
40+
*/
41+
- (nonnull MDCShadow *)shadowForElevation:(CGFloat)elevation;
42+
3043
@end
3144

3245
/**
@@ -66,14 +79,14 @@ __attribute__((objc_subclassing_restricted)) @interface MDCShadowsCollectionBuil
6679
offset.
6780
@param elevation The elevation provided in points (dp).
6881
*/
69-
+ (MDCShadowsCollectionBuilder *_Nonnull)builderWithShadow:(MDCShadow *_Nonnull)shadow
82+
+ (nonnull MDCShadowsCollectionBuilder *)builderWithShadow:(MDCShadow *_Nonnull)shadow
7083
forElevation:(CGFloat)elevation;
7184

7285
/**
7386
Builds and returns an MDCShadowsCollection instance given the provided shadows using the
7487
@c addShadow:forElevation and @c addShadowsForElevations: APIs.
7588
*/
76-
- (MDCShadowsCollection *_Nonnull)build;
89+
- (nonnull MDCShadowsCollection *)build;
7790

7891
@end
7992

@@ -130,17 +143,3 @@ FOUNDATION_EXTERN UIColor *_Nonnull MDCShadowColor(void);
130143
radius, offset) for elevations.
131144
*/
132145
FOUNDATION_EXTERN MDCShadowsCollection *_Nonnull MDCShadowsCollectionDefault(void);
133-
134-
/**
135-
Returns an MDCShadow instance representing the shadow properties for the given elevation (in
136-
points) by using the @c shadowsCollection container holding elevation to MDCShadow instance
137-
bindings.
138-
139-
Note: If the provided elevation is not stored, the shadow properties that are set are of the
140-
nearest elevation above the provided elevation. i.e. if elevations 1 and 3 are set, and an
141-
elevation of 2 is provided as input, the shadow properties set will be of elevation 3. If the
142-
provided elevation is above the highest elevation value that is set, then the shadow properties set
143-
will be of the highest elevation.
144-
*/
145-
FOUNDATION_EXTERN MDCShadow *_Nonnull MDCShadowForElevation(
146-
CGFloat elevation, MDCShadowsCollection *_Nonnull shadowsCollection);

components/Shadow/src/MDCShadowsCollection.m

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,3 @@ void MDCConfigureShadowForViewWithPath(UIView *view, MDCShadow *shadow, UIColor
163163
view.layer.shadowOffset = shadow.offset;
164164
view.layer.shadowPath = path;
165165
}
166-
167-
MDCShadow *MDCShadowForElevation(CGFloat elevation,
168-
MDCShadowsCollection *shadowValuesForElevation) {
169-
return [shadowValuesForElevation shadowForElevation:elevation];
170-
}

components/Shadow/tests/snapshot/MDCShadowSnapshotTests.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,12 @@ - (void)layoutSubviews {
7373
_Nonnull CGPathRef shapePath = self.shapePath;
7474
self.backgroundColor = nil;
7575
MDCConfigureShadowForViewWithPath(
76-
self, MDCShadowForElevation(self.shadowElevation, MDCShadowsCollectionDefault()),
76+
self, [MDCShadowsCollectionDefault() shadowForElevation:self.shadowElevation],
7777
self.shadowColor, shapePath);
7878
} else {
7979
self.backgroundColor = UIColor.whiteColor;
8080
MDCConfigureShadowForView(
81-
self, MDCShadowForElevation(self.shadowElevation, MDCShadowsCollectionDefault()),
81+
self, [MDCShadowsCollectionDefault() shadowForElevation:self.shadowElevation],
8282
self.shadowColor);
8383
}
8484
}

components/Shadow/tests/unit/MDCShadowTests.m

Lines changed: 16 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ @implementation MDCShadowTests
2727

2828
- (void)testZeroElevationShouldReturnEmptyShadow {
2929
// Given
30-
MDCShadow *shadow = MDCShadowForElevation(0, MDCShadowsCollectionDefault());
30+
MDCShadow *shadow = [MDCShadowsCollectionDefault() shadowForElevation:0];
3131

3232
// Then
3333
XCTAssertEqual(shadow.opacity, 0);
@@ -37,7 +37,7 @@ - (void)testZeroElevationShouldReturnEmptyShadow {
3737

3838
- (void)testLowElevationShouldReturnShadow {
3939
// Given
40-
MDCShadow *shadow = MDCShadowForElevation(2, MDCShadowsCollectionDefault());
40+
MDCShadow *shadow = [MDCShadowsCollectionDefault() shadowForElevation:2];
4141

4242
// Then
4343
XCTAssertGreaterThan(shadow.opacity, 0);
@@ -47,7 +47,7 @@ - (void)testLowElevationShouldReturnShadow {
4747

4848
- (void)testHighElevationShouldReturnShadow {
4949
// Given
50-
MDCShadow *shadow = MDCShadowForElevation(24, MDCShadowsCollectionDefault());
50+
MDCShadow *shadow = [MDCShadowsCollectionDefault() shadowForElevation:24];
5151

5252
// Then
5353
XCTAssertGreaterThan(shadow.opacity, 0);
@@ -57,51 +57,30 @@ - (void)testHighElevationShouldReturnShadow {
5757

5858
- (void)testSameElevationShouldBeEqualToSelf {
5959
// Given
60-
MDCShadow *lowElevationShadowA = MDCShadowForElevation(2, MDCShadowsCollectionDefault());
61-
MDCShadow *lowElevationShadowB = MDCShadowForElevation(2, MDCShadowsCollectionDefault());
60+
MDCShadow *lowElevationShadowA = [MDCShadowsCollectionDefault() shadowForElevation:2];
61+
MDCShadow *lowElevationShadowB = [MDCShadowsCollectionDefault() shadowForElevation:2];
6262

6363
// Then
6464
XCTAssertEqualObjects(lowElevationShadowA, lowElevationShadowB);
6565
}
6666

6767
- (void)testLowElevationShouldReturnDifferentShadowFromHighElevation {
6868
// Given
69-
MDCShadow *lowElevationShadow = MDCShadowForElevation(2, MDCShadowsCollectionDefault());
70-
MDCShadow *highElevationShadow = MDCShadowForElevation(24, MDCShadowsCollectionDefault());
69+
MDCShadow *lowElevationShadow = [MDCShadowsCollectionDefault() shadowForElevation:2];
70+
MDCShadow *highElevationShadow = [MDCShadowsCollectionDefault() shadowForElevation:24];
7171

7272
// Then
7373
XCTAssertNotEqualObjects(lowElevationShadow, highElevationShadow);
7474
}
7575

76-
- (void)testDefaultShadowElevationValuesAreReturnedCorrectlyForGivenElevation {
77-
// Given
78-
MDCShadowsCollection *shadowsCollection = MDCShadowsCollectionDefault();
79-
80-
// When
81-
MDCShadow *zeroShadow = MDCShadowForElevation(0, shadowsCollection);
82-
MDCShadow *oneShadow = MDCShadowForElevation(1, shadowsCollection);
83-
MDCShadow *threeShadow = MDCShadowForElevation(3, shadowsCollection);
84-
MDCShadow *sixShadow = MDCShadowForElevation(6, shadowsCollection);
85-
MDCShadow *eightShadow = MDCShadowForElevation(8, shadowsCollection);
86-
MDCShadow *twelveShadow = MDCShadowForElevation(12, shadowsCollection);
87-
88-
// Then
89-
XCTAssertEqualObjects(zeroShadow, [shadowsCollection shadowForElevation:0]);
90-
XCTAssertEqualObjects(oneShadow, [shadowsCollection shadowForElevation:1]);
91-
XCTAssertEqualObjects(threeShadow, [shadowsCollection shadowForElevation:3]);
92-
XCTAssertEqualObjects(sixShadow, [shadowsCollection shadowForElevation:6]);
93-
XCTAssertEqualObjects(eightShadow, [shadowsCollection shadowForElevation:8]);
94-
XCTAssertEqualObjects(twelveShadow, [shadowsCollection shadowForElevation:12]);
95-
}
96-
9776
- (void)testDefaultShadowElevationValuesAreReturnedCorrectlyForOutOfBoundsElevations {
9877
// Given
9978
MDCShadowsCollection *shadowsCollection = MDCShadowsCollectionDefault();
10079

10180
// When
102-
MDCShadow *negativeShadow = MDCShadowForElevation(-4, shadowsCollection);
103-
MDCShadow *bigShadow = MDCShadowForElevation(13, shadowsCollection);
104-
MDCShadow *hugeShadow = MDCShadowForElevation(3000, shadowsCollection);
81+
MDCShadow *negativeShadow = [shadowsCollection shadowForElevation:-4];
82+
MDCShadow *bigShadow = [shadowsCollection shadowForElevation:13];
83+
MDCShadow *hugeShadow = [shadowsCollection shadowForElevation:3000];
10584

10685
// Then
10786
XCTAssertEqualObjects(negativeShadow, [shadowsCollection shadowForElevation:0]);
@@ -114,11 +93,11 @@ - (void)testDefaultShadowElevationValuesAreReturnedCorrectlyForInBetweenValueEle
11493
MDCShadowsCollection *shadowsCollection = MDCShadowsCollectionDefault();
11594

11695
// When
117-
MDCShadow *shadow1 = MDCShadowForElevation(0.1, shadowsCollection);
118-
MDCShadow *shadow2 = MDCShadowForElevation(2.314, shadowsCollection);
119-
MDCShadow *shadow3 = MDCShadowForElevation(4, shadowsCollection);
120-
MDCShadow *shadow4 = MDCShadowForElevation(6.01, shadowsCollection);
121-
MDCShadow *shadow5 = MDCShadowForElevation(9.11, shadowsCollection);
96+
MDCShadow *shadow1 = [shadowsCollection shadowForElevation:0.1];
97+
MDCShadow *shadow2 = [shadowsCollection shadowForElevation:2.314];
98+
MDCShadow *shadow3 = [shadowsCollection shadowForElevation:4];
99+
MDCShadow *shadow4 = [shadowsCollection shadowForElevation:6.01];
100+
MDCShadow *shadow5 = [shadowsCollection shadowForElevation:9.11];
122101

123102
// Then
124103
XCTAssertEqualObjects(shadow1, [shadowsCollection shadowForElevation:1]);
@@ -139,7 +118,7 @@ - (void)testSettingNewShadowInstanceUsingBuilder {
139118
[[MDCShadowsCollectionBuilder builderWithShadow:shadow forElevation:4] build];
140119

141120
// Then
142-
MDCShadow *fetchedShadow = MDCShadowForElevation(4, shadowsCollection);
121+
MDCShadow *fetchedShadow = [shadowsCollection shadowForElevation:4];
143122
XCTAssertEqualObjects(shadow, fetchedShadow);
144123
}
145124

0 commit comments

Comments
 (0)