14 Commits

Author SHA1 Message Date
Jeff Verkoeyen
9a49fd96f9 Internal change.
PiperOrigin-RevId: 366342462
2021-04-01 15:26:22 -07:00
Cody Weaver
61aea173fa
[PageControl] Add traitCollectionDidChange block (#8037)
Adds a traitCollectionDidChangeBlock to MDCPageControl, called when its trait collection changes.
2019-07-23 13:09:27 -07:00
Josh Converse
7d1a1b52cf [PageControl] Adds intrinsic content size to MDCPageControl (#7307)
Adds intrinsicContentSize support to MDCPageControl, utilizing the same logic as sizeThatFits:.

fixes #7306
2019-05-01 09:02:38 -07:00
Robert Moore
800188a649
{clang-format} Format the components. (#6347)
This is a follow-up to https://github.com/material-components/material-components-ios/pull/6027

```
find components \( -name "*.h" -or -name "*.m" \) | xargs clang-format -i
```
2019-01-23 11:08:43 -05:00
featherless
2181084272
[automated] Standardize our open source license stanza to what Xcode generates. (#4985)
Removes the need to copy-paste stanzas from other files anymore as we'll rely on #4478 to generate the correct stanza for us instead.

This was an automated change generated by running a find-and-replace regular expression:

```
/\*
 Copyright ([0-9]+)-present the Material Components for iOS authors\. All Rights Reserved\.

 Licensed under the Apache License, Version 2\.0 \(the "License"\);
 you may not use this file except in compliance with the License\.
 You may obtain a copy of the License at

 http://www\.apache\.org/licenses/LICENSE-2\.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied\.
 See the License for the specific language governing permissions and
 limitations under the License\.
 \*/
```

```
/\*
Copyright ([0-9]+)-present the Material Components for iOS authors\. All Rights Reserved\.

Licensed under the Apache License, Version 2\.0 \(the "License"\);
you may not use this file except in compliance with the License\.
You may obtain a copy of the License at

http://www\.apache\.org/licenses/LICENSE-2\.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied\.
See the License for the specific language governing permissions and
limitations under the License\.
\*/
```

```
/\*
 Copyright ([0-9]+)-present the Material Components for iOS authors\. All Rights Reserved\.
 Licensed under the Apache License, Version 2\.0 \(the "License"\);
 you may not use this file except in compliance with the License\.
 You may obtain a copy of the License at
 http://www\.apache\.org/licenses/LICENSE-2\.0
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied\.
 See the License for the specific language governing permissions and
 limitations under the License\.
 \*/
```

```
// Copyright $1-present the Material Components for iOS authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
```
2018-08-31 12:13:07 -04:00
Andrew Overton
8c3063b2ed
[PageControl] Make MDCPageControl minimum height adhere to accessibility requirements (#4359)
* Make MDCPageControl minimum height adhere to accessibility requirements

* Fix assertions in PageControl unit test
2018-06-04 11:37:59 -04:00
Moshe Kolodny
ab6aae7158 [PageControl] Fix bug with OOB array lookup when calling scrollViewDidScroll. (#2197)
* [PageControl] Fix bug with out of bounds array lookup when calling scrollViewDidScroll with zero numberOfPages.

* Address PR comments.
2017-10-17 00:19:42 -04:00
Julien Poumailloux
f7bcc9a7ac [PageControl] Fixed crasher when resetting -numberOfPages to 0 (#2132)
* Fixed MDCPageControl crasher when resetting -numberOfPages to 0. This is supported by UIPageControl.

Crasher details:
Test Case '-[PageControlExampleTests testResetNumberOfPagesToZero]' started.
~/material-components-ios/components/PageControl/tests/unit/PageControlExampleTests.m:139: error: -[PageControlExampleTests testResetNumberOfPagesToZero] : failed: caught "NSRangeException", "*** -[__NSArrayM objectAtIndexedSubscript:]: index 0 beyond bounds for empty array"
(
	0   CoreFoundation                      0x000000010e3ed03b __exceptionPreprocess + 171
	1   libobjc.A.dylib                     0x000000010da81f41 objc_exception_throw + 48
	2   CoreFoundation                      0x000000010e42ce2c _CFThrowFormattedException + 194
	3   CoreFoundation                      0x000000010e41e714 -[__NSArrayM objectAtIndexedSubscript:] + 148
	4   MaterialComponents                  0x0000000128271441 -[MDCPageControl resetControl] + 2193
	5   MaterialComponents                  0x000000012826e489 -[MDCPageControl setNumberOfPages:] + 281

* Also fixed crasher when the client sets a value for -currentPage (e.g. zero) when -numberOfPages is zero.

* Improved the unit test to hit the 2nd crasher prior to the fix

* Cleaner unit test for the crashers per review feedback
2017-10-09 17:04:12 -04:00
Adrian Secord
5bc8758de5 Porting warning fixes from internal change 166066139. 2017-08-22 17:29:23 -04:00
Adrian Secord
8c3af252be Adding AUTHORS and removing CONTRIBUTORS.txt.
We can credit any contributor who would like to be credited this way, by adding them on request to the AUTHORS file. The copyright statement changes are required for this to work. Note that this has...

Summary:

We can credit any contributor who would like to be credited this way, by adding them on request to the AUTHORS file. The copyright statement changes are required for this to work. Note that this has no legal change, since the contributors always retained their copyright despite the copyright notice, but it's a nice acknowledgement.

Changed copyright statement to include non-Google authors.

Command run:

find * \( -name '*\.m' -or -name '*\.h' -or -name '*\.swift' \) -and -not \( -path 'scripts/external*' -name Pods  \) -print0 | xargs -0 sed -i '' 's/Copyright \(.*\) Google Inc/Copyright \1 the Material Components for iOS authors/'

Added non-source files.

Command run:

grep -Rl 'Copyright .* Google Inc' * --exclude-dir scripts/external --null | xargs -0 sed -i '' 's/Copyright \(.*\) Google Inc/Copyright \1 the Material Components for iOS authors/'

Reviewers: featherless, O1 Material components iOS, randallli

Reviewed By: O1 Material components iOS, randallli

Tags: #material_components_ios

Differential Revision: http://codereview.cc/D1415
2016-08-08 08:16:37 -07:00
Adrian Secord
3aedace959 Re-enabled 100-character line limit.
Reviewers: randallli, O1 Material components iOS

Reviewed By: randallli, O1 Material components iOS

Tags: #material_components_ios

Differential Revision: http://codereview.cc/D965
2016-06-13 13:34:57 -04:00
randallli
e1f584adad [PageControl] Fix crash when scrollView offset is set out of bounds of the numberOfPages
Summary: If you set the content offset to larger than range of the page count the Page Control crashes because it tries to index out of bounds of an array.

Reviewers: cjcox, #mdc_ios_owners, featherless

Reviewed By: cjcox, #mdc_ios_owners, featherless

Projects: #material_components_ios

Differential Revision: http://codereview.cc/D671
2016-04-21 12:50:25 -04:00
randallli
ac8642f4a0 [PageControl] Added test for updating the currentPage when the contentOffset changes
Reviewers: ajsecord, #mdc_ios_owners

Reviewed By: ajsecord, #mdc_ios_owners

Subscribers: ajsecord

Projects: #material_components_ios

Differential Revision: http://codereview.cc/D702
2016-04-21 12:14:30 -04:00
Jeff Verkoeyen
d0092f692a Testing by convention.
Summary:
Similar to Catalog by convention, Testing by convention allows us to generate a fully-working unit test suite using CocoaPods wildcards.

The testing convention is to place unit test source files in a `tests/unit` folder within each component.

A complete "component by convention" now looks like so:

    component/
      examples/
        SomeExample.m
      src/
        ...
      tests/
        unit/
          SomeTest.m

This convention makes it trivially easy to run all tests in our project & generate coverage information. Here are our coverage results:

{F439}

Resolves https://github.com/google/material-components-ios/issues/106.

Reviewers: cjcox, ajsecord, #mdc_ios_owners

Reviewed By: ajsecord, #mdc_ios_owners

Projects: #material_components_ios

Differential Revision: http://codereview.cc/D158
2016-03-01 12:35:19 -05:00