woocommerce / woocommerce-android

WooCommerce Android app
https://www.woocommerce.com/mobile
GNU General Public License v2.0
277 stars 135 forks source link

Issue/12918 support account creation UI changes #12935

Closed JorgeMucientes closed 1 day ago

JorgeMucientes commented 6 days ago

Closes: #12918

⚠️ Depends on the FluxC changes here: https://github.com/wordpress-mobile/WordPress-FluxC-Android/pull/3110

Description

Adds the functionality to create a new WP.com account from the app when attempting to connect Jetpack and the user enters a non existing WP.com email in the login step.

Unit tests added in this PR: https://github.com/woocommerce/woocommerce-android/pull/12945

Testing information

  1. In the app, login into a self hosted site (jurassic ninja site will do) without Jetpack plugin connected
  2. Click on Jetpack activation banner
  3. Enter an email that is not a WP.com email
  4. Check the entered email inbox from the mobile device and click the sign up link
  5. Finish the Jetpack installation flow successfully

If you have any doubts check the following screen recording.

The tests that have been performed

Images/gif

https://github.com/user-attachments/assets/e2827d4e-b323-429f-95c7-7fc0d091cfca

Reviewer (or Author, in the case of optional code reviews):

Please make sure these conditions are met before approving the PR, or request changes if the PR needs improvement:

dangermattic commented 6 days ago
1 Warning
:warning: This PR is assigned to the milestone 21.2. This milestone is due in less than 2 days.
Please make sure to get it merged by then or assign it to a milestone with a later deadline.
1 Message
:book:

This PR contains changes to Tracks-related logic. Please ensure (author and reviewer) the following are completed:

  • The tracks events must be validated in the Tracks system.
  • Verify the internal Tracks spreadsheet has also been updated.
  • Please consider registering any new events.
  • The PR must be assigned the category: tracks label.

Generated by :no_entry_sign: Danger

wpmobilebot commented 6 days ago
📲 You can test the changes from this Pull Request in WooCommerce-Wear Android by scanning the QR code below to install the corresponding build.
App Name WooCommerce-Wear Android
Platform⌚️ Wear OS
FlavorJalapeno
Build TypeDebug
Commite425df23af5ec3b9137af38eeca01d7e6f3830bc
Direct Downloadwoocommerce-wear-prototype-build-pr12935-e425df2.apk
wpmobilebot commented 6 days ago

📲 You can test the changes from this Pull Request in WooCommerce Android by scanning the QR code below to install the corresponding build.

App Name WooCommerce Android
Platform📱 Mobile
FlavorJalapeno
Build TypeDebug
Commite425df23af5ec3b9137af38eeca01d7e6f3830bc
Direct Downloadwoocommerce-prototype-build-pr12935-e425df2.apk
codecov-commenter commented 6 days ago

Codecov Report

Attention: Patch coverage is 7.50000% with 37 lines in your changes missing coverage. Please review.

Project coverage is 39.66%. Comparing base (a0e116b) to head (e425df2). Report is 13 commits behind head on trunk.

Files with missing lines Patch % Lines
...pack/wpcom/JetpackActivationWPComEmailViewModel.kt 0.00% 22 Missing :warning:
...pcom/JetpackActivationMagicLinkRequestViewModel.kt 0.00% 14 Missing :warning:
...ocommerce/android/ui/login/WPComLoginRepository.kt 0.00% 1 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## trunk #12935 +/- ## ============================================ - Coverage 39.67% 39.66% -0.02% Complexity 5955 5955 ============================================ Files 1262 1262 Lines 72919 72942 +23 Branches 9973 9977 +4 ============================================ + Hits 28933 28934 +1 - Misses 41415 41437 +22 Partials 2571 2571 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


🚨 Try these New Features:

wpmobilebot commented 3 days ago

Project dependencies changes

The following changes in project dependencies were detected (configuration vanillaReleaseRuntimeClasspath):

list ``` Upgraded Dependencies org.wordpress.fluxc.plugins:woocommerce:trunk-3b731c31d9f8ca9765a1de9ec8d4d064b88ec30a, (changed from trunk-cc17141a0e910d5b808ba6bbfb4b7d393d3517a0) org.wordpress.fluxc:fluxc-annotations:trunk-3b731c31d9f8ca9765a1de9ec8d4d064b88ec30a, (changed from trunk-cc17141a0e910d5b808ba6bbfb4b7d393d3517a0) org.wordpress:fluxc:trunk-3b731c31d9f8ca9765a1de9ec8d4d064b88ec30a, (changed from trunk-cc17141a0e910d5b808ba6bbfb4b7d393d3517a0) ```
tree ```diff -+--- org.wordpress:fluxc:trunk-cc17141a0e910d5b808ba6bbfb4b7d393d3517a0 -| +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.0.21 -| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 (*) -| | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.0.21 -| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 (*) -| +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.6 -| | \--- androidx.annotation:annotation:1.2.0 -> 1.8.0 (*) -| +--- androidx.security:security-crypto:1.0.0 -> 1.1.0-alpha03 -| | +--- androidx.annotation:annotation:1.1.0 -> 1.8.0 (*) -| | +--- com.google.crypto.tink:tink-android:1.5.0 -| | \--- androidx.collection:collection:1.1.0 -> 1.4.0 (*) -| +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.0 -| | +--- com.squareup.okhttp3:okhttp:4.9.0 -> 4.12.0 (*) -| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.9.10 (*) -| +--- com.google.code.gson:gson:2.8.5 -> 2.10.1 -| +--- org.apache.commons:commons-text:1.10.0 (*) -| +--- androidx.room:room-runtime:2.6.1 (*) -| +--- androidx.room:room-ktx:2.6.1 -| | +--- androidx.room:room-common:2.6.1 (*) -| | +--- androidx.room:room-runtime:2.6.1 (*) -| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.21 (*) -| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1 -> 1.8.1 (*) -| | +--- androidx.room:room-common:2.6.1 (c) -| | \--- androidx.room:room-runtime:2.6.1 (c) -| +--- com.google.dagger:dagger:2.51.1 -| | \--- javax.inject:javax.inject:1 -| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*) -| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 (*) -| +--- org.wordpress:wellsql:2.0.0 -| | +--- androidx.annotation:annotation:1.2.0 -> 1.8.0 (*) -| | \--- org.wordpress.wellsql:wellsql-annotations:2.0.0 -| +--- org.wordpress.fluxc:fluxc-annotations:trunk-cc17141a0e910d5b808ba6bbfb4b7d393d3517a0 -| +--- org.greenrobot:eventbus:3.3.1 (*) -| +--- org.greenrobot:eventbus-java:3.3.1 -| +--- com.squareup.okhttp3:okhttp:4.9.0 -> 4.12.0 (*) -| +--- com.android.volley:volley:1.1.1 -> 1.2.0 -| +--- androidx.paging:paging-runtime:2.1.2 -| | +--- androidx.paging:paging-common:2.1.2 -| | | +--- androidx.annotation:annotation:1.0.0 -> 1.8.0 (*) -| | | \--- androidx.arch.core:core-common:2.0.0 -> 2.2.0 (*) -| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.2.0 (*) -| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.7.0 (*) -| | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.7.0 (*) -| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.2 (*) -| +--- com.goterl:lazysodium-android:5.0.2 -| +--- net.java.dev.jna:jna:5.5.0 -| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.0.21 (*) ++--- org.wordpress:fluxc:trunk-3b731c31d9f8ca9765a1de9ec8d4d064b88ec30a +| +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.0.21 +| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 (*) +| | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.0.21 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 (*) +| +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.6 +| | \--- androidx.annotation:annotation:1.2.0 -> 1.8.0 (*) +| +--- androidx.security:security-crypto:1.0.0 -> 1.1.0-alpha03 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.8.0 (*) +| | +--- com.google.crypto.tink:tink-android:1.5.0 +| | \--- androidx.collection:collection:1.1.0 -> 1.4.0 (*) +| +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.0 +| | +--- com.squareup.okhttp3:okhttp:4.9.0 -> 4.12.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.9.10 (*) +| +--- com.google.code.gson:gson:2.8.5 -> 2.10.1 +| +--- org.apache.commons:commons-text:1.10.0 (*) +| +--- androidx.room:room-runtime:2.6.1 (*) +| +--- androidx.room:room-ktx:2.6.1 +| | +--- androidx.room:room-common:2.6.1 (*) +| | +--- androidx.room:room-runtime:2.6.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.0.21 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1 -> 1.8.1 (*) +| | +--- androidx.room:room-common:2.6.1 (c) +| | \--- androidx.room:room-runtime:2.6.1 (c) +| +--- com.google.dagger:dagger:2.51.1 +| | \--- javax.inject:javax.inject:1 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*) +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 (*) +| +--- org.wordpress:wellsql:2.0.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.8.0 (*) +| | \--- org.wordpress.wellsql:wellsql-annotations:2.0.0 +| +--- org.wordpress.fluxc:fluxc-annotations:trunk-3b731c31d9f8ca9765a1de9ec8d4d064b88ec30a +| +--- org.greenrobot:eventbus:3.3.1 (*) +| +--- org.greenrobot:eventbus-java:3.3.1 +| +--- com.squareup.okhttp3:okhttp:4.9.0 -> 4.12.0 (*) +| +--- com.android.volley:volley:1.1.1 -> 1.2.0 +| +--- androidx.paging:paging-runtime:2.1.2 +| | +--- androidx.paging:paging-common:2.1.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.8.0 (*) +| | | \--- androidx.arch.core:core-common:2.0.0 -> 2.2.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.7.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.7.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.2 (*) +| +--- com.goterl:lazysodium-android:5.0.2 +| +--- net.java.dev.jna:jna:5.5.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.0.21 (*) -\--- org.wordpress.fluxc.plugins:woocommerce:trunk-cc17141a0e910d5b808ba6bbfb4b7d393d3517a0 - +--- org.wordpress:fluxc:trunk-cc17141a0e910d5b808ba6bbfb4b7d393d3517a0 (*) - +--- com.google.code.gson:gson:2.8.5 -> 2.10.1 - +--- com.google.dagger:dagger:2.51.1 (*) - +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*) - +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 (*) - +--- androidx.room:room-runtime:2.6.1 (*) - +--- org.wordpress:wellsql:2.0.0 (*) - +--- org.wordpress.fluxc:fluxc-annotations:trunk-cc17141a0e910d5b808ba6bbfb4b7d393d3517a0 - +--- androidx.room:room-ktx:2.6.1 (*) - \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.0.21 (*) +\--- org.wordpress.fluxc.plugins:woocommerce:trunk-3b731c31d9f8ca9765a1de9ec8d4d064b88ec30a + +--- org.wordpress:fluxc:trunk-3b731c31d9f8ca9765a1de9ec8d4d064b88ec30a (*) + +--- com.google.code.gson:gson:2.8.5 -> 2.10.1 + +--- com.google.dagger:dagger:2.51.1 (*) + +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 (*) + +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 (*) + +--- androidx.room:room-runtime:2.6.1 (*) + +--- org.wordpress:wellsql:2.0.0 (*) + +--- org.wordpress.fluxc:fluxc-annotations:trunk-3b731c31d9f8ca9765a1de9ec8d4d064b88ec30a + +--- androidx.room:room-ktx:2.6.1 (*) + \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.0.21 (*) ```