-
Notifications
You must be signed in to change notification settings - Fork 226
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gravatar native Quick Editor #3055
base: main
Are you sure you want to change the base?
Conversation
📲 You can test the changes from this Pull Request in 📱 Mobile by scanning the QR code below to install the corresponding build.
📲 You can test the changes from this Pull Request in 🚗 Automotive by scanning the QR code below to install the corresponding build.
📲 You can test the changes from this Pull Request in ⌚ Wear by scanning the QR code below to install the corresponding build.
|
Project dependencies changesThe following changes in project dependencies were detected (configuration list
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 (*) |
...rc/main/java/au/com/shiftyjelly/pocketcasts/player/view/transcripts/TranscriptPageWrapper.kt
Fixed
Show fixed
Hide fixed
...rc/main/java/au/com/shiftyjelly/pocketcasts/player/view/transcripts/TranscriptPageWrapper.kt
Fixed
Show fixed
Hide fixed
...rc/main/java/au/com/shiftyjelly/pocketcasts/player/view/transcripts/TranscriptPageWrapper.kt
Fixed
Show fixed
Hide fixed
8754114
to
88239cd
Compare
ba5c2ad
to
52e04d7
Compare
52e04d7
to
3544c49
Compare
2cc5183
to
be90fff
Compare
687759a
to
3fc5f31
Compare
3fc5f31
to
3fa232a
Compare
3fa232a
to
7cdacf0
Compare
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.
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 |
aa41cad
to
8c38274
Compare
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.
The last SDK release did not address the 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't tested the code yet, as I'll wait until we clarify the integration status. However, after reviewing the code, I recommend redesigning the GravatarService
to avoid relying on AssistedInject
and to ensure it doesn't throw errors when null
values are passed. A design like this could work:
interface GravatarService {
fun registerLauncher(fragment: Fragment, onAvatarSelected: () -> Unit): Launcher
suspend fun logout(email: String)
interface Launcher {
fun launchQuickEditor(email: String, isLightTheme: Boolean)
fun launchExternalQuickEditor(email: String)
}
}
class GravatarSdkService : GravatarService {
override fun registerLauncher(fragment: Fragment, onAvatarSelected: () -> Unit) = object : GravatarService.Launcher {
private val nativeEditorLauncher = fragment.registerForActivityResult(GetQuickEditorResult()) { quickEditorResult ->
when (quickEditorResult) {
GravatarQuickEditorResult.AVATAR_SELECTED -> onAvatarSelected()
GravatarQuickEditorResult.DISMISSED, null -> Unit
}
}
private val externalEditorLauncher = fragment.registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { _ ->
onAvatarSelected()
}
override fun launchQuickEditor(email: String, isLightTheme: Boolean) {
nativeEditorLauncher.launch(
GravatarEditorActivityArguments(
gravatarQuickEditorParams = GravatarQuickEditorParams {
this.email = Email(email)
avatarPickerContentLayout = AvatarPickerContentLayout.Horizontal
uiMode = if (isLightTheme) GravatarUiMode.LIGHT else GravatarUiMode.DARK
},
authenticationMethod = AuthenticationMethod.OAuth(
OAuthParams {
clientId = GRAVATAR_APP_ID
redirectUri = Gravatar.GRAVATAR_QE_REDIRECT_URL
},
),
),
)
}
override fun launchExternalQuickEditor(email: String) {
externalEditorLauncher.launch(Intent(Intent.ACTION_VIEW, Uri.parse(Gravatar.getGravatarChangeAvatarUrl(email))))
}
}
override suspend fun logout(email: String) = withContext(Dispatchers.IO) {
GravatarQuickEditor.logout(email = Email(email))
}
}
class NoOpGravatarServvice : GravatarService {
override fun registerLauncher(fragment: Fragment, onAvatarSelected: () -> Unit) = object : GravatarService.Launcher {
override fun launchQuickEditor(email: String, isLightTheme: Boolean) = Unit
override fun launchExternalQuickEditor(email: String) = Unit
}
override suspend fun logout(email: String) = Unit
}
There’s also a broader point that requires discussion, either here or in a call. I mentioned it earlier:
Justification: Why add this SDK? The low traffic for avatar changes doesn’t seem to justify the complexity introduced by these dependencies. What are the tangible benefits?
I’d still like to understand the benefits. I wouldn’t mind adding the SDK if it were a lightweight library. However, this SDK essentially behaves as a mini-application with many dependencies, which could lead to long-term maintenance issues for us. I'm especially concerned about the presence of Compose in it.
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. |
When the user taps over "Change Avatar" the Gravatar Native QE will be shown. If it needs authorization, the OAuth screen will be opened automatically.
As it is not viable to modify the activity to use `singleTask`, we need to implement the recently added GravatarQuickEditorActivity to handle the OAuth authorization.
We were using a blocking call when it was unnecessary.
We don't want the Gravatar SDK to land in the wear/automotive builds. The Gravatar module will be the only one that depends on the Gravatar SDK so that we can inject it only in the "app" build. Similar to what we are doing with "media-ffmpeg" and "media-noop" modules. In this commit, "wear" and "automotive" builds are broken. We need to add the "gravatar-noop" module and inject it into those modules.
Injecting the "gravatar-noop" we prevent the Gravatar SDK from landing in those builds.
c7f8faa
to
ea0c2f9
Compare
Generated by 🚫 Danger |
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: The "official"
gravatarAppId
is already in the secrets, see 3fa232a.Testing Instructions
To test the OAuth Flow, you need a
gravatarAppId
in yoursecret.properties
. You can create and configure your test app following this. Let me know if you need help.GRAVATAR_NATIVE_QUICK_EDITOR
feature flag under Profile -> Settings -> Beta featuresChange avatar
Change avatar
Sign out
from PocketCastChange avatar
GRAVATAR_NATIVE_QUICK_EDITOR
feature flag under Profile -> Settings -> Beta featuresChange avatar
Screenshots or Screencast
Checklist
./gradlew spotlessApply
to automatically apply formatting/linting)modules/services/localization/src/main/res/values/strings.xml
I have tested any UI changes...