pocket-casts-android
pocket-casts-android copied to clipboard
Gravatar native Quick Editor
Description
With the new Gravatar SDK release, we can use the native Quick Editor (QE), which allows an easy avatar change without needing the browser (except for the OAuth authorization).
Currently, we are using the web version; this PR is replacing it with the native version included within the Gravatar SDK.
Note: We must add the "official" gravatarAppId in the secrets.
Testing Instructions
To test the OAuth Flow, you need a gravatarAppId in your secret.properties. You can create and configure your test app following this. Let me know if you need help.
- Enable
GRAVATAR_NATIVE_QUICK_EDITORfeature flag under Profile -> Settings -> Beta features - Tap on the Profile tab
- Tap on
Change avatar - Verify Gravatar OAuth flow is opened in the browser
- Complete the OAuth flow
- You should be back on the app, and the QE should show your avatars
- Modify your avatar
- Close the QE and verify the new avatar is already shown in your account
- Tap on
Change avatar - OAuth flow should be presented again
- Modify/upload your avatar
- Close the QE and verify the new avatar is already shown in your account
Sign outfrom PocketCast- Login again with the same account
- Tap on the Profile tab
- Tap on
Change avatar - OAuth flow should be presented again
- Return to PocketCast
- Disable
GRAVATAR_NATIVE_QUICK_EDITORfeature flag under Profile -> Settings -> Beta features - Tap on the Profile tab
- Tap on
Change avatar - Browser with the web QE should be opened (previous behavior)
Screenshots or Screencast
Checklist
- [x] If this is a user-facing change, I have added an entry in CHANGELOG.md
- [x] Ensure the linter passes (
./gradlew spotlessApplyto automatically apply formatting/linting) - [x] I have considered whether it makes sense to add tests for my changes
- [x] All strings that need to be localized are in
modules/services/localization/src/main/res/values/strings.xml - [ ] Any jetpack compose components I added or changed are covered by compose previews
- [ ] I have updated (or requested that someone edit) the spreadsheet to reflect any new or changed analytics.
I have tested any UI changes...
- [ ] with different themes
- [ ] with a landscape orientation
- [ ] with the device set to have a large display and font size
- [ ] for accessibility with TalkBack
📲 You can test the changes from this Pull Request in 📱 Mobile by scanning the QR code below to install the corresponding build.
| App Name | 📱 Mobile | |
| Build Type | debugProd | |
| Commit | ea0c2f9f953885892ee6a7fc3f3e6ffb1baf2c4e | |
| Direct Download | pocketcasts-app-prototype-build-pr3055-ea0c2f9.apk |
📲 You can test the changes from this Pull Request in 🚗 Automotive by scanning the QR code below to install the corresponding build.
| App Name | 🚗 Automotive | |
| Build Type | debugProd | |
| Commit | ea0c2f9f953885892ee6a7fc3f3e6ffb1baf2c4e | |
| Direct Download | pocketcasts-automotive-prototype-build-pr3055-ea0c2f9.apk |
📲 You can test the changes from this Pull Request in ⌚ Wear by scanning the QR code below to install the corresponding build.
| App Name | ⌚ Wear | |
| Build Type | debugProd | |
| Commit | ea0c2f9f953885892ee6a7fc3f3e6ffb1baf2c4e | |
| Direct Download | pocketcasts-wear-prototype-build-pr3055-ea0c2f9.apk |
Project dependencies changes
The following changes in project dependencies were detected (configuration releaseRuntimeClasspath):
list
New Dependencies
androidx.browser:browser:1.8.0
androidx.compose.material3.adaptive:adaptive:1.0.0
androidx.compose.material3.adaptive:adaptive-android:1.0.0
androidx.security:security-crypto:1.0.0
androidx.window.extensions.core:core:1.0.0
androidx.window:window-core:1.3.0
androidx.window:window-core-android:1.3.0
com.automattic:ucrop:2.2.10
com.caverock:androidsvg-aar:1.4
com.composables:core:1.15.0
com.composables:core-android:1.15.0
com.google.code.gson:gson:2.10.1
com.google.crypto.tink:tink-android:1.13.0
com.gravatar:gravatar:2.2.0
com.gravatar:gravatar-quickeditor:2.2.0
com.gravatar:gravatar-ui:2.2.0
io.coil-kt:coil-svg:2.7.0
io.github.osipxd:encrypted-datastore:1.1.1-beta03
io.github.osipxd:encrypted-datastore-bom:1.1.1-beta03
io.github.osipxd:encrypted-datastore-preferences:1.1.1-beta03
io.github.osipxd:security-crypto-datastore:1.1.1-beta03
io.github.osipxd:security-crypto-datastore-preferences:1.1.1-beta03
Upgraded Dependencies
androidx.navigation:navigation-common:2.8.3, (changed from 2.7.7)
androidx.navigation:navigation-common-ktx:2.8.3, (changed from 2.7.7)
androidx.navigation:navigation-compose:2.8.3, (changed from 2.7.7)
androidx.navigation:navigation-fragment:2.8.3, (changed from 2.7.7)
androidx.navigation:navigation-fragment-ktx:2.8.3, (changed from 2.7.7)
androidx.navigation:navigation-runtime:2.8.3, (changed from 2.7.7)
androidx.navigation:navigation-runtime-ktx:2.8.3, (changed from 2.7.7)
androidx.navigation:navigation-ui:2.8.3, (changed from 2.7.7)
androidx.navigation:navigation-ui-ktx:2.8.3, (changed from 2.7.7)
androidx.transition:transition:1.5.0, (changed from 1.4.1)
androidx.window:window:1.3.0, (changed from 1.0.0)
com.google.android.material:material:1.12.0, (changed from 1.11.0)
tree
++--- androidx.compose:compose-bom:2024.10.00
+| +--- androidx.compose.material3.adaptive:adaptive:1.0.0 (c)
+| \--- androidx.compose.material3.adaptive:adaptive-android:1.0.0 (c)
+--- com.automattic:encryptedlogging:0.0.1
| \--- org.wordpress:utils:3.14.0
-| \--- com.google.android.material:material:1.2.1 -> 1.11.0
-| +--- org.jetbrains.kotlin:kotlin-bom:1.8.22
-| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (c)
-| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 2.1.0 (c)
-| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.1.0 (c)
-| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.1.0 (c)
-| +--- com.google.errorprone:error_prone_annotations:2.15.0 -> 2.28.0
-| +--- androidx.activity:activity:1.8.0 -> 1.9.3 (*)
-| +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*)
-| +--- androidx.appcompat:appcompat:1.6.1 -> 1.7.0 (*)
-| +--- androidx.cardview:cardview:1.0.0
-| | \--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
-| +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0
-| | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
-| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
-| | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
-| | \--- androidx.collection:collection:1.0.0 -> 1.4.4 (*)
-| +--- androidx.constraintlayout:constraintlayout:2.0.1 -> 2.1.4
-| | +--- androidx.appcompat:appcompat:1.2.0 -> 1.7.0 (*)
-| | +--- androidx.core:core:1.3.2 -> 1.13.1 (*)
-| | \--- androidx.constraintlayout:constraintlayout-core:1.0.4
-| +--- androidx.core:core:1.6.0 -> 1.13.1 (*)
-| +--- androidx.drawerlayout:drawerlayout:1.1.1 (*)
-| +--- androidx.dynamicanimation:dynamicanimation:1.0.0
-| | +--- androidx.core:core:1.0.0 -> 1.13.1 (*)
-| | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*)
-| | \--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
-| +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.1 (*)
-| +--- androidx.fragment:fragment:1.2.5 -> 1.8.5 (*)
-| +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.8.7 (*)
-| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.2 (*)
-| +--- androidx.resourceinspection:resourceinspection-annotation:1.0.1 (*)
-| +--- androidx.transition:transition:1.2.0 -> 1.4.1
-| | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
-| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
-| | \--- androidx.collection:collection:1.1.0 -> 1.4.4 (*)
-| +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
-| \--- androidx.viewpager2:viewpager2:1.0.0 -> 1.1.0
-| +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
-| +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*)
-| +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*)
-| +--- androidx.core:core:1.3.2 -> 1.13.1 (*)
-| +--- androidx.fragment:fragment:1.1.0 -> 1.8.5 (*)
-| \--- androidx.recyclerview:recyclerview:1.3.1 -> 1.3.2 (*)
+| \--- com.google.android.material:material:1.2.1 -> 1.12.0
+| +--- org.jetbrains.kotlin:kotlin-bom:1.8.22
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (c)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 2.1.0 (c)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 -> 2.1.0 (c)
+| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.1.0 (c)
+| +--- com.google.errorprone:error_prone_annotations:2.15.0 -> 2.28.0
+| +--- androidx.activity:activity:1.8.0 -> 1.9.3 (*)
+| +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*)
+| +--- androidx.appcompat:appcompat:1.6.1 -> 1.7.0 (*)
+| +--- androidx.cardview:cardview:1.0.0
+| | \--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
+| +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
+| | +--- androidx.core:core:1.1.0 -> 1.13.1 (*)
+| | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
+| | \--- androidx.collection:collection:1.0.0 -> 1.4.4 (*)
+| +--- androidx.constraintlayout:constraintlayout:2.0.1 -> 2.1.4
+| | +--- androidx.appcompat:appcompat:1.2.0 -> 1.7.0 (*)
+| | +--- androidx.core:core:1.3.2 -> 1.13.1 (*)
+| | \--- androidx.constraintlayout:constraintlayout-core:1.0.4
+| +--- androidx.core:core:1.6.0 -> 1.13.1 (*)
+| +--- androidx.drawerlayout:drawerlayout:1.1.1 (*)
+| +--- androidx.dynamicanimation:dynamicanimation:1.0.0
+| | +--- androidx.core:core:1.0.0 -> 1.13.1 (*)
+| | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*)
+| | \--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
+| +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.4.1 (*)
+| +--- androidx.fragment:fragment:1.2.5 -> 1.8.5 (*)
+| +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.8.7 (*)
+| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.2 (*)
+| +--- androidx.resourceinspection:resourceinspection-annotation:1.0.1 (*)
+| +--- androidx.transition:transition:1.5.0
+| | +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*)
+| | +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*)
+| | +--- androidx.core:core:1.13.0 -> 1.13.1 (*)
+| | \--- androidx.dynamicanimation:dynamicanimation:1.0.0 (*)
+| +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
+| \--- androidx.viewpager2:viewpager2:1.0.0 -> 1.1.0
+| +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
+| +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*)
+| +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*)
+| +--- androidx.core:core:1.3.2 -> 1.13.1 (*)
+| +--- androidx.fragment:fragment:1.1.0 -> 1.8.5 (*)
+| \--- androidx.recyclerview:recyclerview:1.3.1 -> 1.3.2 (*)
-+--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
++--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
+--- project :modules:features:account
-| +--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| +--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
-| +--- androidx.navigation:navigation-runtime:2.7.7
-| | +--- androidx.activity:activity-ktx:1.7.1 -> 1.9.3 (*)
-| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.4.1 (*)
-| | +--- androidx.collection:collection:1.0.0 -> 1.4.4 (*)
-| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 -> 2.8.7 (*)
-| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 -> 2.8.7 (*)
-| | +--- androidx.navigation:navigation-common:2.7.7
-| | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
-| | | +--- androidx.collection:collection-ktx:1.1.0 -> 1.4.4 (*)
-| | | +--- androidx.core:core-ktx:1.1.0 -> 1.13.1 (*)
-| | | +--- androidx.lifecycle:lifecycle-common:2.6.2 -> 2.8.7 (*)
-| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 -> 2.8.7 (*)
-| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 -> 2.8.7 (*)
-| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 -> 2.8.7 (*)
-| | | +--- androidx.profileinstaller:profileinstaller:1.3.0 -> 1.3.1 (*)
-| | | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*)
-| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
-| | | +--- androidx.navigation:navigation-compose:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-fragment:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-fragment-ktx:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-runtime:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-runtime-ktx:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-ui:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-ui-ktx:2.7.7 (c)
-| | | \--- androidx.navigation:navigation-common-ktx:2.7.7 (c)
-| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
-| | +--- androidx.navigation:navigation-common:2.7.7 (c)
-| | +--- androidx.navigation:navigation-compose:2.7.7 (c)
-| | +--- androidx.navigation:navigation-fragment-ktx:2.7.7 (c)
-| | +--- androidx.navigation:navigation-ui-ktx:2.7.7 (c)
-| | +--- androidx.navigation:navigation-runtime-ktx:2.7.7 (c)
-| | +--- androidx.navigation:navigation-fragment:2.7.7 (c)
-| | +--- androidx.navigation:navigation-ui:2.7.7 (c)
-| | \--- androidx.navigation:navigation-common-ktx:2.7.7 (c)
+| +--- androidx.navigation:navigation-runtime:2.7.7 -> 2.8.3
+| | +--- androidx.activity:activity-ktx:1.7.1 -> 1.9.3 (*)
+| | +--- androidx.annotation:annotation-experimental:1.4.1 (*)
+| | +--- androidx.collection:collection:1.4.2 -> 1.4.4 (*)
+| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 -> 2.8.7 (*)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 -> 2.8.7 (*)
+| | +--- androidx.navigation:navigation-common:2.8.3
+| | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
+| | | +--- androidx.collection:collection-ktx:1.4.2 -> 1.4.4 (*)
+| | | +--- androidx.core:core-ktx:1.1.0 -> 1.13.1 (*)
+| | | +--- androidx.lifecycle:lifecycle-common:2.6.2 -> 2.8.7 (*)
+| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.2 -> 2.8.7 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2 -> 2.8.7 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2 -> 2.8.7 (*)
+| | | +--- androidx.profileinstaller:profileinstaller:1.3.1 (*)
+| | | +--- androidx.savedstate:savedstate-ktx:1.2.1 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.7.1
+| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.1
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.0 (*)
+| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.1
+| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.1 (c)
+| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.7.1 (c)
+| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1 (c)
+| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.1 (c)
+| | | +--- androidx.navigation:navigation-common-ktx:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-compose:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-fragment:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-fragment-ktx:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-runtime:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-runtime-ktx:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-ui:2.8.3 (c)
+| | | \--- androidx.navigation:navigation-ui-ktx:2.8.3 (c)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.7.1 (*)
+| | +--- androidx.navigation:navigation-common:2.8.3 (c)
+| | +--- androidx.navigation:navigation-common-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-compose:2.8.3 (c)
+| | +--- androidx.navigation:navigation-fragment:2.8.3 (c)
+| | +--- androidx.navigation:navigation-fragment-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-runtime-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-ui-ktx:2.8.3 (c)
+| | \--- androidx.navigation:navigation-ui:2.8.3 (c)
| +--- com.airbnb.android:showkase:1.0.3
-| | \--- androidx.navigation:navigation-compose:2.5.1 -> 2.7.7
-| | +--- androidx.activity:activity-compose:1.7.0 -> 1.9.3 (*)
-| | +--- androidx.compose.animation:animation:1.5.1 -> 1.7.4 (*)
-| | +--- androidx.compose.foundation:foundation-layout:1.5.1 -> 1.7.4 (*)
-| | +--- androidx.compose.runtime:runtime:1.5.1 -> 1.7.4 (*)
-| | +--- androidx.compose.runtime:runtime-saveable:1.5.1 -> 1.7.4 (*)
-| | +--- androidx.compose.ui:ui:1.5.1 -> 1.7.4 (*)
-| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2 -> 2.8.7
-| | | \--- androidx.lifecycle:lifecycle-viewmodel-compose-android:2.8.7
-| | | +--- androidx.annotation:annotation:1.8.0 -> 1.9.1 (*)
-| | | +--- androidx.compose.runtime:runtime:1.6.0 -> 1.7.4 (*)
-| | | +--- androidx.compose.ui:ui:1.6.0 -> 1.7.4 (*)
-| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (*)
-| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (*)
-| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (*)
-| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
-| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-process:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-reactivestreams:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-reactivestreams-ktx:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
-| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
-| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
-| | +--- androidx.navigation:navigation-runtime-ktx:2.7.7
-| | | +--- androidx.navigation:navigation-common-ktx:2.7.7
-| | | | +--- androidx.navigation:navigation-common:2.7.7 (*)
-| | | | +--- androidx.navigation:navigation-common:2.7.7 (c)
-| | | | +--- androidx.navigation:navigation-compose:2.7.7 (c)
-| | | | +--- androidx.navigation:navigation-fragment:2.7.7 (c)
-| | | | +--- androidx.navigation:navigation-fragment-ktx:2.7.7 (c)
-| | | | +--- androidx.navigation:navigation-runtime:2.7.7 (c)
-| | | | +--- androidx.navigation:navigation-runtime-ktx:2.7.7 (c)
-| | | | +--- androidx.navigation:navigation-ui:2.7.7 (c)
-| | | | \--- androidx.navigation:navigation-ui-ktx:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-runtime:2.7.7 (*)
-| | | +--- androidx.navigation:navigation-common:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-common-ktx:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-compose:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-fragment:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-fragment-ktx:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-runtime:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-ui:2.7.7 (c)
-| | | \--- androidx.navigation:navigation-ui-ktx:2.7.7 (c)
-| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
-| | +--- androidx.navigation:navigation-common:2.7.7 (c)
-| | +--- androidx.navigation:navigation-fragment-ktx:2.7.7 (c)
-| | +--- androidx.navigation:navigation-runtime:2.7.7 (c)
-| | +--- androidx.navigation:navigation-runtime-ktx:2.7.7 (c)
-| | +--- androidx.navigation:navigation-ui-ktx:2.7.7 (c)
-| | +--- androidx.navigation:navigation-fragment:2.7.7 (c)
-| | +--- androidx.navigation:navigation-ui:2.7.7 (c)
-| | \--- androidx.navigation:navigation-common-ktx:2.7.7 (c)
+| | \--- androidx.navigation:navigation-compose:2.5.1 -> 2.8.3
+| | +--- androidx.activity:activity-compose:1.8.0 -> 1.9.3 (*)
+| | +--- androidx.compose.animation:animation:1.7.2 -> 1.7.4 (*)
+| | +--- androidx.compose.foundation:foundation-layout:1.7.2 -> 1.7.4 (*)
+| | +--- androidx.compose.runtime:runtime:1.7.2 -> 1.7.4 (*)
+| | +--- androidx.compose.runtime:runtime-saveable:1.7.2 -> 1.7.4 (*)
+| | +--- androidx.compose.ui:ui:1.7.2 -> 1.7.4 (*)
+| | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2 -> 2.8.7
+| | | \--- androidx.lifecycle:lifecycle-viewmodel-compose-android:2.8.7
+| | | +--- androidx.annotation:annotation:1.8.0 -> 1.9.1 (*)
+| | | +--- androidx.compose.runtime:runtime:1.6.0 -> 1.7.4 (*)
+| | | +--- androidx.compose.ui:ui:1.6.0 -> 1.7.4 (*)
+| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-common:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-common-java8:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-process:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-reactivestreams:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-reactivestreams-ktx:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-runtime:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-service:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.8.7 (c)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7 (c)
+| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7 (c)
+| | +--- androidx.navigation:navigation-runtime-ktx:2.8.3
+| | | +--- androidx.navigation:navigation-common-ktx:2.8.3
+| | | | +--- androidx.navigation:navigation-common:2.8.3 (*)
+| | | | +--- androidx.navigation:navigation-common:2.8.3 (c)
+| | | | +--- androidx.navigation:navigation-compose:2.8.3 (c)
+| | | | +--- androidx.navigation:navigation-fragment:2.8.3 (c)
+| | | | +--- androidx.navigation:navigation-fragment-ktx:2.8.3 (c)
+| | | | +--- androidx.navigation:navigation-runtime:2.8.3 (c)
+| | | | +--- androidx.navigation:navigation-runtime-ktx:2.8.3 (c)
+| | | | +--- androidx.navigation:navigation-ui:2.8.3 (c)
+| | | | \--- androidx.navigation:navigation-ui-ktx:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-runtime:2.8.3 (*)
+| | | +--- androidx.navigation:navigation-common-ktx:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-compose:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-fragment-ktx:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-runtime:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-ui-ktx:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-fragment:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-common:2.8.3 (c)
+| | | \--- androidx.navigation:navigation-ui:2.8.3 (c)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.7.1 (*)
+| | +--- androidx.navigation:navigation-fragment-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-runtime:2.8.3 (c)
+| | +--- androidx.navigation:navigation-runtime-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-ui-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-common-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-fragment:2.8.3 (c)
+| | +--- androidx.navigation:navigation-common:2.8.3 (c)
+| | \--- androidx.navigation:navigation-ui:2.8.3 (c)
| +--- project :modules:features:search
| | +--- project :modules:services:analytics
| | | +--- project :modules:services:model
| | | | \--- project :modules:services:utils
-| | | | \--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| | | | \--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
| | | \--- project :modules:services:preferences
| | | +--- androidx.preference:preference-ktx:1.2.1
| | | | \--- androidx.preference:preference:1.2.1
| | | | \--- androidx.slidingpanelayout:slidingpanelayout:1.2.0
-| | | | +--- androidx.window:window:1.0.0
-| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.0 -> 2.1.0 (*)
-| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2 -> 1.9.0 (*)
-| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*)
-| | | | | +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*)
-| | | | | \--- androidx.core:core:1.3.2 -> 1.13.1 (*)
+| | | | +--- androidx.window:window:1.0.0 -> 1.3.0
+| | | | | +--- androidx.annotation:annotation:1.3.0 -> 1.9.1 (*)
+| | | | | +--- androidx.collection:collection:1.1.0 -> 1.4.4 (*)
+| | | | | +--- androidx.core:core:1.8.0 -> 1.13.1 (*)
+| | | | | +--- androidx.window.extensions.core:core:1.0.0
+| | | | | | +--- androidx.annotation:annotation:1.6.0 -> 1.9.1 (*)
+| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.20 -> 2.1.0 (*)
+| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.9.0 (*)
+| | | | | \--- androidx.window:window-core:1.3.0 (c)
-| | | | \--- androidx.transition:transition:1.4.1 (*)
+| | | | \--- androidx.transition:transition:1.4.1 -> 1.5.0 (*)
| | | \--- project :modules:services:images
-| | | \--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| | | \--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
| | +--- project :modules:services:repositories
-| | | \--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| | | \--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
| | +--- project :modules:services:ui
-| | | \--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| | | \--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
| | \--- project :modules:services:views
-| | +--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| | +--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
-| | \--- androidx.navigation:navigation-runtime:2.7.7 (*)
+| | \--- androidx.navigation:navigation-runtime:2.7.7 -> 2.8.3 (*)
| +--- project :modules:features:settings
-| | +--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| | +--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
| | +--- com.mikepenz:aboutlibraries-compose:11.2.3
| | | \--- com.mikepenz:aboutlibraries-compose-android:11.2.3
| | | \--- com.mikepenz:aboutlibraries-core:11.2.3
| | | \--- com.mikepenz:aboutlibraries-core-android:11.2.3
| | | \--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1
| | | \--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.7.1
-| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.1
-| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.7.1 (c)
-| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1 (c)
-| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.1 (c)
-| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.1 (c)
+| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.1 (*)
-| | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.1
-| | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.1
-| | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.0 (*)
-| | | \--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.1 (*)
+| | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.1 (*)
| | \--- androidx.hilt:hilt-navigation-compose:1.2.0
| | +--- androidx.hilt:hilt-navigation:1.2.0
-| | | \--- androidx.navigation:navigation-runtime:2.5.1 -> 2.7.7 (*)
+| | | \--- androidx.navigation:navigation-runtime:2.5.1 -> 2.8.3 (*)
-| | \--- androidx.navigation:navigation-compose:2.5.1 -> 2.7.7 (*)
+| | \--- androidx.navigation:navigation-compose:2.5.1 -> 2.8.3 (*)
-| +--- androidx.navigation:navigation-compose:2.7.7 (*)
+| +--- androidx.navigation:navigation-compose:2.7.7 -> 2.8.3 (*)
-| +--- androidx.navigation:navigation-fragment-ktx:2.7.7
-| | +--- androidx.navigation:navigation-fragment:2.7.7
-| | | +--- androidx.fragment:fragment-ktx:1.6.2 -> 1.8.5 (*)
-| | | +--- androidx.navigation:navigation-runtime:2.7.7 (*)
-| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.2.0 (*)
-| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
-| | | +--- androidx.navigation:navigation-common:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-common-ktx:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-compose:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-fragment-ktx:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-runtime:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-runtime-ktx:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-ui:2.7.7 (c)
-| | | \--- androidx.navigation:navigation-ui-ktx:2.7.7 (c)
-| | +--- androidx.navigation:navigation-runtime-ktx:2.7.7 (*)
-| | +--- androidx.navigation:navigation-common:2.7.7 (c)
-| | +--- androidx.navigation:navigation-compose:2.7.7 (c)
-| | +--- androidx.navigation:navigation-fragment:2.7.7 (c)
-| | +--- androidx.navigation:navigation-runtime:2.7.7 (c)
-| | +--- androidx.navigation:navigation-runtime-ktx:2.7.7 (c)
-| | +--- androidx.navigation:navigation-ui-ktx:2.7.7 (c)
-| | +--- androidx.navigation:navigation-ui:2.7.7 (c)
-| | \--- androidx.navigation:navigation-common-ktx:2.7.7 (c)
+| +--- androidx.navigation:navigation-fragment-ktx:2.7.7 -> 2.8.3
+| | +--- androidx.navigation:navigation-fragment:2.8.3
+| | | +--- androidx.fragment:fragment-ktx:1.6.2 -> 1.8.5 (*)
+| | | +--- androidx.navigation:navigation-runtime:2.8.3 (*)
+| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.2.0 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3 -> 1.7.1 (*)
+| | | +--- androidx.navigation:navigation-common:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-common-ktx:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-compose:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-fragment-ktx:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-runtime:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-runtime-ktx:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-ui:2.8.3 (c)
+| | | \--- androidx.navigation:navigation-ui-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-runtime-ktx:2.8.3 (*)
+| | +--- androidx.navigation:navigation-common-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-compose:2.8.3 (c)
+| | +--- androidx.navigation:navigation-fragment:2.8.3 (c)
+| | +--- androidx.navigation:navigation-runtime:2.8.3 (c)
+| | +--- androidx.navigation:navigation-runtime-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-ui-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-common:2.8.3 (c)
+| | \--- androidx.navigation:navigation-ui:2.8.3 (c)
-| +--- androidx.navigation:navigation-ui-ktx:2.7.7
-| | +--- androidx.navigation:navigation-runtime-ktx:2.7.7 (*)
-| | +--- androidx.navigation:navigation-ui:2.7.7
-| | | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.4.1 (*)
-| | | +--- androidx.customview:customview:1.1.0 (*)
-| | | +--- androidx.drawerlayout:drawerlayout:1.1.1 (*)
-| | | +--- androidx.navigation:navigation-runtime:2.7.7 (*)
-| | | +--- androidx.transition:transition:1.3.0 -> 1.4.1 (*)
-| | | +--- com.google.android.material:material:1.4.0-beta01 -> 1.11.0 (*)
-| | | +--- androidx.navigation:navigation-common:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-common-ktx:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-compose:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-fragment:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-fragment-ktx:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-runtime:2.7.7 (c)
-| | | +--- androidx.navigation:navigation-runtime-ktx:2.7.7 (c)
-| | | \--- androidx.navigation:navigation-ui-ktx:2.7.7 (c)
-| | +--- androidx.navigation:navigation-common:2.7.7 (c)
-| | +--- androidx.navigation:navigation-compose:2.7.7 (c)
-| | +--- androidx.navigation:navigation-fragment:2.7.7 (c)
-| | +--- androidx.navigation:navigation-fragment-ktx:2.7.7 (c)
-| | +--- androidx.navigation:navigation-runtime:2.7.7 (c)
-| | +--- androidx.navigation:navigation-runtime-ktx:2.7.7 (c)
-| | +--- androidx.navigation:navigation-ui:2.7.7 (c)
-| | \--- androidx.navigation:navigation-common-ktx:2.7.7 (c)
+| +--- androidx.navigation:navigation-ui-ktx:2.7.7 -> 2.8.3
+| | +--- androidx.navigation:navigation-runtime-ktx:2.8.3 (*)
+| | +--- androidx.navigation:navigation-ui:2.8.3
+| | | +--- androidx.annotation:annotation-experimental:1.4.1 (*)
+| | | +--- androidx.customview:customview:1.1.0 (*)
+| | | +--- androidx.drawerlayout:drawerlayout:1.1.1 (*)
+| | | +--- androidx.navigation:navigation-runtime:2.8.3 (*)
+| | | +--- androidx.transition:transition:1.3.0 -> 1.5.0 (*)
+| | | +--- com.google.android.material:material:1.4.0 -> 1.12.0 (*)
+| | | +--- androidx.navigation:navigation-common:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-common-ktx:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-compose:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-fragment:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-fragment-ktx:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-runtime:2.8.3 (c)
+| | | +--- androidx.navigation:navigation-runtime-ktx:2.8.3 (c)
+| | | \--- androidx.navigation:navigation-ui-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-common:2.8.3 (c)
+| | +--- androidx.navigation:navigation-common-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-compose:2.8.3 (c)
+| | +--- androidx.navigation:navigation-fragment:2.8.3 (c)
+| | +--- androidx.navigation:navigation-fragment-ktx:2.8.3 (c)
+| | +--- androidx.navigation:navigation-runtime:2.8.3 (c)
+| | +--- androidx.navigation:navigation-runtime-ktx:2.8.3 (c)
+| | \--- androidx.navigation:navigation-ui:2.8.3 (c)
| \--- project :modules:features:cartheme
-| \--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| \--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
+--- project :modules:features:discover
-| +--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| +--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
| \--- project :modules:features:podcasts
-| +--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| +--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
| +--- project :modules:features:player
-| | +--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| | +--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
| | +--- androidx.compose.material3:material3-window-size-class-android -> 1.3.0
-| | | \--- androidx.window:window:1.0.0 (*)
+| | | \--- androidx.window:window:1.0.0 -> 1.3.0 (*)
| | \--- io.github.kevinnzou:compose-webview:0.33.6
-| | \--- com.google.android.material:material:1.11.0 (*)
+| | \--- com.google.android.material:material:1.11.0 -> 1.12.0 (*)
-| \--- androidx.navigation:navigation-compose:2.7.7 (*)
+| \--- androidx.navigation:navigation-compose:2.7.7 -> 2.8.3 (*)
+--- project :modules:features:filters
-| \--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| \--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
+--- project :modules:features:navigation
-| \--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| \--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
+--- project :modules:features:profile
-| \--- com.google.android.material:material:1.9.0 -> 1.11.0 (*)
+| \--- com.google.android.material:material:1.9.0 -> 1.12.0 (*)
+\--- project :modules:services:gravatar
+ +--- com.google.dagger:hilt-android:2.53 (*)
+ +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 (*)
+ +--- project :modules:services:utils (*)
+ +--- com.gravatar:gravatar:2.2.0
+ | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.1.0 (*)
+ | +--- com.squareup.retrofit2:retrofit:2.11.0 (*)
+ | +--- com.squareup.retrofit2:converter-moshi:2.11.0 (*)
+ | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.9.0 (*)
+ | +--- com.squareup.okhttp3:okhttp:4.12.0 (*)
+ | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.1.0 (*)
+ \--- com.gravatar:gravatar-quickeditor:2.2.0
+ +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.25 -> 2.1.0 (*)
+ +--- com.gravatar:gravatar:2.2.0 (*)
+ +--- com.gravatar:gravatar-ui:2.2.0
+ | +--- androidx.core:core-ktx:1.13.1 (*)
+ | +--- 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-svg:2.7.0
+ | | +--- androidx.core:core-ktx:1.12.0 -> 1.13.1 (*)
+ | | +--- com.caverock:androidsvg-aar:1.4
+ | | +--- io.coil-kt:coil-base:2.7.0 (*)
+ | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.0 -> 2.1.0 (*)
+ | +--- com.gravatar:gravatar:2.2.0 (*)
+ | +--- androidx.compose:compose-bom:2024.02.00 -> 2024.10.00 (*)
+ | +--- androidx.compose.ui:ui -> 1.7.4 (*)
+ | +--- androidx.compose.ui:ui-tooling-preview -> 1.7.4 (*)
+ | +--- androidx.compose.material3:material3 -> 1.3.0 (*)
+ | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.1.0 (*)
+ +--- 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.13.1 (*)
+ | +--- 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 (*)
+ +--- 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: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)
+ | | | \--- io.github.osipxd:encrypted-datastore:1.1.1-beta03 (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.0 (*)
+ | | | +--- androidx.datastore:datastore-core:1.1.1 (*)
+ | | | \--- com.google.crypto.tink:tink-android:1.13.0
+ | | | +--- androidx.annotation:annotation:1.5.0 -> 1.9.1 (*)
+ | | | +--- com.google.code.findbugs:jsr305:3.0.2
+ | | | +--- com.google.code.gson:gson:2.10.1
+ | | | \--- com.google.errorprone:error_prone_annotations:2.22.0 -> 2.28.0
+ | | +--- androidx.datastore:datastore-preferences-core:1.1.1 (*)
+ | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.1.0 (*)
+ | +--- 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.security:security-crypto:1.0.0
+ | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
+ | | | \--- com.google.crypto.tink:tink-android:1.5.0 -> 1.13.0 (*)
+ | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.1.0 (*)
+ | +--- androidx.datastore:datastore-preferences:1.1.1 (*)
+ | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.23 -> 2.1.0 (*)
+ +--- 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.10
+ | +--- androidx.appcompat:appcompat:1.6.1 -> 1.7.0 (*)
+ | +--- androidx.exifinterface:exifinterface:1.3.6 -> 1.3.7 (*)
+ | +--- androidx.transition:transition:1.4.1 -> 1.5.0 (*)
+ | \--- com.squareup.okhttp3:okhttp:3.12.13 -> 4.12.0 (*)
+ +--- androidx.compose:compose-bom:2024.02.00 -> 2024.10.00 (*)
+ +--- androidx.compose.ui:ui -> 1.7.4 (*)
+ +--- androidx.compose.ui:ui-tooling-preview -> 1.7.4 (*)
+ +--- androidx.compose.material3:material3 -> 1.3.0 (*)
+ +--- androidx.activity:activity-compose:1.9.2 -> 1.9.3 (*)
+ +--- androidx.compose.material3.adaptive:adaptive:1.0.0
+ | \--- androidx.compose.material3.adaptive:adaptive-android:1.0.0
+ | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
+ | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*)
+ | +--- androidx.compose.foundation:foundation:1.6.5 -> 1.7.4 (*)
+ | +--- androidx.compose.ui:ui-geometry:1.6.5 -> 1.7.4 (*)
+ | +--- 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.0 (*)
+ | | \--- androidx.window:window:1.3.0 (c)
+ | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.0 (*)
+ | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 -> 2.1.0 (*)
+ +--- com.composables:core:1.15.0
+ | \--- com.composables:core-android:1.15.0
+ | +--- androidx.activity:activity:1.9.0 -> 1.9.3 (*)
+ | +--- androidx.activity:activity-compose:1.9.0 -> 1.9.3 (*)
+ | +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.10 -> 2.1.0 (*)
+ | \--- org.jetbrains.compose.foundation:foundation:1.6.11 -> 1.7.0 (*)
+ \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 -> 2.1.0 (*)
The Lint failure is not related to this PR. You can sync with main to make it gone.
Would the Gravatar integration work better as a separate application? Keeping it within the Pocket Casts app could lead to long-term maintenance challenges. Other apps using this library are likely to face similar issues. Could we explore an alternative where we open a URL, and if the Gravatar app is installed, it launches instead of the website?
Thanks for your comments @MiSikora, @geekygecko.
Could we explore an alternative where we open a URL, and if the Gravatar app is installed
We don't have a Gravatar app (yet), so at the moment, we can't follow this approach. We can continue with the browser option, already implemented in PocketCast, but that's all.
The technical comments directly related to this PR have already been fixed. However, you have several concerns about the Gravatar SDK's design/architectural perspective. This is great insight for us as your point of view is the same that a third-party developer can have.
Some of the points you've mentioned (ex, Theming and Browser Navigation) have been made that way on purpose, but instead of giving my personal opinion or the reasons why we did that, I prefer to move this discussion to the whole Gravatar team. At the same time, we'll analyze your size/dependency concerns.
I'll keep you updated.
Version 7.79 has now entered code-freeze, so the milestone of this PR has been updated to 7.80.
I've just found out that we are holding off on this integration for now. As I was about to ask for a second review, I'll explain the changes for the sake of history.
-
Gravatar SDK version has been updated to
2.2.0-rc1(we haven't found any issue with the RC, so this PR would only require the bump to2.2.0. With the new SDK, we solve the Drop Moshi-Kotlin and Theming. The QuickEditor bottom sheet is customized based on the light/dark attribute of the current PocketCast theme. -
About excluding the Gravatar SDK for Wear/Automotive. As you suggested, I've followed the
ffmpegapproach. I've created two modules,gravatarandgravatar-noop. The first one contains the code and the dependencies with the Gravatar SDK, and it's injected only into theAppbuild. Thenoopdoesn't have dependencies and is injected in Wear/Automotive builds. Gravatar SDK doesn't land in those builds right now.
The last SDK release did not address the Browser Navigation point. We are considering it, but I would say it is a lower priority than the previous ones.
Said that. I'm moving this PR to a draft. Feel free to drop any comments or suggestions about the latest changes / Gravatar SDK. I'm looking forward to it. I'll keep updating this PR with your feedback. On the other hand, if you think the current state adds value to PocketCast and makes sense to merge it, please let me know.
As always, thanks for your insight @MiSikora, I'll review your technical suggestions.
As I said before, the SDK justification is a fair question; I understand your concerns. However, in my opinion, that discussion should wait until we clarify how this integration should work (that's why we converted the PR to a draft). I know people are trying to find the best way to make the integration interesting for both products.
| 1 Message | |
|---|---|
| :book: | This PR is still a Draft: some checks will be skipped. |
Generated by :no_entry_sign: Danger
Version 7.80 has now entered code-freeze, so the milestone of this PR has been updated to 7.81.
Version 7.81 has now entered code-freeze, so the milestone of this PR has been updated to 7.82.
Version 7.82 has now entered code-freeze, so the milestone of this PR has been updated to 7.83.
Version 7.83 has now entered code-freeze, so the milestone of this PR has been updated to 7.84.
I'll close this PR since at the moment we won't be moving forward with this.