128 Commits

Author SHA1 Message Date
Robert Moore
675235ed05
{Tests} Deallocate test objects at the end of tests. (#5397)
Deallocating many of the properties created for each unit test. Since all
XCTestCase instances survive until the end of the test suite, any properties
created for a test will be preserved as well. This frees up around 3.7 MB
(~6%) of memory from the entire test suite, as measured on my desktop.

|Before|After|
|----|----|
|![test-objcs-before](https://user-images.githubusercontent.com/1753199/46813473-c3b9bd00-cd44-11e8-990c-28dff4ab5ad2.png)|![test-objcs-after](https://user-images.githubusercontent.com/1753199/46813481-c7e5da80-cd44-11e8-90e4-2e6d532ebbfb.png)|

See also: https://qualitycoding.org/xctestcase-teardown/

Closes #5395
2018-10-12 08:33:58 -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
Jeff Verkoeyen
9854044c96 Revert "[automated] Standardize our open source license stanza to what Xcode generates. (#4982)"
This reverts commit b45bc2fdd4dfe12fc76751a45c9cf7b0d6c1261f.
2018-08-31 12:01:24 -04:00
featherless
b45bc2fdd4
[automated] Standardize our open source license stanza to what Xcode generates. (#4982)
Removes the need to copy-paste stanzas from other files anymore as we'll rely on https://github.com/material-components/material-components-ios/pull/4478 to generate the correct stanza for us instead.

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

### Find

```
/\*
 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\.
 \*/
```

### Replace

```
// 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 11:49:00 -04:00
Yarden Eitan
3480c50c67
updated to newest CbC standard (#4956)
Move to the new CbC standard released in CatalogByConvention v2.5.0. See PR: material-foundation/cocoapods-catalog-by-convention#27 for more info on the change.
2018-08-29 20:45:13 -04:00
Andrew Overton
44bed97140
[FeatureHighlight] Fix crash when backgrounding and re-opening app. (#4796)
This PR (#4796) closes issue #4791, which was related to a crash that resulted from a fix to an internal client bug where the layout of the feature highlight was incorrect after rotations.

The approach taken was to revert the change that resulted in the crash and add a safeguard against incorrect layout by applying the positioning code both in the animation block (which will be sufficient for most cases) as well as after (which will be sufficient for cases where the frames we rely on in the positioning code are incorrect during the animation.)
2018-08-17 13:24:01 -04:00
Robert Moore
175942d9e0
[Catalog] Fix Swift example imports (#4780)
Many of our Swift examples are either missing imports or are importing all of
MaterialComponents. Both of these will cause failures during internal builds.
2018-08-14 13:26:37 -04:00
featherless
e14b90e829
[schemes/Color] Formally mark all to-be-deprecated APIs as "ToBeDeprecated". (#4738)
This change further formalizes our pattern of annotating APIs that will be or are deprecated using class categories. Moving an API into such a category has the benefit of being picked up by the API diff toolchain and elevated into our release notes as a result.
2018-08-09 16:39:56 -04:00
Cody Weaver
7e71bb0079
[FeatureHighlight] Add swift example (#4439)
Added a feature highlight swift example. Also, attempted to reproduce #3644 but found that the bug had already been resolved.
2018-06-26 14:52:08 -04:00
Mohammad Cazi
e91de06841
we dismiss and present feature highlight from the new spot. (#4300)
https://github.com/material-components/material-components-ios/pull/4300
2018-05-29 16:28:00 -04:00
featherless
e1e6d249a4
[Docs] Add badges to all components. (#4278)
As part of our readme generator, components can now opt in to displaying badges in their readme.

The badges are generated from https://shields.io/ and are focused on an individual component. We're currently generating the following badges:

- Open bug count.
2018-05-25 11:12:48 -04:00
Mohammad Cazi
99f2303135
[FeatureHighlight] View should not be loaded unless it's explicitly called or presented. (#4234)
* Feature Highlight must not load the view unless the view property is called or it's presented.

* fixed the tests,
added new tests for loading view,
Moved the logic for accessibility hint default to view controller,
Match the pattern of of MDCAlertController for not loading the view.

* moving the string files in to the right folder

* change the if logic to isViewLoaded for more clarity?

https://github.com/material-components/material-components-ios/pull/4234
2018-05-24 10:58:43 -04:00
John Detloff
0c0ce4248e
Initialize default color and typography schemes in examples (#4200)
Ensure a default colorScheme and typographyScheme is initialized for examples.
2018-05-21 12:44:43 -04:00
Mohammad Cazi
5ed1f44fb1 [FeatureHighlight] title not attributed. (#4175)
* seems like we were not setting attributed text for title.

* We should set attributed text for title as well.
2018-05-17 17:49:21 -04:00
Mohammad Cazi
f1b919ed5b [Catalog] Feature highlight should be triggered from a separate Button. (#3742)
* separating action and feature button.

* separate button to show the feature highlight.

* colors should not be catalog presentable.

* revert.

* removing redundant theming.

* custom view with no morphing.
2018-05-16 09:15:29 -07:00
Mohammad Cazi
8b4c293287
Color Should be a dragon example. (#3743)
https://github.com/material-components/material-components-ios/pull/3743
2018-05-07 14:46:17 -04:00
Mohammad Cazi
6e7ed439ce
[Catalog] FeatureHighlight should be themed according to global theming. (#3738)
* FeatureHighlight should be themed according to global theming.

* lf

https://github.com/material-components/material-components-ios/pull/3738
2018-05-04 15:49:33 -04:00
Jeff Verkoeyen
4272dc0074 Reorder image assets. 2018-05-04 12:49:34 -04:00
featherless
a078a9722d
Standardize the casing for all components to match spec. (#3693) 2018-05-03 15:02:36 -04:00
featherless
da21941afa
Regenerate component docs with automatic API links. (#3673)
Example output:

<img width="468" alt="screen shot 2018-05-02 at 10 33 23 pm" src="https://user-images.githubusercontent.com/45670/39557914-d9512f38-4e58-11e8-824d-60f03bcd1b76.png">
2018-05-02 22:33:55 -04:00
Robert Moore
47c1bcb5d3
[FeatureHighlight] Allow setting accessibilityHint (#3649)
Users should be able to override the default `accessibilityHint` on the
title text of the Feature Highlight view. The current hint is incorrect
instructions about dismissing the view.

Since we are not currently making breaking changes to components, this
change will permit teams to override the incorrect hint by assigning
either an empty string (to have no hint) or to set an appropriate hint.

Partially implements #3644
2018-05-02 14:48:23 -04:00
featherless
037bf7d0f0
Flatten all +Extensions CocoaPods targets into standalone targets. (#3572)
This discourages depending on all of a component's extensions and aligns our targets more closely with how we expect them to be imported and depended upon.

This is a breaking change.

Pivotal story: https://www.pivotaltracker.com/story/show/157118721
2018-05-02 10:20:01 -04:00
featherless
de2bd52da6
[FeatureHighlight] Remove theming preambles and regenerate root readme. (#3635) 2018-05-01 22:20:27 -04:00
featherless
c1fc4e728b
[FeatureHighlight] Split the documentation into separate articles and run the readme generator. (#3620) 2018-05-01 16:44:30 -04:00
Adrian Secord
7a7293883f
Remove space after triple-backtick Markdown syntax. (#3577) 2018-04-29 09:00:53 -04:00
featherless
d3c5316db0 Generate all themer documentation. (#3562)
* Generate all themer documentation.

* Fix Snackbar vars.

* Fix textfields vars.

* Fix link.

* Fix bottom app bar vars.

* Fix more vars.

* Add home page links.

* Fix typos.

* Fix more links.

* Add ink.

* Tabs.

* Cleanup.
2018-04-27 16:59:03 -04:00
featherless
4186de3733
Adding .vars files for each component. (#3557) 2018-04-27 12:20:05 -04:00
featherless
0cc7e9860f
Standardizing API docs. (#3481)
This standardizes the themer API docs for every component.

Pivotal story: https://www.pivotaltracker.com/story/show/157066083
2018-04-26 22:25:57 -04:00
featherless
8395836c98
Remove all UIAppearance references from documentation. (#3480)
We do not intend to actively support UIAppearance any further. This change removes any references to supporting UIAppearance from our public documentation.

Pivotal story: https://www.pivotaltracker.com/story/show/157048342
2018-04-26 12:55:35 -04:00
Mohammad Cazi
a291896f07
[Typography][Color] Make sure our examples only use the new Color/Typography APIs (#3489)
* Replacing ColorThemer and FontThemer with SemanticColorThemer and TypographyThemer.

* Headline 6 is being used for FeatureHighlights not Headline2  (example update).

* Removed Feature Highlight Themer example since it's redundant, no scheme color changes in Feature Highlight Examples.

https://github.com/material-components/material-components-ios/pull/3489
2018-04-26 12:54:57 -04:00
Yarden Eitan
7f7bc36202
[Catalog] Expose colorScheme + typographyScheme properties for all examples to use app wide theming (#3478)
Made colorScheme and typographyScheme properties in the class interfaces for all our examples.
Moved theming away from example inits and into viewDidLoad
Small update for slider example to allow it to grab the theming properly.
Related Pivotal: https://www.pivotaltracker.com/story/show/156616695
2018-04-25 15:15:17 -04:00
featherless
bb9324ecae
[FeatureHighlight] Add umbrella headers for all extension targets. (#3466)
Also updated all imports to make use of the umbrella headers.

Pivotal story: https://www.pivotaltracker.com/story/show/157045283
2018-04-24 16:23:18 -04:00
Mohammad Cazi
8563ec05c7
[FeatureHighlight] Implementation of Typography Themer. (#3268)
* Adding TypographyThemer for FeatureHighlight.

* finish the deprecation comment.

* fix blaze build

* Typography -> TypographyThemer

* Updated old tests.

* Cleaning up comments, and test.

* use an instead of a for MDC
2018-04-09 16:08:20 -04:00
Mohammad Cazi
2962b79503
exposing title and body font for FeatureHighlightViewController. (#3274) 2018-04-09 14:22:09 -04:00
Mohammad Cazi
98740fac54
cleaning up dynamic type support for feature highlight by defining the default. (#3269) 2018-04-06 14:31:02 -04:00
Mohammad Cazi
fa00c708b7
[FeatureHighlight] Adding Color Themer. (#3260)
* Added Semantic Color Scheme Method for FeatureHighlight.

* change the applied color for title and body.

* Added Color Scheme for Feature Highlight.

* [Color] Implement a swift-friendly API for color scheme defaults. (#3246)

The old API required swift code like so:

    MDCSemanticColorScheme(materialDefaults: ())

The new API allows swift code like so:

    MDCSemanticColorScheme(defaults: .material)

Pivotal story: https://www.pivotaltracker.com/story/show/156527002
2018-04-06 10:24:16 -04:00
featherless
83b9ea1735
Revert "[Typography] Migrate from FontScheme to TypographyScheming (#3219)" (#3256)
This reverts commit 2e48edf99f8c73c81ba4d782f51a55faf06d23a8.

This commit introduced a test-breaking change in TextFields that is blocking presubmits.

Closes https://github.com/material-components/material-components-ios/issues/3245
2018-04-05 14:04:44 -04:00
Robert Moore
25c2fc889e Merge branch 'release-candidate' into develop 2018-04-05 11:23:59 -04:00
ianegordon
2e48edf99f
[Typography] Migrate from FontScheme to TypographyScheming (#3219)
* Migrate to Font Scheme

* Add support for iOS 8.0-8.1

* Update Themers and Tests

* Font -> Typography

* Rebase

* Update BUILD

* Cleanup

* Update naming, add docs

* Fix BUILD target

* Add Typography Dependency

* BUILD updates

* BUILD fix

* Add tests

* Typography
2018-04-04 23:47:49 -04:00
Robert Moore
8e8d6f263b
Revert "[FeatureHighlight] FeatureHighlightViewController should expose FeatureHighlightView as a property. (#3145)" (#3231)
Many internal clients are breaking because of this API change. Instead, we
should follow the deprecation policy so clients can make a gradual migration
to the final API.

This reverts commit 24be789f57aedb732ceddecc36699f52875dc8d6.

Reopens #3144
2018-04-04 15:31:54 -04:00
Robert Moore
85ed8aed96 [FeatureHighlight] Copy block instead of assign (#3159)
Since blocks are allocated on the stack, they need to be copied before
being retained within properties to ensure they won't be overwritten.
2018-03-29 14:53:31 -04:00
Mohammad Cazi
24be789f57 [FeatureHighlight] FeatureHighlightViewController should expose FeatureHighlightView as a property. (#3145)
* Extracting Accessibility out of FeatureHighlightViewController to a mutator.
Tests added.
Example updated.

* Revert "Extracting Accessibility out of FeatureHighlightViewController to a mutator."

This reverts commit 0b5433ebf86366087b240c4dc4992a0603fa73e0.

* Feature Highlight Clean up.

* Update examples.

* make title and body font defaults a class property.
2018-03-27 13:26:51 -04:00
Robert Moore
61277455f1
Use safe selector access for color themers (#3126)
Many of our color themers are accessing optional properties without
first verifying that the color scheme responds to the selector.  This
can result in crashes. Instead, each optional property should be checked
for safety before being used.
2018-03-23 08:58:23 -04:00
Yarden Eitan
7b742b5745
[Kokoro / CI] Have Kokoro test multiple iOS versions and simulators on different Xcodes. (#3117)
* Remove dependency on Travis by having Kokoro test multiple iOS versions and simulators on different Xcodes.

* refactor

* refactor

* refactor
2018-03-21 09:40:30 -04:00
Mohammad Cazi
fa6a2f67d6 [FeatureHighlight] Accessibility title and body mutator added to fix UIAppearance issue (#3043)
* Extracting Accessibility out of FeatureHighlightViewController to a mutator.
Tests added.
Example updated.

* Added the new folder to pod setting.

* Splitting Title and Body Mutators, added tests for case of nil color.

* extra lf.

* Options is now a variable that can be given to the mutator.

* Fixing unit test issues, Updating all examples.

* Fixing Build file.

* Fixing build file.

* build file fix

* extra pace in the build file

* Revert "extra pace in the build file"

This reverts commit 18195fc893da2bcef7f8ef21f20b9f016b6c6011.

* extra space.

* cleaning up based on PR feedback.

* call super on setup and teardown.

* has to include to folder.

* build file indentation and variable name fixes.

* added color test.

* Document the test

* Made single method for accessibility.

* removing option input from public API.

* improving tests and documentation.

* putting this change in a separate PR.
2018-03-13 12:14:43 -04:00
Robert Moore
0c97e585d5 [FeatureHighlight] Remove use of __typeof__ (#3018)
Instead of relying on the compiler to determine the pointer type,
explicit type references should be used.

Related to #3017
2018-02-28 14:13:55 -05:00
Mohammad Cazi
261828a056
[Warnings Fix] Block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior. (#2933)
* Warning Fix: Block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior.

* 100 char limit.
2018-02-14 15:47:07 -05:00
ianegordon
5a05ff9f9b
[Typography] Add FontThemer & FontScheme to FeatureHighlight (#2760)
* [Typography] Add FontThemer & FontScheme to FeatureHighlight

* Add Themer Example

* Remove TODO

* Cleanup / Feedback

* Migrate to new type hierarchy
2018-01-10 23:35:36 -05:00
ianegordon
49de50edae Consolidate installation requirements in the main README (#2809) 2018-01-05 13:50:38 -05:00
Yarden Eitan
6df22d2cd6
Update MaterialComponents podspec to separate extensions from component. Breaking change, please see description when sending out a new release (#2748)
* [Catalog] Update catalog readme to reflect podspec filename change

* upate podspec

* update spec to extension

* more specific dependency

* added documentation
2018-01-02 16:51:58 -05:00