Skip to content

Conversation

@AjeshRPai
Copy link
Contributor

@AjeshRPai AjeshRPai commented Sep 12, 2022

Parent #16062

Internal Project ref - pbArwn-5om-p2

This PR can be used to test and close #16068 as well.

Changes

Expand

1. Updates Android target SDK to 31

This PR changes the target SDK to 31. It would be good to test the entire app to double-check if there are any issues which would be introduced due to the target platform change. Some of the areas which can be impacted by this change would be

  • Screens with Deeplink functionality
    • Login
    • Signup
    • Reset password
    • Jetpack install
  • Media and Permissions
    • Check if the media upload is happening as intended
    • Check if the permissions for media upload/camera are working as expected
  • Notificaitons
    • Check if the Notifications are working as expected

2. Updates play services auth library from 18.1.0 to 20.3.0

While testing on the Android 12 device, I noticed a crash on trying to fill the email address using google autofill manager.

Screenshot_20220916-165334_Google Play services

On further investigation, I found that the intent returned by google API for the login hint dialogue doesn't have the mutability declared. This issue was fixed on the dependency version com.google.android.gms:play-services-auth:20.3.0. Hence updated the dependency to resolve this issue

3. Updates Deeplink intent receiver activity exported attribute to true

According to the Android 12 changes - If your app targets Android 12 or higher and contains activities, services, or broadcast receivers that use intent filters, you must explicitly declare the android:exported attribute for these app components. Reference.

4. Updates all the library versions

In order to make all the libraries compatible with Android 12, compileSdkVersion and targetSdkVersion of the dependant libraries are updated to Api Level 31. Although this won't make any issues as this change wouldn't affect the app( WooCommerce,Wordpress Android) since the targetSdkVersion on the app has a higher priority and the manifest merge wouldn't make any issues, its better to update those libraries to make every library consistent with the apps.

Testing instructions

Expand

Test 1

  • Smoke test the entire app on Android 12 as well as Android 11 devices.

Some of the areas which can be impacted by the change in this PR and libraries PR would be

  • Screens with Deeplink functionality
    • Login
    • Signup
    • Reset password
    • Jetpack install
  • Media and Permissions
    • Check if the media upload is happening as intended
    • Check if the permissions for media upload/camera are working as expected
  • Notificaitons
    • Check if the Notifications are working as expected

Check if the features, works as expected

  • Create, Publish and Drafting a Blog Post
  • Create and Publish a Story post

Test 2 -

This scenario needs special attention as there has been a change in the autofill library dependency

  • Login using google login autofill manager
  • Go to login using login or signup using wpcom button
  • Click on the email address field
  • Select one of the email addresses from the autofill manager
  • Verify that email address text field is filled with the selected email address
  • Enter password and login

Screenshot_20220916-165334_Google Play services

Test 3 Code changes in the dependant libraries

Review Instructions

Expand

Once the changes for the following libraries are done for making them compatible with Android 12. Update the library versions in the Gradle file. Then the review can be taken up.

Update target SDK version of the Libraries to 31

Merge Instructions

Expand

Regression Notes

  1. Potential unintended areas of impact
    Features not working as expected

  2. What I did to test those areas of impact (or what existing automated tests I relied on)
    Manual testing

  3. What automated tests I added (or what prevented me from doing so)

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.

@AjeshRPai AjeshRPai added this to the 20.8 milestone Sep 12, 2022
@AjeshRPai AjeshRPai self-assigned this Sep 12, 2022
@wpmobilebot
Copy link
Contributor

wpmobilebot commented Sep 12, 2022

WordPress📲 You can test these changes on WordPress by downloading wordpress-installable-build-pr17153-6814ccf.apk
💡 Scan this QR code with your Android phone to download and install the APK directly on it.
AppWordPress
Build FlavorJalapeno
Build TypeDebug
Commit6814ccf
Note: This installable build uses the JalapenoDebug build flavor, and does not support Google Login.

@wpmobilebot
Copy link
Contributor

wpmobilebot commented Sep 12, 2022

Jetpack📲 You can test these changes on Jetpack by downloading jetpack-installable-build-pr17153-6814ccf.apk
💡 Scan this QR code with your Android phone to download and install the APK directly on it.
AppJetpack
Build FlavorJalapeno
Build TypeDebug
Commit6814ccf
Note: This installable build uses the JalapenoDebug build flavor, and does not support Google Login.

@AliSoftware AliSoftware modified the milestones: 20.8, 20.9 Sep 19, 2022
@zwarm zwarm self-requested a review September 19, 2022 13:39
@AjeshRPai AjeshRPai marked this pull request as ready for review September 19, 2022 13:41
@zwarm zwarm self-assigned this Sep 19, 2022
@AjeshRPai AjeshRPai requested review from a team and ParaskP7 September 20, 2022 11:06
@ParaskP7 ParaskP7 self-assigned this Sep 21, 2022
Copy link
Contributor

@ParaskP7 ParaskP7 left a comment

Choose a reason for hiding this comment

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

👋 @AjeshRPai and thank you so much for opening this PR, we are so close with Android 12! 🎉 ❤️ 🌟

I have reviewed and quickly smoked tested both apps, WordPress and Jetpack, everything seems to be working as expected, great job! 🥇

Testing Instructions & Regression Notes

However, before approving and merging this PR to trunk, I would recommend adding someone from the quality engineering team to do a thorough smoke testing of the entire app, both apps actually, WordPress and Jetpack, sign-in/up included, just to make sure they give us an extra 👍 that all features are working as expected. Then, we can do another one of those during the beta testing phase. Wdyt?

@AjeshRPai

This comment was marked as outdated.

@ParaskP7
Copy link
Contributor

@ParaskP7 Absolutely, I had pinged @thehenrybyrd in slack for visibility, I am adding @thehenrybyrd to the PR as a reviewer as well. Thanks for this suggestion.

Awesome, thank you for that @AjeshRPai !

PS: In case you would need any additional help from my side, please reach out to me again. I'll be monitoring the progress on this PR anyway, but just in case, please do ping me if you need an extra pair of eyes. 💯

@thehenrybyrd
Copy link
Contributor

@AjeshRPai thanks for thinking about beta testing!
As mentioned in the comment you link, [internal] can be used in the release notes to make sure things like this get into beta testing 😄
In addition, it's helpful to ping the quality team as you've done in Slack 🎉

@AjeshRPai
Copy link
Contributor Author

AjeshRPai commented Sep 22, 2022

@AjeshRPai thanks for thinking about beta testing!
As mentioned in the comment you link, [internal] can be used in the release notes to make sure things like this get into beta testing 😄

I have added a note to the RELEASE-NOTES.txt with this commit d94daa4 👍🏼

In addition, it's helpful to ping the quality team as you've done in Slack 🎉

Will do 👍🏼 , thanks for that suggestion 👍🏼

@AjeshRPai
Copy link
Contributor Author

@zwarm @thehenrybyrd

This PR is ready for review. 👍🏼 . All the libraries are updated to make sure it is compatible with Android 12.

cc; @ParaskP7 @fluiddot for Visibility

@AjeshRPai AjeshRPai requested a review from zwarm October 5, 2022 11:08
@ParaskP7
Copy link
Contributor

ParaskP7 commented Oct 6, 2022

👋 @AjeshRPai !

This PR is ready for review. 👍🏼 . All the libraries are updated to make sure it is compatible with Android 12.

I did take a quick look to verify that all libs are pointing to the correct PR hash, and then I did took a quick look at all the draft PRs that are associated with the PR hashes. Great work both @AjeshRPai and @fluiddot ! 🌟 🌟 🌟

Now, we need to make sure this PR is thoroughly tested so that we could merge it by the end of this week, beginning of next. This will give us, the engineers, some additional time to fix any problems that might arise due to this change. Then, via the 21.0 beta testing period next sprint, to be explicit about the change and make sure the quality team, plus the engineers on this round of testing, are also to test this Android 12 change as much possible.

@fluiddot
Copy link
Contributor

fluiddot commented Oct 7, 2022

Heads up that I updated the Gutenberg Mobile reference (e361082) to fix an issue I identified related to Aztec (more info here).

Copy link
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.

Great work @AjeshRPai 🚀

Tested on the following and seems to work fine

  • WP and JP apps
  • Login, including Google auto-fill
  • Signup
  • Reset password
  • Jetpack install
  • media upload
  • permissions
  • Notificaitons
  • Create, Publish Blog and Story posts

Merge it after dependent PRs merged.

Copy link
Contributor

@zwarm zwarm left a comment

Choose a reason for hiding this comment

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

@AjeshRPai - Looking good!!!

I retested all major features (+ including permission requests)

  • Login
  • Posts/Story/Pages (with and without media)
  • Media (video, pictures)
  • Notifications
  • Reader
  • Site creation
  • Site dashboard tabs
  • Quick start tour

Thanks again for wrangling this and sticking with it through the long haul!!

@startuptester
Copy link
Contributor

startuptester commented Oct 11, 2022

WP in Samsung S20 5G, Android 12:

  • Install
  • Login w/ 2FA
  • Site creation
  • Quick start
  • Story post
    - [ ] Blogging reminders
  • Blog post
  • Post settings, inc tags and categories
  • Preview
  • Scheduled post
  • Notifications
  • Reader
  • Stats
  • Media

The only problem I have encountered is Blogging Reminders. I am not getting the notification after setting it. I have checked my site timezone and notification permissions.

JP in Samsung S20 5G, Android 12:

  • Install
  • Login
  • Site creation
  • Home/ Menu navigation
  • Blogging Prompts
  • Story post
    - [ ] Blogging reminders - set with daily prompt
  • Blog post
  • Post settings
  • Preview
  • Scheduled post
  • Notifications
  • Reader
  • Stats
  • Media
  • Domain purchase flow (backed out of purchase)
  • Account Settings
  • Help and Support - ticket sent to Support
  • Rotation

Same issue with Blogging Reminders
I tested the same on 20.9 beta and see the same problem so I will move that over to the CfT.

@AjeshRPai
Copy link
Contributor Author

AjeshRPai commented Oct 13, 2022

Update

Today, we have started merging the PR of the libraries associated with this PR.

We will soon update the Gutenberg library version once the CI is successful

For visibility: cc @ravishanker @zwarm @startuptester

@AliSoftware Tagging you since you would be doing the code freeze. We intend to make this change shipped before November 1. More details on the Project thread - pbArwn-5om-p2

@AliSoftware
Copy link
Contributor

AliSoftware commented Oct 13, 2022

@AliSoftware Tagging you since you would be doing the code freeze.

Thanks for the ping!

We intend to make this change shipped before November 1. More details on the Project thread - pbArwn-5om-p2

@AjeshRPai I see this PR has a milestone of 21.0, whose code freeze is next Monday, i.e. Oct 17.
The code freeze that will happen on Oct 31 / Nov 1 is the code freeze for 21.1, not 21.0

So just wanted to check, is the date you quoted (which is also the Actual Shipping Date on the Project Thread) the wrong one, or is the PR milestone the one being misleading? 🤔
By "intend this change shipped before Nov 1", do you mean:

  • For it to ship to end users by Nov 1 — meaning that this PR will have to land by Oct 17, to make it into the code freeze for 21.0 we'll do at that date, version which will then go to end users 2 weeks later, on Oct 31?
  • Or for this PR to land in trunk before Nov 1 (should actually be Oct 31), for it to be included in the code freeze for 21.1 we'll do at that date, version which will ship to end users on Nov 14?

[EDIT] I now realize that the Nov 1 deadline is the deadline set by Google… so we won't be able to submit to Google new builds that are not Android 12 past this date…
So I guess the answer is that we need to land this PR before next Monday, Oct 17, so that it makes it to the code freeze for 21.0, and that we'll have Android 12 builds just in time for when we'll submit that 21.0 (with Android 12 support) to Play Store on Fri, Oct 28, and release it on Mon, Oct 31. Right?

So that means the PR's milestone is correct after all, and not only that, it's a hard deadline that we can't afford to miss (i.e. I won't be able to just move this PR to next milestone in case it hasn't yet landed next Monday when I'll do the code freeze for 21.0), right?

@wpmobilebot

This comment was marked as resolved.

@fluiddot
Copy link
Contributor

We will soon update the Gutenberg library version once the CI is successful.

@AjeshRPai The alpha version v1.84.0-alpha1 of Gutenberg Mobile has been created and referenced in this PR via 6814ccf.

In relation to this comment, we could update and check ✅ the following items:

Looks like all libraries are updated and the PR is ready, so from my side, feel free to continue with the merge 🎊 .

@AjeshRPai
Copy link
Contributor Author

AjeshRPai commented Oct 14, 2022

[EDIT] I now realize that the Nov 1 deadline is the deadline set by Google… so we won't be able to submit to Google new builds that are not Android 12 past this date…
So I guess the answer is that we need to land this PR before next Monday, Oct 17, so that it makes it to the code freeze for 21.0, and that we'll have Android 12 builds just in time for when we'll submit that 21.0 (with Android 12 support) to Play Store on Fri, Oct 28, and release it on Mon, Oct 31. Right?

Yup right. @AliSoftware

So that means the PR's milestone is correct after all, and not only that, it's a hard deadline that we can't afford to miss (i.e. I won't be able to just move this PR to next milestone in case it hasn't yet landed next Monday when I'll do the code freeze for 21.0), right?

Yup right again. I should have explained it in the comment itself to avoid confusion. Sorry about that.

@fluiddot

In relation to #17153 (comment), we could update and check ✅ the following items:

👍🏼 . Updated the comments.

@AjeshRPai AjeshRPai merged commit 1468e9f into trunk Oct 14, 2022
@AjeshRPai AjeshRPai deleted the issue/16068-android-12-update-target-sdk branch October 14, 2022 06:17
@AliSoftware
Copy link
Contributor

Thanks for the confirmation @AjeshRPai … and for working on this big migration and landing it in time! 🎉 💪 👏

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Android 12: Security and privacy - Modern SameSite cookies in WebView

9 participants