cordova-android 12 introduces support for monochrome icons. It was intended for it to be optional.
However due to a faulty check, if you didn't supply the monochrome property, adaptive icons will not be written out.
I've corrected the check. Additionally I added the dedent package which is a string template formatter so that
we can more easily format some of our inline templates to make it easier to read.
I've also added a warning for when the monochrome property is given without the required adaptive properties. Tests were added to assert that icons are written as expected with and without the monochrome property as well as the warning is emitted.
There is one caveat, the warning in practice isn't seen by the user because the CLI ends up kicking out earlier via
Platforms affected
Android
Motivation and Context
fixes #1616
Description
cordova-android 12 introduces support for monochrome icons. It was intended for it to be optional. However due to a faulty check, if you didn't supply the monochrome property, adaptive icons will not be written out.
I've corrected the check. Additionally I added the
dedent
package which is a string template formatter so that we can more easily format some of our inline templates to make it easier to read.I've also added a warning for when the monochrome property is given without the required adaptive properties. Tests were added to assert that icons are written as expected with and without the monochrome property as well as the warning is emitted.
There is one caveat, the warning in practice isn't seen by the user because the CLI ends up kicking out earlier via
https://github.com/apache/cordova-android/blob/master/lib/prepare.js#L666
But I opted to keep it anyway.
Testing
Ran npm test. Packed and tested locally and observed adaptive icons being written as expected with and without monochrome icon.
Checklist
(platform)
if this change only applies to one platform (e.g.(android)
)