Skip to content

[Dependency Updates] Update googleMaterialVersion to 1.9.0#18433

Merged
AjeshRPai merged 15 commits intotrunkfrom
deps/update-google-material-to-1.9.0
May 25, 2023
Merged

[Dependency Updates] Update googleMaterialVersion to 1.9.0#18433
AjeshRPai merged 15 commits intotrunkfrom
deps/update-google-material-to-1.9.0

Conversation

@ParaskP7
Copy link
Copy Markdown
Contributor

@ParaskP7 ParaskP7 commented May 15, 2023

Parent #17798

This PR updates googleMaterialVersion to 1.9.0.

PS: Since this library was anyway pointing to 1.6.0-alpha01 (it seems for some time now), the below commits was for documentation purposes only and weren't causing any actual changes whatsoever:


PS: @AjeshRPai I added you as the main reviewer, randomly so, since I just wanted someone from the WordPress team to be aware of and sign-off on that change for WPAndroid. I also added the @wordpress-mobile/apps-infrastructure team, but this in done only for monitoring purposes, as such, I am not expecting any active review from that team. Thus, feel free to merge this PR if you deem so.


App UI Fix List:

  1. Replace material check box with with checkbox on every layout (due to 1.7.0)

Compile Errors Fix List:

  1. Replace not found m3 sys res on jetpack powered bottom sheet (due to 1.6.1)
    • FYI: @ravishanker since you introduced this @dimen/m3_sys_typescale_headline_large_text_size dimension and assigned it to android:textSize via this PR [commit], let me know if this fix makes sense to you too.
  2. Replace not found m3 sys res on jetpack feature removal overlay (due to 1.6.1)
    • FYI: @AjeshRPai since you introduced this @dimen/m3_sys_typescale_headline_medium_text_size dimension and assigned it to app:autoSizeMinTextSize via this PR [commit], let me know if this fix makes sense to you too. Or, if you would prefer this dimension to remain 28sp and be either hardcoded or extracted to a newly dimen resource. 🤔

Compile Warnings Resolution List:

  1. Resolve chip group checked change listener deprecation warning (due to 1.6.1)

List Warnings Suppression List:

  1. Suppress restricted api lint error on wp dialog snackbar (due to 1.6.1)

To test:

  1. See the dependency tree diff result and verify correctness.
  2. Thoroughly smoke test both, the WordPress and Jetpack apps, and see if everything is working as expected.
  3. In addition to the above smoke test, you can expand the below and follow the inner and more explicitly test steps within, which is mainly related to the fixes (see above) and transitive updates on external and internal libraries (see diff):

1.6.1 Update:

1. Jetpack Feature Full Screen Overlay [JetpackFeatureFullScreenOverlayFragment.kt + jetpack_feature_removal_overlay.xml]

ℹ️ This test applies to the WordPress app.

  • Go to My Site tab -> Site Picker (down-arrow).
  • Click the plus (+) button to add a new site.
  • Choose Create WordPress.com site when the dialog appears.
  • Verify that the Jetpack Feature Full screen overlay is shown and functioning as expected.
2. Jetpack Powered Bottom Sheet [JetpackPoweredBottomSheetFragment.kt + jetpack_powered_bottom_sheet.xml]

ℹ️ This test applies to the WordPress app.

  • Go to My Site tab -> MENU sub-tab.
  • Find the Manage section in the middle and click on its Activity Log option.
  • You will notice the Moving to the Jetpack app in a few days. bottom sheet, click on it.
  • Verify that the Jetpack Powered bottom sheet is shown and functioning as expected.
3. Jetpack Static Poster Screen [ChipsViewHolder.kt]

ℹ️ This test applies to the Jetpack app.

  • Go to My Site tab -> MENU sub-tab.
  • Find the Traffic section in the middle and click on its Stats option.
  • Verify that the Views & Visitors card is shown and functioning as expected.
  • More specifically, click on the Visitors chip (at the bottom of the card) and verify that the UI is updated to show visitors, then switch back by clicking on the Views chip and verify that the UI is updated to show views.
  • Finally, click on the VIEW MORE button (top right) and verify that the Views & Visitors screen is shown and functioning as expected. Click again the on Visitors and Views chips to verify that everything is working as expected.
4. Dialog Snackbar Component [WPDialogSnackbar.java]

ℹ️ This test applies to both, the WordPress and Jetpack apps.

  • Verify that the dialog snackbar is still shown were needed and working as expected.

1.7.0 Update:

1. Activity Type Filter Screen [ActivityLogTypeFilterViewHolder.kt + activity_log_type_filter_item.xml]

ℹ️ This test applies to the Jetpack app.

  • Go to My Site tab -> MENU sub-tab.
  • Find the Manage section in the middle and click on its Activity Log option.
  • Find the Activity Type filter on top and click on it to navigate to the Activity Type Filter screen.
  • Filter by various activity types and verify that the checkbox UI is updated accordingly on both, the light and dark theme.
2. Restore/Download Backup Screen [JetpackCheckboxViewHolder.kt + jetpack_list_checkbox_item.xml]

ℹ️ This test applies to the Jetpack app.

  • Go to My Site tab -> MENU sub-tab.
  • Find the Manage section in the middle and click on its Activity Log option.
  • Find an event and click on it.
  • Click on the RESTORE and DOWNLOAD BACKUP button to navigate to the Restore and Download Backup screen respectively.
  • Filter by various restore items and verify that the checkbox UI is updated accordingly on both, the light and dark theme.
3. Related Posts Settings Dialog [RelatedPostsDialog.java + related_posts_dialog.xml]

ℹ️ This test applies to both, the WordPress and Jetpack apps.

  • Go to My Site tab -> MENU sub-tab.
  • Find the Manage section at the bottom and click on its Site Settings option.
  • Find the Writing section in the middle and click on its Related Posts option.
  • A Related Posts dialog will appear, enable the Show Related Posts option. This will enable
    the Show Header and Show Images checkboxes.
  • Enabled/Disable the Show Header and Show Images checkboxes and verify that the UI is updated
    accordingly on both, the light and dark theme.

Internal Libraries:

1. Post Editing Flow [libs:editor]

️ This test applies to both, the WordPress and Jetpack apps.
❗️ This test makes sure that the Post Editing flow, which comes from the libs:editor
module is also working as expected and that any transitive dependency changes aren't affecting
any Material related components.

  • Add a new blog post.
  • Add as many blocks as possible, along with any combination of those (like the paragraph, heading,
    image, video, separator, quote, gallery, columns, rows blocks).
  • Verify that the Post Editing screen, along with all the blocks you added, are shown and
    that everything is functioning as expected.
  • Publish the post and verify that it is displayed as expected both, on the mobile and web.
2. Image Editing Flow [libs:image-editor]

ℹ️ This test applies to both, the WordPress and Jetpack apps.
❗️ This test makes sure that the Image Editing flow, which comes from the libs:image-editor
module is also working as expected and that any transitive dependency changes aren't affecting
any Material related components.

  • Add a new blog post.
  • Add a new image block.
  • Choose an image and wait for it to be uploaded within the image block.
  • Click on the media options of this image (top right) and then click edit.
  • Verify that the Edit Image screen is shown and functioning as expected.
  • Crop the image and click the done menu option (top right).
  • Make sure the image is updated accordingly.

External Libraries:

1. Login Flow [org.wordpress:login]

ℹ️ This test applies to both, the WordPress and Jetpack apps.
❗️ This test makes sure that the Login flow, which comes from the com.wordpress:login
library is also working as expected and that any transitive dependency changes aren't affecting
any Material related components.

  • Log out of the app (if already logged-in).
  • Verify that the Login screen is shown and functioning as expected.
2. Story Flow [com.automattic:stories]

ℹ️ This test applies to the Jetpack app.
❗️ This test makes sure that the Story flow, which comes from the com.automattic:stories
library is also working as expected and that any transitive dependency changes aren't affecting
any Material related components.

  • Create a new story post.
  • Add a couple of images to that story.
  • Add a some text on top of any image you uploaded.
  • Verify that everything is functioning as expected and that you can publish the story.
  • Publish the story and make sure that the story has been published as expected.
3. About App Screen [com.automattic:about]

ℹ️ This test applies to both, the WordPress and Jetpack apps.
❗️ This test makes sure that the About App screen, which comes from the com.automattic:about
library is also working as expected and that any transitive dependency changes aren't affecting
this Material related components.

  • Go to My Site tab and navigate to the Me screen (click on avatar at top-right).
  • Tap the About App item on the Me screen you are currently at.
  • Verify that the About App screen is shown and functioning as expected.
4. Contact Support Screen [com.zendesk:support]

ℹ️ This test applies to the Jetpack app.
❗️ This test makes sure that the Contact Support screen, which comes from the com.zendesk:support
library is also working as expected and that any transitive dependency changes aren't affecting
this Material related components.

  • Go to My Site tab and navigate to the Me screen (click on avatar at top-right).
  • Tap the Help item on the Me screen you are currently at, and then the Contact Support item within.
  • Verify that the Contact Support Zendesk related screen is shown and functioning as expected.

Other:

1. Snackbar + Snack Accessibility [org.wordpress:utils]

ℹ️ This test applies to the Jetpack app.
❗️ This test makes sure that any and all Snackbar related functionality, especially the
getSnackbarDuration accessibility related one, which is used mainly via snackbar related classes
and SitePickerActivity, which comes from the org.wordpress:utils library is also working as
expected and that any transitive dependency changes aren't affecting this Material related components.

  • Go to My Site tab -> HOME sub-tab.
  • Find the Get to know the app card and click on it.
  • The Get to know the app screen should be shown. Start the flow by clicking on the
    Check your site stats button.
  • Verify that the snackbar is shown and functioning as expected.
  • Try again with accessibility enabled and verify that the snackbar duration is increased.
2. WPTextInputLayout [org.wordpress:utils] 🤔

❓ From the looks of it, this layout is unused both, not only in the WordPress and Jetpack apps, but also in the WordPress-Login-Flow-Android library, which is were it was supposed to be used in anyway (see here). Also, see this issue on a related crash, which is an interesting thread to read, but I still can't figure out what happen to this layout and whether it was removed somehow/somewhere after all. Maybe it is time for us to remove it from the WordPress-Utils-Android library, not sure...


Merge instructions

  • Wait for this other PR to be reviewed, tested and approved.
  • Update this PR with latest trunk and make sure everything is still working as expected.
  • Wait for this Compose/Kotlin PR to be tested and approved.
    • FYI: This is because, as seen by the diff (at this point), Kotlin is being transitively updated to 1.7.10, something to avoid and depend on updating Kotlin explicitly.
  • Update this PR with latest trunk and make sure everything is still working as expected.
  • Remove [PR] Not Ready For Merge] label.
  • Merge PR to trunk.

Regression Notes

  1. Potential unintended areas of impact

    • Potential breakage or misbehaviour of screens and UI components as Material Components is a library that is being used across many, if not all screens, since amongst others it is also driving the styles.xml and the main Base.Wordpress style/theme.
    • Some of the transitive dependencies added might be causing some kind of misbehaviour.
  2. What I did to test those areas of impact (or what existing automated tests I relied on)

    • See To test section.
  3. What automated tests I added (or what prevented me from doing so)

    • N/A

PR submission checklist:

  • I have completed the Regression Notes.
  • I have considered adding accessibility improvements for my changes.
  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

UI Changes testing checklist:

  • Portrait and landscape orientations.
  • Light and dark modes.
  • Fonts: Larger, smaller and bold text.
  • High contrast.
  • Talkback.
  • Languages with large words or with letters/accents not frequently used in English.
  • Right-to-left languages. (Even if translation isn’t complete, formatting should still respect the right-to-left layout)
  • Large and small screen sizes. (Tablet and smaller phones)
  • Multi-tasking: Split screen and Pop-up view. (Android 10 or higher)

ParaskP7 added 12 commits May 12, 2023 15:39
Release Notes: https://github.com/material-components/
material-components-android/releases/tag/1.3.0
Release Notes: https://github.com/material-components/
material-components-android/releases/tag/1.4.0
Release Notes: https://github.com/material-components/
material-components-android/releases/tag/1.5.0
Release Notes: https://github.com/material-components/
material-components-android/releases/tag/1.6.1

------------------------------------------------------------------------

However, this update comes with a lot of breaking changes (see below).
All those are going to be handled in subsequent commits.
- Android resource linking failure on 'm3_sys_typescale_headline_xyz'.
- [ChipsViewHolder] and the deprecated
'setOnCheckedChangeListener(...)'.
- [WPDialogSnackbar] and the restricted 'setLayoutParams(..)' API.
The 'm3_sys_typescale_headline_large_text_size' is no longer available
within the 'values/values.xml' file on this version of the 'Material'
library (see error below). However, the value of this dimension was
pointing to '32sp'. Thus, replacing that with
'text_sz_extra_extra_large' for 'textSize', which points to an
equivalent dimension of '32sp' seems to be the right way to replace this
resource.

------------------------------------------------------------------------
ERROR:/Users/.../build/intermediates/incremental/jetpackWasabiDebug
/mergeJetpackWasabiDebugResources/stripped.dir/layout/
jetpack_powered_bottom_sheet.xml:52: AAPT: error: resource dimen/
m3_sys_typescale_headline_large_text_size
(aka com.jetpack.android.beta:dimen/
m3_sys_typescale_headline_large_text_size) not found.
------------------------------------------------------------------------
The 'm3_sys_typescale_headline_medium_text_size' is no longer available
within the 'values/values.xml' file on this version of the 'Material'
library (see error below). The value of this dimension was pointing to
'28sp'. However, this '28sp' value is not a value that is usually
utilized across the app, that is, via the available 'text_sz_xyz'
dimensions. The closest such value is '24sp' via the
'text_sz_double_extra_large' dimension. As such, replacing that with
'text_sz_double_extra_large' for 'autoSizeMinTextSize', which points to
an the closest possible dimension of '28sp' seems to be the right way to
replace this resource.

------------------------------------------------------------------------
ERROR:/Users/.../build/intermediates/incremental/jetpackWasabiDebug
/mergeJetpackWasabiDebugResources/stripped.dir/layout/
jetpack_feature_removal_overlay.xml:47: AAPT: error: resource dimen/
m3_sys_typescale_headline_medium_text_size
(aka com.jetpack.android.beta:dimen/
m3_sys_typescale_headline_medium_text_size) not found.
------------------------------------------------------------------------
Warning Message: "'setOnCheckedChangeListener
(ChipGroup.OnCheckedChangeListener?): Unit' is deprecated.
Deprecated in Java"

Explanation: "This interface is deprecated.
Use ChipGroup.OnCheckedStateChangeListener instead."

------------------------------------------------------------------------

Replacing 'setOnCheckedChangeListener(...)' with
'setOnCheckedStateChangeListener(...)', and then, iterating over the
'checkedIds', which in this case is always one anyway, is the
recommended way to fix this deprecation warning.

------------------------------------------------------------------------

For more info see:
- ChipGroup.OnCheckedChangeListener (Doc):
https://developer.android.com/reference/com/google/android/material/
chip/ChipGroup.OnCheckedChangeListener
- ChipGroup.OnCheckedStateChangeListener (Doc):
https://developer.android.com/reference/com/google/android/material/
chip/ChipGroup.OnCheckedStateChangeListener
Error Message: "SnackbarBaseLayout.setLayoutParams can only be called
from within the same library group (referenced groupId=com.google
.android.material from groupId=WPAndroid)"

Explanation: "This API has been flagged with a restriction that has not
been met.

Examples of API restrictions:
* Method can only be invoked by a subclass
* Method can only be accessed from within the same library (defined by
the Gradle library group id)
* Method can only be accessed from tests.

You can add your own API restrictions with the @RestrictTo annotation."

------------------------------------------------------------------------

This Lint error is suppressed, that is, instead of being resolved,
since a resolution would require a proper investigation. As such, it
might be best to ignore this as out of scope, for now, and so as to not
introduce any breaking changes with this update overall.
Release Notes: https://github.com/material-components/
material-components-android/releases/tag/1.7.0

------------------------------------------------------------------------

Minimum requirements:
- Android Gradle Plugin (AGP) version 7.2.0
- Gradle version 7.3.3
- Java 8 (version 1.8)
- Android Studio Chipmunk, version 2021.2.1

------------------------------------------------------------------------

However, this update seems to comes with some UI changes, non-breaking
and breaking included (see below). For the breaking UI changes, those
are going to be handled in subsequent commits.
- Non-breaking: New 'Switch' component.
- Non-breaking: New 'Shape' system, used by all components.
- Non-breaking: Redesigned 'BottomAppBar'.
- Non-breaking: New 'Icon Button' support, which includes outlines,
tonal and filled variants.
- Breaking: Redesigned 'Checkbox', which supports indeterminate and
error states.
Replacing the '<com.google.android.material.checkbox.MaterialCheckBox>'
layout element with '<CheckBox>' fixes a breaking change where the
checkbox related UI started misbehaving, that is, in terms of showing
the wrong checkbox colors, on various themes (light/dark) and for
various states (enabled/disable).

For example, while testing on the 'Jetpack' app, using
'MaterialCheckBox' on a layout, which is on dark theme, will shown its
'disabled' state as total black (instead of it having a surrounding
white square), and, its 'enabled' state as total black too (instead of
it being a filled green square with a black tick icon).

------------------------------------------------------------------------

I am not 100% sure why that happens, and I tried various ways to
overcome this UI related breaking change, including using a
'Widget.App.CheckBox' style via the '?attr/buttonTint' and
''?attr/buttonIconTint' (recommended by docs), that is, since inheriting
the core app's theme (aka 'Base.Wordpress') from 'Theme.Material3.*' is
a bigger undertaking anyway.

This however didn't work, and as such, I tried something else, using
the '<CheckBox>' directly, which is supposed to be auto-inflated as
'<com.google.android.material.button.MaterialCheckBox>' via
'MaterialComponentsViewInflater' when using a 'Theme.Material3.*' theme
(see docs).

I understand that the core app's theme (aka 'Base.Wordpress') is not
using the 'Theme.Material3.*' theme, but instead it is using the
'Theme.MaterialComponents.Light.DarkActionBar.Bridge', but this anyway,
somehow worked. Also, the fact that the 'Checkbox' is already being used
as such on various other layouts (like 'media_settings_activity.xml')
gave me the confidence that this is the correct way forward. Another
benefit of this fix is that the changes are also kept to a minimum.

------------------------------------------------------------------------

Explanation: "Checkbox has been redesigned and now supports
indeterminate and error states! Check out the updated documentation."

Doc: https://github.com/material-components/material-components-android/
blob/master/docs/components/Checkbox.md
Release Notes: https://github.com/material-components/
material-components-android/releases/tag/1.8.0

------------------------------------------------------------------------

Notable UI changes, all non-breaking it seems (see below):
- Non-breaking: New 'Side Sheet' component, with included standard,
modal and coplanar variants.
- Non-breaking: New 'Search' component.
- Non-breaking: Integrated tokens for multiple components.
Release Notes: https://github.com/material-components/
material-components-android/releases/tag/1.9.0

------------------------------------------------------------------------

Notable UI changes, all non-breaking it seems (see below):
- Non-breaking: New 'Carousel' component.
- Non-breaking: Improved 'Badge' component.
@wpmobilebot
Copy link
Copy Markdown
Contributor

wpmobilebot commented May 15, 2023

WordPress📲 You can test the changes from this Pull Request in WordPress by scanning the QR code below to install the corresponding build.
App NameWordPress WordPress
FlavorJalapeno
Build TypeDebug
Versionpr18433-137eed8
Commit137eed8
Direct Downloadwordpress-prototype-build-pr18433-137eed8.apk
Note: Google Login is not supported on these builds.

@wpmobilebot
Copy link
Copy Markdown
Contributor

wpmobilebot commented May 15, 2023

Jetpack📲 You can test the changes from this Pull Request in Jetpack by scanning the QR code below to install the corresponding build.
App NameJetpack Jetpack
FlavorJalapeno
Build TypeDebug
Versionpr18433-137eed8
Commit137eed8
Direct Downloadjetpack-prototype-build-pr18433-137eed8.apk
Note: Google Login is not supported on these builds.

After updating the 'Material Component' library to its latest '1.9.0'
version, this ignore configuration is not longer relevant for this
library.

FYI: Actually, this ignore configuration wasn't relevant for this
library for some time now. This is because the 'Material Component'
library was anyway pointing to '1.6.0-alpha01' for some time now, and
that, due to transitive updates.
Base automatically changed from deps/update-androidx-constraintlayout-to-2.1.4 to trunk May 16, 2023 15:57
@ParaskP7
Copy link
Copy Markdown
Contributor Author

ParaskP7 commented May 17, 2023

UI Changes testing checklist:

FYI: As part of this dependency update, and since Material is totally related with UI, I went ahead and tested both apps, Jetpack and WordPress, against as many items on this checklist as I thought fits the purpose of this PR. I have good and bad news:

PS: I didn't test the below UI changes testing checklist items:

  • ...
  • Talkback.
  • ...
  • Large and small screen sizes. (Tablet and smaller phones)
  • Multi-tasking: Split screen and Pop-up view. (Android 10 or higher)

Good news! 🎉

I identified nothing related to this Material dependency update, everything seemed to be working as expected. ✅


Bad news! 🤷

I identified a number of generic issues (of various weight), some known, while others not so much (maybe), still, none is related to this Material dependency update itself, but still, good if we dealt with them, at some point, and as part another task, or set of tasks:

  1. Jetpack: Issue with Hebrew and Indonesian languages. FYI: @RenanLukas is already working on that (see C0180B5PRJ4/p1684312232589679).
  2. Jetpack: Issue with Reader tabs not changing language when the app language is changed (by persisting the login language).
  3. WordPress: Crash when trying to close the Create a new WordPress site with the Jetpack app screen overlay after rotating it.
  4. Jetpack: RTL is not working as expected while creating Stories.
  5. Jetpack: On the Add New Card settings screen within Stats, the All-time and Today's Stats items within the General section, and Followers item within the Activity section are not persisted on save, that is, if you exit and enter Stats again (or by simple rotating the screen, changing the language, or any configuration change for that matter).
  6. Jetpack: Some Jetpack Compose related screen are not rotating to landscape (like the Learn more, Blaze, etc).
  7. Jetpack: When entering the Blaze a Post now screen, if you switch the theme, change the language, or any configuration change for that matter (it seems), the Blaze a Post now screen will exit, navigating the user back to the previous Blaze screen.
  8. Jetpack: When larger fonts in combination with languages with large words make the Blaze a Post now button text on the Blaze screen to be positioned outside of the button's display.

@ParaskP7 ParaskP7 marked this pull request as ready for review May 17, 2023 15:19
@ParaskP7 ParaskP7 marked this pull request as draft May 17, 2023 15:19
Copy link
Copy Markdown
Contributor

@ravishanker ravishanker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@AjeshRPai
Copy link
Copy Markdown
Contributor

Hey @ParaskP7 👋🏼
Thanks for the ping and the detailed commit message.

FYI: @AjeshRPai since you introduced this @dimen/m3_sys_typescale_headline_medium_text_size dimension and assigned it to app:autoSizeMinTextSize via this #17510 [commit], let me know if this fix makes sense to you too. Or, if you would prefer this dimension to remain 28sp and be either hardcoded or extracted to a newly dimen resource. 🤔

AFAIK I had introduced this value with design input from @osullivanchris. I would let @osullivanchris take this call. To let understand @osullivanchris better. @ParaskP7 is updating the material library and the reference to the material text style size is no longer avaiable, closest value is 24sp. So do we need to keep the min text size of the Jetpack powered title in jetpack feature overlay as 28sp or will 24sp do?. Below is a screenshot from the original PR with min text size as 28sp

Screenshot 2023-05-19 at 3 42 37 PM

@osullivanchris
Copy link
Copy Markdown

@AjeshRPai that's ok to me 👍

@ParaskP7
Copy link
Copy Markdown
Contributor Author

Awesome, thanks you both for the confirmation on that, @AjeshRPai and @osullivanchris ! 🙇 ❤️ 🚀

@wpmobilebot
Copy link
Copy Markdown
Contributor

Found 1 violations:

The PR caused the following dependency changes:

 +--- project :libs:image-editor
-|    +--- com.google.android.material:material:1.2.1 -> 1.6.0-alpha01
-|    |    +--- androidx.annotation:annotation:1.2.0 -> 1.6.0 (*)
-|    |    +--- androidx.appcompat:appcompat:1.1.0 -> 1.6.1 (*)
-|    |    +--- androidx.cardview:cardview:1.0.0
-|    |    |    \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
-|    |    +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0
-|    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
-|    |    |    +--- androidx.core:core:1.1.0 -> 1.10.0 (*)
-|    |    |    +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
-|    |    |    \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
-|    |    +--- androidx.constraintlayout:constraintlayout:2.0.1 -> 2.1.4 (*)
-|    |    +--- androidx.core:core:1.5.0 -> 1.10.0 (*)
-|    |    +--- androidx.drawerlayout:drawerlayout:1.1.1 (*)
-|    |    +--- androidx.dynamicanimation:dynamicanimation:1.0.0
-|    |    |    +--- androidx.core:core:1.0.0 -> 1.10.0 (*)
-|    |    |    +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
-|    |    |    \--- androidx.legacy:legacy-support-core-utils:1.0.0
-|    |    |         +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
-|    |    |         +--- androidx.core:core:1.0.0 -> 1.10.0 (*)
-|    |    |         +--- androidx.documentfile:documentfile:1.0.0
-|    |    |         |    \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
-|    |    |         +--- androidx.loader:loader:1.0.0 (*)
-|    |    |         +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
-|    |    |         |    \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
-|    |    |         \--- androidx.print:print:1.0.0
-|    |    |              \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
-|    |    +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.3.0 (*)
-|    |    +--- androidx.fragment:fragment:1.0.0 -> 1.5.7 (*)
-|    |    +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.6.1 (*)
-|    |    +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.0 (*)
-|    |    +--- androidx.transition:transition:1.2.0 -> 1.4.1 (*)
-|    |    +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
-|    |    \--- androidx.viewpager2:viewpager2:1.0.0 (*)
+|    +--- com.google.android.material:material:1.9.0
+|    |    +--- com.google.errorprone:error_prone_annotations:2.15.0
+|    |    +--- androidx.annotation:annotation:1.2.0 -> 1.6.0 (*)
+|    |    +--- androidx.appcompat:appcompat:1.5.0 -> 1.6.1 (*)
+|    |    +--- androidx.cardview:cardview:1.0.0
+|    |    |    \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
+|    |    +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0
+|    |    |    +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*)
+|    |    |    +--- androidx.core:core:1.1.0 -> 1.10.0 (*)
+|    |    |    +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
+|    |    |    \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+|    |    +--- androidx.constraintlayout:constraintlayout:2.0.1 -> 2.1.4 (*)
+|    |    +--- androidx.core:core:1.6.0 -> 1.10.0 (*)
+|    |    +--- androidx.drawerlayout:drawerlayout:1.1.1 (*)
+|    |    +--- androidx.dynamicanimation:dynamicanimation:1.0.0
+|    |    |    +--- androidx.core:core:1.0.0 -> 1.10.0 (*)
+|    |    |    +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+|    |    |    \--- androidx.legacy:legacy-support-core-utils:1.0.0
+|    |    |         +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
+|    |    |         +--- androidx.core:core:1.0.0 -> 1.10.0 (*)
+|    |    |         +--- androidx.documentfile:documentfile:1.0.0
+|    |    |         |    \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
+|    |    |         +--- androidx.loader:loader:1.0.0 (*)
+|    |    |         +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
+|    |    |         |    \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
+|    |    |         \--- androidx.print:print:1.0.0
+|    |    |              \--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*)
+|    |    +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.3.0 (*)
+|    |    +--- androidx.fragment:fragment:1.2.5 -> 1.5.7 (*)
+|    |    +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.6.1 (*)
+|    |    +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.0 (*)
+|    |    +--- androidx.transition:transition:1.2.0 -> 1.4.1 (*)
+|    |    +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
+|    |    \--- androidx.viewpager2:viewpager2:1.0.0 (*)
 |    \--- androidx.navigation:navigation-ui:2.4.2
-|         \--- com.google.android.material:material:1.4.0-beta01 -> 1.6.0-alpha01 (*)
+|         \--- com.google.android.material:material:1.4.0-beta01 -> 1.9.0 (*)
 +--- project :libs:editor
 |    +--- org.wordpress:aztec:{strictly v1.6.3} -> v1.6.3
-|    |    \--- com.google.android.material:material:1.0.0 -> 1.6.0-alpha01 (*)
+|    |    \--- com.google.android.material:material:1.0.0 -> 1.9.0 (*)
 |    +--- org.wordpress.aztec:wordpress-comments:{strictly v1.6.3} -> v1.6.3
-|    |    \--- com.google.android.material:material:1.0.0 -> 1.6.0-alpha01 (*)
+|    |    \--- com.google.android.material:material:1.0.0 -> 1.9.0 (*)
 |    +--- org.wordpress-mobile.gutenberg-mobile:react-native-gutenberg-bridge:v1.95.0
-|    |    +--- com.google.android.material:material:1.2.1 -> 1.6.0-alpha01 (*)
+|    |    +--- com.google.android.material:material:1.2.1 -> 1.9.0 (*)
 |    |    \--- org.wordpress-mobile.react-native-libraries.v1:react-native-screens:2.9.0
-|    |         \--- com.google.android.material:material:1.1.0 -> 1.6.0-alpha01 (*)
+|    |         \--- com.google.android.material:material:1.1.0 -> 1.9.0 (*)
-|    \--- com.google.android.material:material:1.2.1 -> 1.6.0-alpha01 (*)
+|    \--- com.google.android.material:material:1.9.0 (*)
 +--- org.wordpress:utils:{strictly 3.6.1} -> 3.6.1
-|    \--- com.google.android.material:material:1.2.1 -> 1.6.0-alpha01 (*)
+|    \--- com.google.android.material:material:1.2.1 -> 1.9.0 (*)
 +--- org.wordpress:login:1.3.0
-|    \--- com.google.android.material:material:1.2.1 -> 1.6.0-alpha01 (*)
+|    \--- com.google.android.material:material:1.2.1 -> 1.9.0 (*)
 +--- com.automattic:about:1.1.0
-|    +--- com.google.android.material:material:1.4.0 -> 1.6.0-alpha01 (*)
+|    +--- com.google.android.material:material:1.4.0 -> 1.9.0 (*)
 |    \--- com.google.android.material:compose-theme-adapter:1.1.1
-|         \--- com.google.android.material:material:1.6.0-alpha01 (*)
+|         \--- com.google.android.material:material:1.6.0-alpha01 -> 1.9.0 (*)
 +--- com.automattic:stories:2.1.0
-|    +--- com.google.android.material:material:1.2.1 -> 1.6.0-alpha01 (*)
+|    +--- com.google.android.material:material:1.2.1 -> 1.9.0 (*)
 |    \--- com.automattic.stories:photoeditor:2.1.0
-|         \--- com.google.android.material:material:1.2.1 -> 1.6.0-alpha01 (*)
+|         \--- com.google.android.material:material:1.2.1 -> 1.9.0 (*)
-+--- com.google.android.material:material:1.2.1 -> 1.6.0-alpha01 (*)
++--- com.google.android.material:material:1.9.0 (*)
 \--- com.zendesk:support:5.1.1
      +--- com.zendesk:guide:1.0.9
      |    +--- com.zendesk:messaging:5.2.5
      |    |    +--- com.zendesk:common-ui:4.0.5
      |    |    |    +--- com.zendesk.belvedere2:belvedere:3.0.5
-     |    |    |    |    \--- com.google.android.material:material:1.2.0 -> 1.6.0-alpha01 (*)
+     |    |    |    |    \--- com.google.android.material:material:1.2.0 -> 1.9.0 (*)
-     |    |    |    \--- com.google.android.material:material:1.4.0 -> 1.6.0-alpha01 (*)
+     |    |    |    \--- com.google.android.material:material:1.4.0 -> 1.9.0 (*)
-     |    |    \--- com.google.android.material:material:1.4.0 -> 1.6.0-alpha01 (*)
+     |    |    \--- com.google.android.material:material:1.4.0 -> 1.9.0 (*)
-     |    \--- com.google.android.material:material:1.4.0 -> 1.6.0-alpha01 (*)
+     |    \--- com.google.android.material:material:1.4.0 -> 1.9.0 (*)
-     \--- com.google.android.material:material:1.4.0 -> 1.6.0-alpha01 (*)
+     \--- com.google.android.material:material:1.4.0 -> 1.9.0 (*)

Please review and act accordingly

@ParaskP7 ParaskP7 requested review from a team and AjeshRPai May 22, 2023 10:16
@ParaskP7 ParaskP7 marked this pull request as ready for review May 22, 2023 10:16
Copy link
Copy Markdown
Contributor

@AjeshRPai AjeshRPai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @ParaskP7 ,
Sorry for the delay in the review. The smoke testing took more time than expected. Everything works as expected. I have tested all the scenarios explained below.

Tested the following

  1. See the dependency tree diff result and verify correctness - ✅
  2. Thoroughly smoke test both, the WordPress and Jetpack apps, and see if everything is working as expected - ✅
  3. In addition to the above smoke test, I have tested the scenarios you have described in each section.

1.6.1 Update:

  • Jetpack Feature Full Screen Overlay [JetpackFeatureFullScreenOverlayFragment.kt + jetpack_feature_removal_overlay.xml] - ✅
  • Jetpack Powered Bottom Sheet [JetpackPoweredBottomSheetFragment.kt + jetpack_powered_bottom_sheet.xml] - ✅
  • Jetpack Static Poster Screen [ChipsViewHolder.kt] ✅
  • Dialog Snackbar Component [WPDialogSnackbar.java] ✅

1.7.0 Update:

  • Activity Type Filter Screen [ActivityLogTypeFilterViewHolder.kt + activity_log_type_filter_item.xml] - ✅
  • Restore/Download Backup Screen [JetpackCheckboxViewHolder.kt + jetpack_list_checkbox_item.xml] - ✅
  • Related Posts Settings Dialog [RelatedPostsDialog.java + related_posts_dialog.xml] - ✅

Internal Libraries:

  • Post Editing Flow [libs:editor] ✅
  • Image Editing Flow [libs:image-editor] ✅

External Libraries:

  • Login Flow [org.wordpress:login] - ✅
  • Story Flow [com.automattic:stories] - ✅
  • About App Screen [com.automattic:about] - ✅
  • Contact Support Screen [com.zendesk:support] - ✅

Other:

  • Snackbar + Snack Accessibility [org.wordpress:utils] - ✅
  • WPTextInputLayout [org.wordpress:utils]

❓ From the looks of it, this layout is unused both, not only in the WordPress and Jetpack apps, but also in the [WordPress-Login-Flow-Android](https://github.com/wordpress-mobile/WordPress-Login-Flow-Android) library, which is were it was supposed to be used in anyway (see [here](#6776)). Also, see [this issue](#9905) on a related crash, which is an interesting thread to read, but I still can't figure out what happen to this layout and whether it was removed somehow/somewhere after all. Maybe it is time for us to remove it from the [WordPress-Utils-Android](https://github.com/wordpress-mobile/WordPress-Utils-Android) library, not sure...

Yup, am not sure either. I think we can safely remove the WPTextInputLayout. I couldn't find any usages. It looks like WPLoginInputRow is the view that's being used in login screen.

@AjeshRPai AjeshRPai merged commit 9e64481 into trunk May 25, 2023
@AjeshRPai AjeshRPai deleted the deps/update-google-material-to-1.9.0 branch May 25, 2023 10:13
@ParaskP7
Copy link
Copy Markdown
Contributor Author

This is awesome @AjeshRPai , thank you SO MUCH for reviewing, testing and merging this, you are a rockstar! 🪨 + 🌟 x 🙇 ❤️ 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants