Skip to content

Update Gravatar to 2.4.0#21808

Merged
AdamGrzybkowski merged 1 commit into
trunkfrom
adam/gravatar_2.4.0
Apr 16, 2025
Merged

Update Gravatar to 2.4.0#21808
AdamGrzybkowski merged 1 commit into
trunkfrom
adam/gravatar_2.4.0

Conversation

@AdamGrzybkowski

@AdamGrzybkowski AdamGrzybkowski commented Apr 16, 2025

Copy link
Copy Markdown
Contributor

This PR bumps the Gravatar SDK to 2.4.0.

Full release notes are here.

The new authenticated profile function was used inside the QuickEditor. This improves the experience in some scenarios, for example, when the profile is marked as private.

This fixes a race condition for new users who open the QuickEditor for the first time. Up until now, we used the public profile endpoint, which would return null for a new user as they would have the Gravatar identity created. Now that we use the authenticated endpoint, the Gravatar backend will first create the identity and then return us a proper profile.

This change was mostly done with Jetpack in mind. It's only a problem when we pass the auth token to be used for Gravatar API calls.

We have also replaced Retrofit directly with OkHttp so there's one dependency less that we bring with the SDK.


To Test:

If you want to change the behavior above, you can follow these steps:

  1. Create a new WP account and verify the email
  2. Go to the Jetpack app and login with that account
  3. Open the QuickEditor
  4. Confirm you could see the profile card on the initial launch

Regression Notes

  1. Potential unintended areas of impact

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

  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.

Testing Checklist (strike-out the not-applying and unnecessary ones):

  • WordPress.com sites and self-hosted Jetpack sites.
  • 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)

@AdamGrzybkowski AdamGrzybkowski added the Gravatar Gravatar integration label Apr 16, 2025
@AdamGrzybkowski AdamGrzybkowski added this to the Future milestone Apr 16, 2025
@sonarqubecloud

Copy link
Copy Markdown

@wpmobilebot

Copy link
Copy Markdown
Contributor

Project dependencies changes

list
- Removed Dependencies
com.squareup.retrofit2:converter-moshi:2.11.0

! Upgraded Dependencies
com.gravatar:gravatar:2.4.0, (changed from 2.3.1)
com.gravatar:gravatar-quickeditor:2.4.0, (changed from 2.3.1)
com.gravatar:gravatar-ui:2.4.0, (changed from 2.3.1)
tree
 +--- project :libs:login
-|    \--- com.gravatar:gravatar:2.3.1
-|         +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.0.21 (*)
-|         +--- com.squareup.retrofit2:retrofit:2.11.0
-|         |    \--- com.squareup.okhttp3:okhttp:3.14.9 -> 4.12.0 (*)
-|         +--- com.squareup.retrofit2:converter-moshi:2.11.0
-|         |    +--- com.squareup.retrofit2:retrofit:2.11.0 (*)
-|         |    \--- com.squareup.moshi:moshi:1.15.1
-|         |         +--- com.squareup.okio:okio:3.7.0 -> 3.9.0 (*)
-|         |         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.9.10 (*)
-|         +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.2 (*)
-|         +--- com.squareup.okhttp3:okhttp:4.12.0 (*)
-|         \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.1.10 (*)
+|    \--- com.gravatar:gravatar:2.4.0
+|         +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.0.21 (*)
+|         +--- com.squareup.moshi:moshi:1.15.1
+|         |    +--- com.squareup.okio:okio:3.7.0 -> 3.9.0 (*)
+|         |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.9.10 (*)
+|         +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.2 (*)
+|         +--- com.squareup.okhttp3:okhttp:4.12.0 (*)
+|         \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.1.10 (*)
-+--- com.gravatar:gravatar:2.3.1 (*)
++--- com.gravatar:gravatar:2.4.0 (*)
-+--- com.gravatar:gravatar-quickeditor:2.3.1
-|    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.0.21 (*)
-|    +--- com.gravatar:gravatar:2.3.1 (*)
-|    +--- com.gravatar:gravatar-ui:2.3.1
-|    |    +--- androidx.core:core-ktx:1.13.1 -> 1.16.0 (*)
-|    |    +--- androidx.appcompat:appcompat:1.7.0 (*)
-|    |    +--- com.google.android.material:material:1.12.0 (*)
-|    |    +--- io.coil-kt:coil-compose:2.7.0
-|    |    |    +--- io.coil-kt:coil-compose-base:2.7.0
-|    |    |    |    +--- androidx.core:core-ktx:1.12.0 -> 1.16.0 (*)
-|    |    |    |    +--- com.google.accompanist:accompanist-drawablepainter:0.32.0 (*)
-|    |    |    |    +--- io.coil-kt:coil-base:2.7.0
-|    |    |    |    |    +--- androidx.annotation:annotation:1.7.1 -> 1.9.1 (*)
-|    |    |    |    |    +--- androidx.appcompat:appcompat-resources:1.6.1 -> 1.7.0 (*)
-|    |    |    |    |    +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*)
-|    |    |    |    |    +--- androidx.core:core-ktx:1.12.0 -> 1.16.0 (*)
-|    |    |    |    |    +--- androidx.exifinterface:exifinterface:1.3.7 -> 1.4.0 (*)
-|    |    |    |    |    +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*)
-|    |    |    |    |    +--- androidx.lifecycle:lifecycle-runtime:2.7.0 -> 2.8.7 (*)
-|    |    |    |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 -> 1.10.2 (*)
-|    |    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.10 (*)
-|    |    |    |    |    +--- com.squareup.okhttp3:okhttp:4.12.0 (*)
-|    |    |    |    |    \--- com.squareup.okio:okio:3.9.0 (*)
-|    |    |    |    +--- androidx.compose.foundation:foundation:1.6.8 -> 1.7.8 (*)
-|    |    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.10 (*)
-|    |    |    +--- io.coil-kt:coil:2.7.0
-|    |    |    |    +--- io.coil-kt:coil-base:2.7.0 (*)
-|    |    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.10 (*)
-|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.10 (*)
-|    |    +--- io.coil-kt:coil-svg:2.7.0
-|    |    |    +--- androidx.core:core-ktx:1.12.0 -> 1.16.0 (*)
-|    |    |    +--- com.caverock:androidsvg-aar:1.4
-|    |    |    +--- io.coil-kt:coil-base:2.7.0 (*)
-|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.10 (*)
-|    |    +--- com.gravatar:gravatar:2.3.1 (*)
-|    |    +--- androidx.compose:compose-bom:2024.02.00 -> 2025.04.00
-|    |    |    +--- androidx.compose.animation:animation:1.7.8 (c)
-|    |    |    +--- androidx.compose.foundation:foundation:1.7.8 (c)
-|    |    |    +--- androidx.compose.foundation:foundation-layout:1.7.8 (c)
-|    |    |    +--- androidx.compose.material:material:1.7.8 (c)
-|    |    |    +--- androidx.compose.material3:material3:1.3.2 (c)
-|    |    |    +--- androidx.compose.material3:material3-android:1.3.2 (c)
-|    |    |    +--- androidx.compose.material3.adaptive:adaptive:1.1.0 (c)
-|    |    |    +--- androidx.compose.runtime:runtime:1.7.8 (c)
-|    |    |    +--- androidx.compose.runtime:runtime-livedata:1.7.8 (c)
-|    |    |    +--- androidx.compose.runtime:runtime-saveable:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-graphics:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-text:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-tooling:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-tooling-preview:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-unit:1.7.8 (c)
-|    |    |    +--- androidx.compose.animation:animation-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.foundation:foundation-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.foundation:foundation-layout-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.material:material-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.animation:animation-core:1.7.8 (c)
-|    |    |    +--- androidx.compose.material:material-icons-core:1.7.8 (c)
-|    |    |    +--- androidx.compose.material:material-ripple:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-util:1.7.8 (c)
-|    |    |    +--- androidx.compose.material3.adaptive:adaptive-android:1.1.0 (c)
-|    |    |    +--- androidx.compose.runtime:runtime-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.runtime:runtime-saveable-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-graphics-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-text-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-tooling-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-tooling-preview-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-unit-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-util-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-geometry:1.7.8 (c)
-|    |    |    +--- androidx.compose.animation:animation-core-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.material:material-icons-core-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.material:material-ripple-android:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-tooling-data:1.7.8 (c)
-|    |    |    +--- androidx.compose.ui:ui-geometry-android:1.7.8 (c)
-|    |    |    \--- androidx.compose.ui:ui-tooling-data-android:1.7.8 (c)
-|    |    +--- androidx.compose.ui:ui -> 1.7.8 (*)
-|    |    +--- androidx.compose.ui:ui-tooling-preview -> 1.7.8 (*)
-|    |    +--- androidx.compose.material3:material3 -> 1.3.2
-|    |    |    \--- androidx.compose.material3:material3-android:1.3.2 (*)
-|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.1.10 (*)
-|    +--- androidx.browser:browser:1.8.0
-|    |    +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*)
-|    |    +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*)
-|    |    +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*)
-|    |    +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*)
-|    |    +--- androidx.core:core:1.1.0 -> 1.16.0 (*)
-|    |    +--- androidx.interpolator:interpolator:1.0.0 (*)
-|    |    \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava
-|    +--- androidx.appcompat:appcompat:1.7.0 (*)
-|    +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.3 -> 2.8.7 (*)
-|    +--- androidx.navigation:navigation-compose:2.8.3 -> 2.8.9 (*)
-|    +--- io.github.osipxd:security-crypto-datastore-preferences:1.1.1-beta03
-|    |    +--- io.github.osipxd:encrypted-datastore-preferences:1.1.1-beta03
-|    |    |    +--- io.github.osipxd:encrypted-datastore-bom:1.1.1-beta03
-|    |    |    |    +--- io.github.osipxd:encrypted-datastore-preferences:1.1.1-beta03 (c)
-|    |    |    |    +--- io.github.osipxd:security-crypto-datastore:1.1.1-beta03 (c)
-|    |    |    |    +--- io.github.osipxd:security-crypto-datastore-preferences:1.1.1-beta03 (c)
-|    |    |    |    +--- androidx.datastore:datastore-preferences:1.1.1 (c)
-|    |    |    |    +--- io.github.osipxd:encrypted-datastore:1.1.1-beta03 (c)
-|    |    |    |    +--- androidx.datastore:datastore-preferences-core:1.1.1 (c)
-|    |    |    |    +--- androidx.datastore:datastore:1.1.1 (c)
-|    |    |    |    \--- androidx.datastore:datastore-core:1.1.1 (c)
-|    |    |    +--- io.github.osipxd:encrypted-datastore:1.1.1-beta03
-|    |    |    |    +--- io.github.osipxd:encrypted-datastore-bom:1.1.1-beta03 (*)
-|    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.1.10 (*)
-|    |    |    |    +--- androidx.datastore:datastore-core:1.1.1
-|    |    |    |    |    \--- androidx.datastore:datastore-core-android:1.1.1
-|    |    |    |    |         +--- androidx.annotation:annotation:1.7.0 -> 1.9.1 (*)
-|    |    |    |    |         +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.22 -> 2.0.21 (*)
-|    |    |    |    |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
-|    |    |    |    |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
-|    |    |    |    |         +--- androidx.datastore:datastore:1.1.1 (c)
-|    |    |    |    |         +--- androidx.datastore:datastore-core-okio:1.1.1 (c)
-|    |    |    |    |         +--- androidx.datastore:datastore-preferences:1.1.1 (c)
-|    |    |    |    |         \--- androidx.datastore:datastore-preferences-core:1.1.1 (c)
-|    |    |    |    \--- com.google.crypto.tink:tink-android:1.13.0 (*)
-|    |    |    +--- androidx.datastore:datastore-preferences-core:1.1.1
-|    |    |    |    \--- androidx.datastore:datastore-preferences-core-jvm:1.1.1
-|    |    |    |         +--- androidx.datastore:datastore-core:1.1.1 (*)
-|    |    |    |         +--- androidx.datastore:datastore-core-okio:1.1.1
-|    |    |    |         |    \--- androidx.datastore:datastore-core-okio-jvm:1.1.1
-|    |    |    |         |         +--- androidx.datastore:datastore-core:1.1.1 (*)
-|    |    |    |         |         +--- com.squareup.okio:okio:3.4.0 -> 3.9.0 (*)
-|    |    |    |         |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
-|    |    |    |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
-|    |    |    |         |         +--- androidx.datastore:datastore:1.1.1 (c)
-|    |    |    |         |         +--- androidx.datastore:datastore-core:1.1.1 (c)
-|    |    |    |         |         +--- androidx.datastore:datastore-preferences:1.1.1 (c)
-|    |    |    |         |         \--- androidx.datastore:datastore-preferences-core:1.1.1 (c)
-|    |    |    |         +--- com.squareup.okio:okio:3.4.0 -> 3.9.0 (*)
-|    |    |    |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
-|    |    |    |         +--- androidx.datastore:datastore:1.1.1 (c)
-|    |    |    |         +--- androidx.datastore:datastore-core:1.1.1 (c)
-|    |    |    |         +--- androidx.datastore:datastore-core-okio:1.1.1 (c)
-|    |    |    |         \--- androidx.datastore:datastore-preferences:1.1.1 (c)
-|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.1.10 (*)
-|    |    +--- io.github.osipxd:encrypted-datastore-bom:1.1.1-beta03 (*)
-|    |    +--- io.github.osipxd:security-crypto-datastore:1.1.1-beta03
-|    |    |    +--- io.github.osipxd:encrypted-datastore:1.1.1-beta03 (*)
-|    |    |    +--- io.github.osipxd:encrypted-datastore-bom:1.1.1-beta03 (*)
-|    |    |    +--- androidx.datastore:datastore:1.1.1
-|    |    |    |    \--- androidx.datastore:datastore-android:1.1.1
-|    |    |    |         +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*)
-|    |    |    |         +--- androidx.datastore:datastore-core:1.1.1 (*)
-|    |    |    |         +--- androidx.datastore:datastore-core-okio:1.1.1 (*)
-|    |    |    |         +--- com.squareup.okio:okio:3.4.0 -> 3.9.0 (*)
-|    |    |    |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
-|    |    |    |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
-|    |    |    |         +--- androidx.datastore:datastore-core:1.1.1 (c)
-|    |    |    |         +--- androidx.datastore:datastore-core-okio:1.1.1 (c)
-|    |    |    |         +--- androidx.datastore:datastore-preferences:1.1.1 (c)
-|    |    |    |         \--- androidx.datastore:datastore-preferences-core:1.1.1 (c)
-|    |    |    +--- androidx.security:security-crypto:1.0.0 (*)
-|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.1.10 (*)
-|    |    +--- androidx.datastore:datastore-preferences:1.1.1
-|    |    |    \--- androidx.datastore:datastore-preferences-android:1.1.1
-|    |    |         +--- androidx.datastore:datastore:1.1.1 (*)
-|    |    |         +--- androidx.datastore:datastore-preferences-core:1.1.1 (*)
-|    |    |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
-|    |    |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
-|    |    |         +--- androidx.datastore:datastore:1.1.1 (c)
-|    |    |         +--- androidx.datastore:datastore-core:1.1.1 (c)
-|    |    |         +--- androidx.datastore:datastore-preferences-core:1.1.1 (c)
-|    |    |         \--- androidx.datastore:datastore-core-okio:1.1.1 (c)
-|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.1.10 (*)
-|    +--- androidx.startup:startup-runtime:1.1.1 (*)
-|    +--- io.coil-kt:coil-compose:2.7.0 (*)
-|    +--- com.squareup.retrofit2:retrofit:2.11.0 (*)
-|    +--- com.squareup.retrofit2:converter-moshi:2.11.0 (*)
-|    +--- com.automattic:ucrop:2.2.11 (*)
-|    +--- androidx.compose:compose-bom:2024.02.00 -> 2025.04.00 (*)
-|    +--- androidx.compose.ui:ui -> 1.7.8 (*)
-|    +--- androidx.compose.ui:ui-tooling-preview -> 1.7.8 (*)
-|    +--- androidx.compose.material3:material3 -> 1.3.2 (*)
-|    +--- androidx.activity:activity-compose:1.9.2 -> 1.10.1 (*)
-|    +--- androidx.compose.material3.adaptive:adaptive:1.0.0 -> 1.1.0
-|    |    \--- androidx.compose.material3.adaptive:adaptive-android:1.1.0
-|    |         +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
-|    |         +--- androidx.annotation:annotation-experimental:1.4.1 (*)
-|    |         +--- androidx.compose.foundation:foundation:1.6.5 -> 1.7.8 (*)
-|    |         +--- androidx.compose.ui:ui-geometry:1.6.5 -> 1.7.8 (*)
-|    |         +--- androidx.window:window:1.3.0 (*)
-|    |         +--- androidx.window:window-core:1.3.0
-|    |         |    \--- androidx.window:window-core-android:1.3.0
-|    |         |         +--- androidx.annotation:annotation:1.7.0 -> 1.9.1 (*)
-|    |         |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
-|    |         |         \--- androidx.window:window:1.3.0 (c)
-|    |         +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.10 (*)
-|    |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (c)
-|    +--- com.composables:core:1.15.0
-|    |    \--- com.composables:core-android:1.15.0
-|    |         +--- androidx.activity:activity:1.9.0 -> 1.10.1 (*)
-|    |         +--- androidx.activity:activity-compose:1.9.0 -> 1.10.1 (*)
-|    |         +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.10 -> 2.1.10 (*)
-|    |         \--- org.jetbrains.compose.foundation:foundation:1.6.11
-|    |              \--- androidx.compose.foundation:foundation:1.6.7 -> 1.7.8 (*)
-|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.1.10 (*)
++--- com.gravatar:gravatar-quickeditor:2.4.0
+|    +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.0.21 (*)
+|    +--- com.gravatar:gravatar:2.4.0 (*)
+|    +--- com.gravatar:gravatar-ui:2.4.0
+|    |    +--- io.coil-kt:coil-compose:2.7.0
+|    |    |    +--- io.coil-kt:coil-compose-base:2.7.0
+|    |    |    |    +--- androidx.core:core-ktx:1.12.0 -> 1.16.0 (*)
+|    |    |    |    +--- com.google.accompanist:accompanist-drawablepainter:0.32.0 (*)
+|    |    |    |    +--- io.coil-kt:coil-base:2.7.0
+|    |    |    |    |    +--- androidx.annotation:annotation:1.7.1 -> 1.9.1 (*)
+|    |    |    |    |    +--- androidx.appcompat:appcompat-resources:1.6.1 -> 1.7.0 (*)
+|    |    |    |    |    +--- androidx.collection:collection:1.4.0 -> 1.4.4 (*)
+|    |    |    |    |    +--- androidx.core:core-ktx:1.12.0 -> 1.16.0 (*)
+|    |    |    |    |    +--- androidx.exifinterface:exifinterface:1.3.7 -> 1.4.0 (*)
+|    |    |    |    |    +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.0 (*)
+|    |    |    |    |    +--- androidx.lifecycle:lifecycle-runtime:2.7.0 -> 2.8.7 (*)
+|    |    |    |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 -> 1.10.2 (*)
+|    |    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.10 (*)
+|    |    |    |    |    +--- com.squareup.okhttp3:okhttp:4.12.0 (*)
+|    |    |    |    |    \--- com.squareup.okio:okio:3.9.0 (*)
+|    |    |    |    +--- androidx.compose.foundation:foundation:1.6.8 -> 1.7.8 (*)
+|    |    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.10 (*)
+|    |    |    +--- io.coil-kt:coil:2.7.0
+|    |    |    |    +--- io.coil-kt:coil-base:2.7.0 (*)
+|    |    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.10 (*)
+|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.10 (*)
+|    |    +--- io.coil-kt:coil-svg:2.7.0
+|    |    |    +--- androidx.core:core-ktx:1.12.0 -> 1.16.0 (*)
+|    |    |    +--- com.caverock:androidsvg-aar:1.4
+|    |    |    +--- io.coil-kt:coil-base:2.7.0 (*)
+|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.10 (*)
+|    |    +--- com.gravatar:gravatar:2.4.0 (*)
+|    |    +--- androidx.compose:compose-bom:2024.02.00 -> 2025.04.00
+|    |    |    +--- androidx.compose.animation:animation:1.7.8 (c)
+|    |    |    +--- androidx.compose.foundation:foundation:1.7.8 (c)
+|    |    |    +--- androidx.compose.foundation:foundation-layout:1.7.8 (c)
+|    |    |    +--- androidx.compose.material:material:1.7.8 (c)
+|    |    |    +--- androidx.compose.material3:material3:1.3.2 (c)
+|    |    |    +--- androidx.compose.material3:material3-android:1.3.2 (c)
+|    |    |    +--- androidx.compose.material3.adaptive:adaptive:1.1.0 (c)
+|    |    |    +--- androidx.compose.runtime:runtime:1.7.8 (c)
+|    |    |    +--- androidx.compose.runtime:runtime-livedata:1.7.8 (c)
+|    |    |    +--- androidx.compose.runtime:runtime-saveable:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-graphics:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-text:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-tooling:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-tooling-preview:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-unit:1.7.8 (c)
+|    |    |    +--- androidx.compose.animation:animation-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.foundation:foundation-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.foundation:foundation-layout-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.material:material-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.animation:animation-core:1.7.8 (c)
+|    |    |    +--- androidx.compose.material:material-icons-core:1.7.8 (c)
+|    |    |    +--- androidx.compose.material:material-ripple:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-util:1.7.8 (c)
+|    |    |    +--- androidx.compose.material3.adaptive:adaptive-android:1.1.0 (c)
+|    |    |    +--- androidx.compose.runtime:runtime-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.runtime:runtime-saveable-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-graphics-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-text-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-tooling-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-tooling-preview-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-unit-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-util-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-geometry:1.7.8 (c)
+|    |    |    +--- androidx.compose.animation:animation-core-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.material:material-icons-core-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.material:material-ripple-android:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-tooling-data:1.7.8 (c)
+|    |    |    +--- androidx.compose.ui:ui-geometry-android:1.7.8 (c)
+|    |    |    \--- androidx.compose.ui:ui-tooling-data-android:1.7.8 (c)
+|    |    +--- androidx.compose.ui:ui -> 1.7.8 (*)
+|    |    +--- androidx.compose.ui:ui-tooling-preview -> 1.7.8 (*)
+|    |    +--- androidx.compose.material3:material3 -> 1.3.2
+|    |    |    \--- androidx.compose.material3:material3-android:1.3.2 (*)
+|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.1.10 (*)
+|    +--- androidx.browser:browser:1.8.0
+|    |    +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*)
+|    |    +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*)
+|    |    +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*)
+|    |    +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*)
+|    |    +--- androidx.core:core:1.1.0 -> 1.16.0 (*)
+|    |    +--- androidx.interpolator:interpolator:1.0.0 (*)
+|    |    \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava
+|    +--- androidx.appcompat:appcompat:1.7.0 (*)
+|    +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.8.3 -> 2.8.7 (*)
+|    +--- androidx.navigation:navigation-compose:2.8.3 -> 2.8.9 (*)
+|    +--- io.github.osipxd:security-crypto-datastore-preferences:1.1.1-beta03
+|    |    +--- io.github.osipxd:encrypted-datastore-preferences:1.1.1-beta03
+|    |    |    +--- io.github.osipxd:encrypted-datastore-bom:1.1.1-beta03
+|    |    |    |    +--- io.github.osipxd:encrypted-datastore-preferences:1.1.1-beta03 (c)
+|    |    |    |    +--- io.github.osipxd:security-crypto-datastore:1.1.1-beta03 (c)
+|    |    |    |    +--- io.github.osipxd:security-crypto-datastore-preferences:1.1.1-beta03 (c)
+|    |    |    |    +--- androidx.datastore:datastore-preferences:1.1.1 (c)
+|    |    |    |    +--- io.github.osipxd:encrypted-datastore:1.1.1-beta03 (c)
+|    |    |    |    +--- androidx.datastore:datastore-preferences-core:1.1.1 (c)
+|    |    |    |    +--- androidx.datastore:datastore:1.1.1 (c)
+|    |    |    |    \--- androidx.datastore:datastore-core:1.1.1 (c)
+|    |    |    +--- io.github.osipxd:encrypted-datastore:1.1.1-beta03
+|    |    |    |    +--- io.github.osipxd:encrypted-datastore-bom:1.1.1-beta03 (*)
+|    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.1.10 (*)
+|    |    |    |    +--- androidx.datastore:datastore-core:1.1.1
+|    |    |    |    |    \--- androidx.datastore:datastore-core-android:1.1.1
+|    |    |    |    |         +--- androidx.annotation:annotation:1.7.0 -> 1.9.1 (*)
+|    |    |    |    |         +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.22 -> 2.0.21 (*)
+|    |    |    |    |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
+|    |    |    |    |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
+|    |    |    |    |         +--- androidx.datastore:datastore:1.1.1 (c)
+|    |    |    |    |         +--- androidx.datastore:datastore-core-okio:1.1.1 (c)
+|    |    |    |    |         +--- androidx.datastore:datastore-preferences:1.1.1 (c)
+|    |    |    |    |         \--- androidx.datastore:datastore-preferences-core:1.1.1 (c)
+|    |    |    |    \--- com.google.crypto.tink:tink-android:1.13.0 (*)
+|    |    |    +--- androidx.datastore:datastore-preferences-core:1.1.1
+|    |    |    |    \--- androidx.datastore:datastore-preferences-core-jvm:1.1.1
+|    |    |    |         +--- androidx.datastore:datastore-core:1.1.1 (*)
+|    |    |    |         +--- androidx.datastore:datastore-core-okio:1.1.1
+|    |    |    |         |    \--- androidx.datastore:datastore-core-okio-jvm:1.1.1
+|    |    |    |         |         +--- androidx.datastore:datastore-core:1.1.1 (*)
+|    |    |    |         |         +--- com.squareup.okio:okio:3.4.0 -> 3.9.0 (*)
+|    |    |    |         |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
+|    |    |    |         |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
+|    |    |    |         |         +--- androidx.datastore:datastore:1.1.1 (c)
+|    |    |    |         |         +--- androidx.datastore:datastore-core:1.1.1 (c)
+|    |    |    |         |         +--- androidx.datastore:datastore-preferences:1.1.1 (c)
+|    |    |    |         |         \--- androidx.datastore:datastore-preferences-core:1.1.1 (c)
+|    |    |    |         +--- com.squareup.okio:okio:3.4.0 -> 3.9.0 (*)
+|    |    |    |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
+|    |    |    |         +--- androidx.datastore:datastore:1.1.1 (c)
+|    |    |    |         +--- androidx.datastore:datastore-core:1.1.1 (c)
+|    |    |    |         +--- androidx.datastore:datastore-core-okio:1.1.1 (c)
+|    |    |    |         \--- androidx.datastore:datastore-preferences:1.1.1 (c)
+|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.1.10 (*)
+|    |    +--- io.github.osipxd:encrypted-datastore-bom:1.1.1-beta03 (*)
+|    |    +--- io.github.osipxd:security-crypto-datastore:1.1.1-beta03
+|    |    |    +--- io.github.osipxd:encrypted-datastore:1.1.1-beta03 (*)
+|    |    |    +--- io.github.osipxd:encrypted-datastore-bom:1.1.1-beta03 (*)
+|    |    |    +--- androidx.datastore:datastore:1.1.1
+|    |    |    |    \--- androidx.datastore:datastore-android:1.1.1
+|    |    |    |         +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*)
+|    |    |    |         +--- androidx.datastore:datastore-core:1.1.1 (*)
+|    |    |    |         +--- androidx.datastore:datastore-core-okio:1.1.1 (*)
+|    |    |    |         +--- com.squareup.okio:okio:3.4.0 -> 3.9.0 (*)
+|    |    |    |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
+|    |    |    |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
+|    |    |    |         +--- androidx.datastore:datastore-core:1.1.1 (c)
+|    |    |    |         +--- androidx.datastore:datastore-core-okio:1.1.1 (c)
+|    |    |    |         +--- androidx.datastore:datastore-preferences:1.1.1 (c)
+|    |    |    |         \--- androidx.datastore:datastore-preferences-core:1.1.1 (c)
+|    |    |    +--- androidx.security:security-crypto:1.0.0 (*)
+|    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.1.10 (*)
+|    |    +--- androidx.datastore:datastore-preferences:1.1.1
+|    |    |    \--- androidx.datastore:datastore-preferences-android:1.1.1
+|    |    |         +--- androidx.datastore:datastore:1.1.1 (*)
+|    |    |         +--- androidx.datastore:datastore-preferences-core:1.1.1 (*)
+|    |    |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
+|    |    |         +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
+|    |    |         +--- androidx.datastore:datastore:1.1.1 (c)
+|    |    |         +--- androidx.datastore:datastore-core:1.1.1 (c)
+|    |    |         +--- androidx.datastore:datastore-preferences-core:1.1.1 (c)
+|    |    |         \--- androidx.datastore:datastore-core-okio:1.1.1 (c)
+|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.1.10 (*)
+|    +--- androidx.startup:startup-runtime:1.1.1 (*)
+|    +--- io.coil-kt:coil-compose:2.7.0 (*)
+|    +--- com.automattic:ucrop:2.2.11 (*)
+|    +--- androidx.compose:compose-bom:2024.02.00 -> 2025.04.00 (*)
+|    +--- androidx.compose.ui:ui -> 1.7.8 (*)
+|    +--- androidx.compose.ui:ui-tooling-preview -> 1.7.8 (*)
+|    +--- androidx.compose.material3:material3 -> 1.3.2 (*)
+|    +--- androidx.activity:activity-compose:1.9.2 -> 1.10.1 (*)
+|    +--- androidx.compose.material3.adaptive:adaptive:1.0.0 -> 1.1.0
+|    |    \--- androidx.compose.material3.adaptive:adaptive-android:1.1.0
+|    |         +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
+|    |         +--- androidx.annotation:annotation-experimental:1.4.1 (*)
+|    |         +--- androidx.compose.foundation:foundation:1.6.5 -> 1.7.8 (*)
+|    |         +--- androidx.compose.ui:ui-geometry:1.6.5 -> 1.7.8 (*)
+|    |         +--- androidx.window:window:1.3.0 (*)
+|    |         +--- androidx.window:window-core:1.3.0
+|    |         |    \--- androidx.window:window-core-android:1.3.0
+|    |         |         +--- androidx.annotation:annotation:1.7.0 -> 1.9.1 (*)
+|    |         |         +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (*)
+|    |         |         \--- androidx.window:window:1.3.0 (c)
+|    |         +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.10 (*)
+|    |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.10 (c)
+|    +--- com.composables:core:1.15.0
+|    |    \--- com.composables:core-android:1.15.0
+|    |         +--- androidx.activity:activity:1.9.0 -> 1.10.1 (*)
+|    |         +--- androidx.activity:activity-compose:1.9.0 -> 1.10.1 (*)
+|    |         +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.10 -> 2.1.10 (*)
+|    |         \--- org.jetbrains.compose.foundation:foundation:1.6.11
+|    |              \--- androidx.compose.foundation:foundation:1.6.7 -> 1.7.8 (*)
+|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.1.10 (*)
-\--- com.squareup.retrofit2:retrofit:2.11.0 (*)
+\--- com.squareup.retrofit2:retrofit:2.11.0
+     \--- com.squareup.okhttp3:okhttp:3.14.9 -> 4.12.0 (*)

@AdamGrzybkowski AdamGrzybkowski requested review from a team and nbradbury and removed request for a team April 16, 2025 09:28
@wpmobilebot

Copy link
Copy Markdown
Contributor
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
Versionpr21808-2594d35
Commit2594d35
Direct Downloadwordpress-prototype-build-pr21808-2594d35.apk
Note: Google Login is not supported on these builds.

@wpmobilebot

Copy link
Copy Markdown
Contributor
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
Versionpr21808-2594d35
Commit2594d35
Direct Downloadjetpack-prototype-build-pr21808-2594d35.apk
Note: Google Login is not supported on these builds.

Comment thread settings.gradle
includeGroupByRegex "org.wordpress.react-native-libraries.*"
includeGroup "com.automattic"
includeGroup "com.automattic.tracks"
includeGroup "com.gravatar"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Gravatar SDK is now hosted on Maven Central, so we no longer need this.

@nbradbury nbradbury self-assigned this Apr 16, 2025
@nbradbury

Copy link
Copy Markdown
Contributor

@AdamGrzybkowski This is unrelated to this PR - I can reproduce it in trunk - but I ran across this bug:

  • Tap to view my avatar
  • Tap "View Profile"
  • Return to the app
  • Tap to view my avatar again

The Gravatar screen now says "Session expired" and tapping the Close button does nothing.

expired.mp4

@nbradbury nbradbury left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good, feel free to merge when ready :shipit:

@AdamGrzybkowski

AdamGrzybkowski commented Apr 16, 2025

Copy link
Copy Markdown
Contributor Author

Thanks for the bug report @nbradbury

Unfortunately, I can't reproduce it 😞 Could you please check if this happens on more than just this account?

The error is shown when we get 401 Unauthorized from the server, but since the Jetpack app shares the token with Gravatar, this shouldn't happen as long as the Jetpack is logged in 🤔

Could you inspect the network request before "View Profile" tap and after and compare?

@nbradbury

Copy link
Copy Markdown
Contributor

@AdamGrzybkowski I believe I found the culprit. I had "Don't keep activities" enabled in developer settings. When I disabled that, it all worked as expected.

But just to be complete, the network requests were fine. The responses before I tapped "Show profile" are above the red line, and the responses when I tapped to view the gravatar again are below it.

network

@AdamGrzybkowski

Copy link
Copy Markdown
Contributor Author

Thanks, I will investigate it.

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

Labels

Gravatar Gravatar integration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants