196 Commits

Author SHA1 Message Date
Nobody
e2c6ee020a Add explicit imports for CoreGraphics in files which use it.
PiperOrigin-RevId: 642360013
2024-06-11 12:49:52 -07:00
Nobody
13e691cc9c [MDCPageControl] Fix currentPage being set as -1 in RTL languages.
PiperOrigin-RevId: 574376258
2023-10-17 23:44:11 -07:00
Nobody
fb6803d831 [MDCPageControl] Add bounds check for currentPage.
PiperOrigin-RevId: 552657517
2023-07-31 19:29:14 -07:00
Janette James
decc2f2abb Update unit test matrix
PiperOrigin-RevId: 536771256
2023-05-31 11:30:52 -07:00
Randall Li
76537e827d [MDCPageControl] Change deprecation warning to point at newer recommendation.
PiperOrigin-RevId: 491989109
2022-11-30 12:33:06 -08:00
Nobody
5eed1d1353 Remove unused variable pageNumber
PiperOrigin-RevId: 473812837
2022-09-12 12:15:49 -07:00
Jeff Verkoeyen
b2bbd50350 Mark all To Be Deprecated APIs as Deprecated.
PiperOrigin-RevId: 460478209
2022-07-12 09:13:52 -07:00
Jeff Verkoeyen
d13fe695b2 [PageControl] Mark the component as To Be Deprecated.
Use a UIPageControl instead.

PiperOrigin-RevId: 454047206
2022-06-09 17:18:42 -07:00
Jeff Verkoeyen
86a8c97dc7 Remove all pre-iOS 12 logic.
PiperOrigin-RevId: 400788645
2021-10-04 12:41:07 -07:00
Wenyu Zhang
2462921fa8 Internal change
PiperOrigin-RevId: 400032429
2021-09-30 14:56:05 -07:00
Jeff Verkoeyen
c34de39e30 Internal change.
PiperOrigin-RevId: 397316843
2021-09-17 07:45:01 -07:00
Randall Li
502bc5d910 Ran a Swift formatter
PiperOrigin-RevId: 395947664
2021-09-10 09:48:14 -07:00
Jeff Verkoeyen
96cfc7e331 Internal change
PiperOrigin-RevId: 394241967
2021-09-01 08:56:53 -07:00
Cody Weaver
08d01596df [MultipleComponents] Remove mdf_effectiveUserInterfaceLayoutDirection in favor of the system API effectiveUserInterfaceLayoutDirection that was added in iOS 10.
PiperOrigin-RevId: 391307973
2021-08-17 09:30:47 -07:00
Nobody
39911e5e75 [Material-iOS/FeatureHighlight, Material-iOS/FlexibleHeader, Material-iOS/HeaderStackView, Material-iOS/PageControl, Material-iOS/ShadowElevation] Fix broken images in iOS/Supporting APIs dev docs
PiperOrigin-RevId: 368295102
2021-04-13 14:30:45 -07:00
Jeff Verkoeyen
9a49fd96f9 Internal change.
PiperOrigin-RevId: 366342462
2021-04-01 15:26:22 -07:00
Andrew Overton
07c46757cc Replace material.io API doc links with links to the relevant header f…
This PR replaces API links containing "/api-docs/" with links to suitable header files in GitHub because the site previously linked to is being taken down and replaced with something that won't handle API docs.

Closes https://github.com/material-components/material-components-ios/pull/10045

COPYBARA_INTEGRATE_REVIEW=https://github.com/material-components/material-components-ios/pull/10045 from andrewoverton:replace-mio-api-docs-with-github-links 0d6e56cc11d0c147366a4f6cde829d8b51567ecc
PiperOrigin-RevId: 323424362
2020-07-27 13:09:23 -07:00
Wenyu Zhang
a3381717f7
Fix the bazel BUILD files and snapshot that were restored unintentionally.(#9983) 2020-04-29 11:00:00 -04:00
Randall Li
0100cfe414 [MDC-iOS/BottomSheet] Fix dismissOnDraggingDownSheet behavior
The bottom sheet incorrectly allowed the sheet to be drag dismissed when `dismissOnDraggingDownSheet` was set to NO.

This change permits the gesture to dismiss to begin but prevents it from actually closing the sheet.

https://github.com/material-components/material-components-ios/issues/9723

Closes https://github.com/material-components/material-components-ios/pull/9885

PiperOrigin-RevId: 307802500
2020-04-22 06:21:26 -07:00
Jeff Verkoeyen
8abbb099a9 Delete all bazel support.
We no longer support bazel.

This PR deletes everything related to bazel support from our repo.

Closes https://github.com/material-components/material-components-ios/pull/9968

PiperOrigin-RevId: 306227127
2020-04-13 07:13:47 -07:00
Andrew Overton
f30baf3330
Delete MDCPageControlColorThemer (#9202)
Closes #9082
2019-12-09 15:34:15 -05:00
Andrew Overton
41dd9f2ac3
Update read me for MDCPageControlColorThemer (#9153)
Related to #9082
2019-12-06 14:19:26 -05:00
Andrew Overton
2795716414
deprecate-MDCPageControlColorThemer-applyColorScheme-toPageControl (#9123)
Related to #9082
2019-12-05 16:46:22 -05:00
Bryan Oltman
f40e7f09ca
[Catalog] Improve contrast ratio in PageControlTypicalUseViewController (#8941) 2019-11-15 13:20:03 -05:00
Bryan Oltman
111da2c00c
[Catalog] Improve contrast ratio in PageControlSwiftExampleViewController (#8938) 2019-11-15 13:07:31 -05:00
Yarden Eitan
f58c3451f5 adds a11y support for page control with next button example (#8932)
PageControlAnimationBlockExample has too-low contrast in the controls. It also does not disable the next button even when it has no effect.

Updated colors to have an accessible contrast ratio, and updated the state of the button to show correct interactivity (enabled/disabled)

Before:
![Simulator Screen Shot - iPhone 7 - 2019-11-15 at 12 12 34](https://user-images.githubusercontent.com/4066863/68961835-3cd5e000-07a1-11ea-99fd-83fd7a1e481b.png)


After:
![Simulator Screen Shot - iPhone 7 - 2019-11-15 at 11 40 59](https://user-images.githubusercontent.com/4066863/68959927-1ada5e80-079d-11ea-9b84-7e8d2cfe1ff7.png)


Closes #8904
2019-11-15 12:22:49 -05:00
Yarden Eitan
e550e27089
[PageControl] Fixes contrast ratio and button interactivity for… (#8922)
PageControlAnimationBlockExample has too-low contrast in the controls. It also does not disable the +2/-2 buttons even when they have no effect.

Updated colors to have an accessible contrast ratio, and updated the states of the buttons to show correct interactivity (enabled/disabled)

![Simulator Screen Shot - iPhone 7 - 2019-11-15 at 10 54 32](https://user-images.githubusercontent.com/4066863/68956562-532a6e80-0796-11ea-9378-463988188a47.png)

Closes #8919
2019-11-15 11:43:31 -05:00
Bryan Oltman
5610dd39b0
[PageControl] Position active page indicator correctly after scrolling (#8662) 2019-10-28 11:41:42 -04:00
Robert Moore
b0ee32b59b [PageControl] Use Starlark macros in BUILD file. (#8179)
Add more Starlark macros to the BUILD file to make releasing easier.

Part of #8150
2019-08-02 08:45:17 -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
Robert Moore
8dcf1e4a56
[*] Remove RTL snapshot method overrides. (#7996)
With #7986, most snapshot tests began overriding a method that had nearly the
same behavior.
2019-07-22 21:11:17 -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
featherless
de3f43e5ae
[PageControl] Annotate themer APIs with the recommended APIs. (#7230)
Part of https://github.com/material-components/material-components-ios/issues/7108
2019-04-22 20:02:22 +03:00
Andrew Overton
c56d5d76d3
Add @objc annotations to get examples to show up in Dragons (#7168)
This is a follow up PR for #7166 adds @objc annotations to Swift catalogMetadata() methods, because the Swift 4 compiler no longer attempts to infer what methods should be visible to Objective-C. As a result of this change in the compiler, no Swift examples were showing up in Dragons after #7166. See this article: https://useyourloaf.com/blog/objc-warnings-upgrading-to-swift-4/ for additional context.
2019-04-17 21:35:43 -04:00
Andrew Overton
b38372192f
Update to Swift 4.2 (#7166)
This PR updates the Swift version to 4.2.

Partially resolves #6874.
2019-04-17 16:59:02 -04:00
Robert Moore
1d058b155b
[PageControl] Add basic Snapshot tests. (#6823)
Adding basic snapshot tests for LTR and RTL layout.

Closes #6809
2019-03-11 21:37:32 -04:00
Yarden Eitan
c4d24627ee
updated jazzy yaml files to include framework root (#6750)
We have had errors when generating the docs using jazzy specifically around components giving a fatal error around not finding imports when depending on other components. This is because each component for jazzy is isolated and on its own unless we provide the framework root. This caused our website generator to crash each time and fail to generate a new website.

This should resolve this problem.

QA=
Before the fix when running the website generator we got these errors:
```
/material-components-ios/components/BottomAppBar/src/MDCBottomAppBarView.h:17:9: fatal error: 'MaterialButtons.h' file not found
building site
building search index
^C/Library/Ruby/Gems/2.3.0/gems/rouge-3.1.1/lib/rouge/lexer.rb:458:in `load': Interrupt
	from /Library/Ruby/Gems/2.3.0/gems/rouge-3.1.1/lib/rouge/lexer.rb:458:in `load_lexer'
	from /Library/Ruby/Gems/2.3.0/gems/rouge-3.1.1/lib/rouge.rb:50:in `block in <top (required)>'
	from /Library/Ruby/Gems/2.3.0/gems/rouge-3.1.1/lib/rouge.rb:49:in `each'
	from /Library/Ruby/Gems/2.3.0/gems/rouge-3.1.1/lib/rouge.rb:49:in `<top (required)>'
	from /Library/Ruby/Gems/2.3.0/gems/jazzy-0.9.3/lib/jazzy/jazzy_markdown.rb:2:in `require'
	from /Library/Ruby/Gems/2.3.0/gems/jazzy-0.9.3/lib/jazzy/jazzy_markdown.rb:2:in `<top (required)>'
	from /Library/Ruby/Gems/2.3.0/gems/jazzy-0.9.3/lib/jazzy/doc.rb:7:in `require'
	from /Library/Ruby/Gems/2.3.0/gems/jazzy-0.9.3/lib/jazzy/doc.rb:7:in `<top (required)>'
	from /Library/Ruby/Gems/2.3.0/gems/jazzy-0.9.3/lib/jazzy/config.rb:5:in `require'
	from /Library/Ruby/Gems/2.3.0/gems/jazzy-0.9.3/lib/jazzy/config.rb:5:in `<top (required)>'
	from /Library/Ruby/Gems/2.3.0/gems/jazzy-0.9.3/lib/jazzy.rb:1:in `require'
	from /Library/Ruby/Gems/2.3.0/gems/jazzy-0.9.3/lib/jazzy.rb:1:in `<top (required)>'
	from /Library/Ruby/Gems/2.3.0/gems/jazzy-0.9.3/bin/jazzy:13:in `require'
	from /Library/Ruby/Gems/2.3.0/gems/jazzy-0.9.3/bin/jazzy:13:in `<top (required)>'
	from /usr/local/bin/jazzy:22:in `load'
	from /usr/local/bin/jazzy:22:in `<top (required)>'
	from /Library/Ruby/Gems/2.3.0/gems/bundler-2.0.1/lib/bundler/cli/exec.rb:74:in `load'
	from /Library/Ruby/Gems/2.3.0/gems/bundler-2.0.1/lib/bundler/cli/exec.rb:74:in `kernel_load'
	from /Library/Ruby/Gems/2.3.0/gems/bundler-2.0.1/lib/bundler/cli/exec.rb:28:in `run'
	from /Library/Ruby/Gems/2.3.0/gems/bundler-2.0.1/lib/bundler/cli.rb:463:in `exec'
	from /Library/Ruby/Gems/2.3.0/gems/bundler-2.0.1/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
	from /Library/Ruby/Gems/2.3.0/gems/bundler-2.0.1/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
	from /Library/Ruby/Gems/2.3.0/gems/bundler-2.0.1/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
	from /Library/Ruby/Gems/2.3.0/gems/bundler-2.0.1/lib/bundler/cli.rb:27:in `dispatch'
	from /Library/Ruby/Gems/2.3.0/gems/bundler-2.0.1/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
	from /Library/Ruby/Gems/2.3.0/gems/bundler-2.0.1/lib/bundler/cli.rb:18:in `start'
	from /Library/Ruby/Gems/2.3.0/gems/bundler-2.0.1/exe/bundle:30:in `block in <top (required)>'
	from /Library/Ruby/Gems/2.3.0/gems/bundler-2.0.1/lib/bundler/friendly_errors.rb:124:in `with_friendly_errors'
	from /Library/Ruby/Gems/2.3.0/gems/bundler-2.0.1/exe/bundle:22:in `<top (required)>'
	from /usr/local/bin/bundle:22:in `load'
	from /usr/local/bin/bundle:22:in `<main>'
/material-components-site-generator/scripts/lib/reporter.js:36
      throw e;
      ^

Error: Command failed: bundle exec jazzy         --output "/material-components-site-generator/.stage/ios/catalog/bottomnavigation/api-docs/"         --theme "/material-components-site-generator/ios-api-docs-src/theme"         --head '/components'         --use-safe-filenames
    at checkExecSyncError (child_process.js:601:13)
    at execSync (child_process.js:641:13)
    at JazzyApiGenerator.build (/material-components-site-generator/scripts/lib/jazzy-api-generator.js:34:5)
    at PlatformSite.generateApiDocs (/material-components-site-generator/scripts/lib/platform-site.js:212:17)
    at platformSites.forEach (/material-components-site-generator/scripts/build:86:14)
    at Array.forEach (<anonymous>)
    at reporter.step (/material-components-site-generator/scripts/build:85:21)
    at Reporter.step (/material-components-site-generator/scripts/lib/reporter.js:32:22)
    at Object.<anonymous> (/material-components-site-generator/scripts/build:84:14)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:191:16)
    at bootstrap_node.js:612:3
```
Now we no longer get fatal errors or crash when running the script.
2019-03-01 16:52:02 -05:00
Yarden Eitan
0294a87db2
[MDCPageControl] Fixes MDCPageControl not properly revealing page indicators. (#6714)
-[MDCPageControl revealIndicatorsReversed:] was incorrectly computing the indicator index when the reversed flag was YES. The index is updated to accommodate the reversal flag, but the collection is still being enumerated in normal order. This makes the isCurrentPageIndicator check apply to the wrong indicator.

|Before|After|
|---|---|
|![pc-rtl-bug](https://user-images.githubusercontent.com/1753199/53510109-3bd21680-3a8b-11e9-9405-e4001145b366.gif)|![pcfix](https://user-images.githubusercontent.com/4066863/53511623-d3853400-3a8e-11e9-9a52-d3345ae98254.gif)|
2019-02-27 13:25:00 -05: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
Robert Moore
ed7d0edc62
[PageControl] Add swift examples to bazel. (#6426) 2019-01-22 08:39:05 -05:00
Andrew Overton
1e61959e45
Add PageControl examples to BUILD file (#6323)
Adds PageControl examples to BUILD file.
Closes #6244
2019-01-16 13:14:43 -05:00
Yarden Eitan
2803125b2c
ran clang-format (#6027) 2019-01-11 13:23:51 -05:00
Robert Moore
5b1943dd78
[bazel] Use mdc_extension_objc_library in BUILD (#6089)
Changing all component extension targets to use the new macro
`mdc_extension_objc_library` to reduce boilerplate in the target
definitions.
2018-12-20 17:14:19 -05:00
featherless
003cf8bcd9
[automated] Make mdc_unit_test_suite's name explicit. (#6080)
This change was automatically generated by running a find replace of the following strings:

```
mdc_unit_test_suite(

mdc_unit_test_suite(
    name = "unit_tests",
```

And then running buildifier to enforce style:

    find . -name BUILD | xargs ~/buildifier
2018-12-20 12:36:05 -05:00
featherless
dae4e37ea5
[automated] Ran buildifier against all BUILD files. (#5999)
This is an automated change generated by running the following command:

    find . -name BUILD | xargs buildifier

buildifier can be installed from https://github.com/bazelbuild/buildtools

This change formats all of our BUILD files with the buildifier formatter in preparation for us having a BUILD format linter as part of our presubmits and so that we can cleanly run buildozer commands against the codebase.
2018-12-13 11:20:12 -05:00
Andrew Overton
21dfce7f5f
[PageControl] Add respectsUserInterfaceLayoutDirection to MDCPageControl (#5711)
### The problem

The MDCPageControl has never respected user interface layout direction.

### The solution

Make the MDCPageControl capable of respecting user interface layout direction through the addition of a `respectsUserInterfaceLayoutDirection` property.

Here is a gif of the new RTL behavior, with `respectsUserInterfaceLayoutDirection` set to `YES`:
![after_rtl_2](https://user-images.githubusercontent.com/8020010/48214767-a7fb0400-e34e-11e8-902a-2585c1d5111f.gif)

Here is a gif of the preexisting LTR behavior, with `respectsUserInterfaceLayoutDirection` set to `NO`:
![after_ltr_2](https://user-images.githubusercontent.com/8020010/48214766-a7fb0400-e34e-11e8-974a-b202f600dbc9.gif)

Note that this PR also updates the PageControl typical use example to use this new API.

Closes #5608.
2018-11-14 09:50:54 -05:00
Robert Moore
03f3351ad5
Global replace of single-precision floats with CGFloat casts. (#5718)
Replacing all non-integral, single-precision floating point literals with double-precision values explicitly cast to CGFloat.  For example, `0.1f` should become `(CGFloat)0.1`.

Regex used:
```
([0-9]*\.)([0-9]*?)([1-9]+)([0-9]*?)[fF]
```

PiperOrigin-RevId: 220683126
2018-11-12 10:50:01 -05:00
Robert Moore
74a27253e8
Global replace of integral single-precision literals with integer literals. (#5709)
Global replace of integral single-precision literals with integer literals.

Regular expression used:
```perl
/[^\w]([0-9]+)\.[0]*[fF]/$1/
```
2018-11-08 14:02:04 -05:00
Wenyu Zhang
2fee13665f
[FlexibleHeaderView] Make FexibleHeaderView respect contentInsetAdjustmentBehavior (#4970) (#5073)
This fix is compatible for iOS 11 and above. For pre iOS11 version, FlexibleHeaderView still insets the contentInset. To fix it, we need to use a deprecated API automaticallyAdjustsScrollViewInsets from a view controller, which is not supported by the current FlexibleHeaderView architecture. Suggestions are welcomed.

Before the Change:
![pc2](https://user-images.githubusercontent.com/8836258/45308459-8072f100-b4ef-11e8-9642-7afedfc17010.gif)

After the Change:
![pc1](https://user-images.githubusercontent.com/8836258/45308287-1f4b1d80-b4ef-11e8-8359-08b079af40e5.gif)
2018-09-18 14:08:51 -04: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