-
Notifications
You must be signed in to change notification settings - Fork 135
Stripe SDK version update #7181
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
Conversation
|
You can test the changes on this Pull Request by downloading an installable build, or scanning this QR code: |
| actionString: String, | ||
| actionListener: View.OnClickListener | ||
| ) = Snackbar.make(view, msg, BaseTransientBottomBar.LENGTH_INDEFINITE).setAction(actionString, actionListener) | ||
| private fun getIndefiniteSnackbarWithAction( |
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.
Had to move it out of the interface otherwise it does not compile:
/Users/andrey/StudioProjects/woocommerce-android/WooCommerce/build/tmp/kapt3/stubs/wasabiDebug/com/woocommerce/android/ui/base/UIMessageResolver.java:171: error: private interface methods are not supported in -source 8
private default com.google.android.material.snackbar.Snackbar getIndefiniteSnackbarWithAction(android.view.View view, java.lang.String msg, java.lang.String actionString, android.view.View.OnClickListener actionListener) {
^
(use -source 9 or higher to enable private interface methods)
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.
This seems correct, since the combination of private default doesn't make sense, since it can't be overridden. If this was a class it'd be okay, but since it is an interface it is not.
| freeCompilerArgs += [ | ||
| "-Xopt-in=kotlin.RequiresOptIn" | ||
| "-Xopt-in=kotlin.RequiresOptIn", | ||
| "-Xjvm-default=all-compatibility", |
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.
Otherwise tones of the:
Inheritance from an interface with '@JvmDefault' members is only allowed with -Xjvm-default option
Still can not figure out what and how exactly transitive dependency causes that compilation works differently
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.
Here is more info about these flags. It seems that this solution is the recommended solution for now.
I'm also not sure what caused this change though. My personal bet is that it seems the previous version of the SDK was compiled with org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10 however, the new version is compiled with org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 (yes, older). So I think Stripe changed some interfaces and annotations in the SDK which results in this change and we need to enable the compiler flag. Imo not worth investigating more unless we encounter some issues with it.
|
I'll look into this when I have some extra time unless @AnirudhBhat beats me to it - it doesn't seem urgent and I'd like to understand why is the dependency forcing us to make these other changes before we merge it. |
|
Found 1 violations: The PR caused the following dependency changes:expand
+--- androidx.databinding:viewbinding:7.2.1
-| \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.0.0 -> 1.4.0
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21
+| +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21
+| \--- org.jetbrains:annotations:13.0 -> 20.1.0
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.6.21
-| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21
-| +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21
-| \--- org.jetbrains:annotations:13.0 -> 20.1.0
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 (*)
+--- com.google.firebase:firebase-messaging-ktx -> 23.0.6
| +--- com.google.android.gms:play-services-basement:18.0.0
| | +--- androidx.collection:collection:1.0.0 -> 1.2.0
-| | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | +--- androidx.core:core:1.2.0 -> 1.8.0
-| | | +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
| | | +--- androidx.concurrent:concurrent-futures:1.0.0
-| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1
-| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | | | +--- androidx.arch.core:core-common:2.1.0
-| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | | | +--- androidx.arch.core:core-runtime:2.1.0
-| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | | | \--- androidx.lifecycle:lifecycle-common:2.5.1
-| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | | \--- androidx.versionedparcelable:versionedparcelable:1.1.1
-| | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | \--- androidx.fragment:fragment:1.0.0 -> 1.5.2
| | +--- androidx.activity:activity:1.5.1
-| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1
-| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1
-| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.8.0
-| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | | | \--- androidx.savedstate:savedstate:1.2.0
-| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | | \--- androidx.tracing:tracing:1.0.0
-| | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
-| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | +--- androidx.loader:loader:1.0.0
-| | | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| | \--- androidx.viewpager:viewpager:1.0.0
-| | +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | +--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| | \--- androidx.customview:customview:1.0.0 -> 1.1.0
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| +--- com.google.firebase:firebase-common:20.1.1
| | \--- com.google.firebase:firebase-components:17.0.0
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| +--- com.google.firebase:firebase-common-ktx:20.1.1
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| \--- com.google.firebase:firebase-messaging:23.0.6
-| +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| +--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
| +--- com.google.android.datatransport:transport-api:3.0.0
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| +--- com.google.android.datatransport:transport-backend-cct:3.1.6
-| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | +--- com.google.android.datatransport:transport-runtime:3.1.6
-| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | | +--- com.google.firebase:firebase-encoders:17.0.0
-| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | | \--- com.google.firebase:firebase-encoders-proto:16.0.0
-| | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | \--- com.google.firebase:firebase-encoders-json:18.0.0
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| +--- com.google.android.gms:play-services-stats:17.0.2
| | \--- androidx.legacy:legacy-support-core-utils:1.0.0
-| | +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | +--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| | +--- androidx.documentfile:documentfile:1.0.0
-| | | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
-| | | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| | \--- androidx.print:print:1.0.0
-| | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| \--- com.google.firebase:firebase-datatransport:18.1.5
-| \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+--- com.google.firebase:firebase-config-ktx -> 21.1.1
-| \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+--- androidx.legacy:legacy-support-v4:1.0.0
| \--- androidx.legacy:legacy-support-core-ui:1.0.0
-| +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| +--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| +--- androidx.drawerlayout:drawerlayout:1.0.0 -> 1.1.1
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 -> 1.2.0
-| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | +--- androidx.window:window:1.0.0
-| | | \--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
| | \--- androidx.transition:transition:1.4.1
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| +--- androidx.interpolator:interpolator:1.0.0
-| | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -> 1.1.0
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0
-| | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| \--- androidx.cursoradapter:cursoradapter:1.0.0
-| \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
+--- androidx.constraintlayout:constraintlayout:2.1.4
| \--- androidx.appcompat:appcompat:1.2.0 -> 1.4.2
-| +--- androidx.annotation:annotation:1.3.0
+| +--- androidx.annotation:annotation:1.3.0 -> 1.4.0 (*)
| +--- androidx.appcompat:appcompat-resources:1.4.2
-| | +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | +--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
| | \--- androidx.vectordrawable:vectordrawable:1.1.0
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| +--- androidx.emoji2:emoji2:1.0.0
-| | +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | +--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
| | \--- androidx.lifecycle:lifecycle-process:2.4.0 -> 2.5.1
-| | +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | +--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
| | \--- androidx.startup:startup-runtime:1.1.1
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| \--- androidx.resourceinspection:resourceinspection-annotation:1.0.0
-| \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+--- androidx.recyclerview:recyclerview:1.2.1
-| \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+--- androidx.recyclerview:recyclerview-selection:1.1.0
-| \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+--- com.google.android.material:material:1.6.1
-| +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| +--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
| +--- androidx.cardview:cardview:1.0.0
-| | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| \--- androidx.viewpager2:viewpager2:1.0.0
-| \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+--- androidx.browser:browser:1.4.0
-| \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+--- androidx.preference:preference:1.2.0
-| +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| +--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
| \--- androidx.fragment:fragment-ktx:1.3.6 -> 1.5.2
| \--- androidx.activity:activity-ktx:1.5.1
| \--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1
-| \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
+--- androidx.datastore:datastore-preferences:1.0.0
| \--- androidx.datastore:datastore:1.0.0
-| +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| +--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
| \--- androidx.datastore:datastore-core:1.0.0
-| \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+--- androidx.navigation:navigation-fragment-ktx:2.4.1
| \--- androidx.navigation:navigation-fragment:2.4.1
| \--- androidx.navigation:navigation-runtime:2.4.1
| \--- androidx.navigation:navigation-common:2.4.1
-| \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+--- androidx.work:work-runtime-ktx:2.7.1
| \--- androidx.work:work-runtime:2.7.1
| \--- androidx.room:room-runtime:2.2.5 -> 2.4.2
| +--- androidx.room:room-common:2.4.2
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| \--- androidx.sqlite:sqlite-framework:2.2.0
-| +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| +--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| \--- androidx.sqlite:sqlite:2.2.0
-| \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
+--- com.automattic:Automattic-Tracks-Android:trunk-9c862fc2d53bc8e914216eb192b727427c71e71e
| +--- io.sentry:sentry-android -> 6.3.0
| | \--- io.sentry:sentry-android-core:6.3.0
| | \--- androidx.lifecycle:lifecycle-common-java8:2.2.0 -> 2.5.1
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
-| \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+--- org.wordpress:fluxc:trunk-3b65f4536e4cfc11eae229a0940b464ffaf340b9
| +--- androidx.paging:paging-runtime:2.1.2
| | \--- androidx.paging:paging-common:2.1.2
-| | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| \--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.3
-| \--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
+--- org.wordpress:login:0.18.0
| +--- com.github.bumptech.glide:glide:4.12.0 -> 4.13.2
| | \--- com.github.bumptech.glide:gifdecoder:4.13.2
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| \--- com.google.dagger:dagger-android-support:2.42
| +--- com.google.dagger:dagger-android:2.42
-| | \--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
-| \--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
+--- project :libs:cardreader
-| \--- com.stripe:stripeterminal:2.10.0
-| +--- com.stripe:stripeterminal-core:2.10.0
-| | +--- com.stripe:stripeterminal-external:2.10.0
-| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.6.21 (*)
-| | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.6.10
-| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 -> 1.6.21 (*)
-| | | | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.6.10 (*)
-| | | +--- androidx.annotation:annotation:1.3.0
-| | | +--- com.squareup.moshi:moshi:1.13.0
-| | | | +--- com.squareup.okio:okio:2.10.0 -> 3.0.0 (*)
-| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.21 (*)
-| | | \--- com.stripe:stripeterminal-internal-models:2.10.0
-| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.6.21 (*)
-| | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.6.10 (*)
-| | | +--- androidx.annotation:annotation:1.3.0
-| | | \--- com.squareup.moshi:moshi:1.13.0 (*)
-| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.6.21 (*)
-| | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.6.10 (*)
-| | +--- androidx.annotation:annotation:1.3.0
-| | +--- com.stripe:stripeterminal-internal-common:2.10.0
-| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.6.21 (*)
-| | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.6.10 (*)
-| | | +--- androidx.annotation:annotation:1.3.0
-| | | +--- com.google.guava:guava:28.1-android -> 31.0.1-jre
-| | | | +--- com.google.guava:failureaccess:1.0.1
-| | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
-| | | | +--- com.google.code.findbugs:jsr305:3.0.2
-| | | | +--- org.checkerframework:checker-qual:3.12.0
-| | | | +--- com.google.errorprone:error_prone_annotations:2.7.1 -> 2.9.0
-| | | | \--- com.google.j2objc:j2objc-annotations:1.3
-| | | +--- com.google.dagger:dagger:2.41 -> 2.42 (*)
-| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*)
-| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1 -> 1.6.4 (*)
-| | | +--- com.squareup.moshi:moshi:1.13.0 (*)
-| | | +--- com.squareup.moshi:moshi-adapters:1.13.0
-| | | | +--- com.squareup.moshi:moshi:1.13.0 (*)
-| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.21 (*)
-| | | +--- com.stripe:stripeterminal-internal-models:2.10.0 (*)
-| | | \--- com.stripe:stripeterminal-external:2.10.0 (*)
-| | +--- com.stripe:stripeterminal-internal-models:2.10.0 (*)
-| | +--- com.google.code.gson:gson:2.9.0
-| | +--- io.reactivex.rxjava2:rxandroid:2.1.1
-| | | \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.21
-| | | \--- org.reactivestreams:reactive-streams:1.0.3
-| | +--- io.reactivex.rxjava2:rxjava:2.2.21 (*)
-| | +--- io.reactivex.rxjava2:rxkotlin:2.4.0
-| | | +--- io.reactivex.rxjava2:rxjava:2.2.10 -> 2.2.21 (*)
-| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.40 -> 1.6.21 (*)
-| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-rx2:1.6.1 -> 1.6.4
-| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*)
-| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*)
-| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.4
-| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*)
-| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*)
-| | | | +--- org.reactivestreams:reactive-streams:1.0.3
-| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 (*)
-| | | +--- io.reactivex.rxjava2:rxjava:2.2.8 -> 2.2.21 (*)
-| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 (*)
-| | +--- com.squareup.okhttp3:okhttp:4.9.3 (*)
-| | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.4.1 -> 2.5.1
-| | | +--- androidx.lifecycle:lifecycle-livedata:2.5.1 (*)
-| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.5.1 (*)
-| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 (*)
-| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1 -> 1.6.4 (*)
-| | +--- androidx.security:security-crypto:1.1.0-alpha03
-| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
-| | | +--- com.google.crypto.tink:tink-android:1.5.0
-| | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
-| | +--- androidx.lifecycle:lifecycle-process:2.4.1 -> 2.5.1 (*)
-| | +--- com.jaredrummler:android-device-names:1.1.9
-| | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
-| | +--- com.google.dagger:dagger:2.41 -> 2.42 (*)
-| | +--- com.google.guava:guava:28.1-android -> 31.0.1-jre (*)
-| | +--- androidx.room:room-runtime:2.4.1 -> 2.4.2 (*)
-| | +--- androidx.room:room-ktx:2.4.1 -> 2.4.2 (*)
-| | +--- com.jakewharton.timber:timber:5.0.1
-| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.21 -> 1.6.21 (*)
-| | | \--- org.jetbrains:annotations:20.1.0
-| | +--- com.neovisionaries:nv-i18n:1.27
-| | +--- com.scottyab:rootbeer-lib:0.0.9
-| | +--- org.apache.commons:commons-compress:1.20
-| | +--- com.squareup.wire:wire-moshi-adapter:4.3.0
-| | | +--- com.squareup.wire:wire-runtime:4.3.0
-| | | | \--- com.squareup.wire:wire-runtime-jvm:4.3.0
-| | | | +--- com.squareup.okio:okio -> 3.0.0 (*)
-| | | | +--- com.squareup.okio:okio-bom:3.0.0
-| | | | | \--- com.squareup.okio:okio:3.0.0 (c)
-| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10 -> 1.6.21
-| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.6.21 (*)
-| | | +--- com.squareup.moshi:moshi:1.13.0 (*)
-| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.6.21 (*)
-| | \--- com.squareup.wire:wire-runtime:4.3.0 (*)
-| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.6.21 (*)
-| +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.6.10 (*)
-| \--- androidx.annotation:annotation:1.3.0
+| \--- com.stripe:stripeterminal:2.12.0
+| +--- com.stripe:stripeterminal-core:2.12.0
+| | +--- com.stripe:stripeterminal-external:2.12.0
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.6.21 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.6.10
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 -> 1.6.21 (*)
+| | | | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.6.10 (*)
+| | | +--- androidx.annotation:annotation:1.4.0 (*)
+| | | +--- com.squareup.moshi:moshi:1.13.0
+| | | | +--- com.squareup.okio:okio:2.10.0 -> 3.0.0 (*)
+| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.21 (*)
+| | | \--- com.stripe:stripeterminal-internal-models:2.12.0
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.6.21 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.6.10 (*)
+| | | +--- androidx.annotation:annotation:1.4.0 (*)
+| | | \--- com.squareup.moshi:moshi:1.13.0 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.6.21 (*)
+| | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.6.10 (*)
+| | +--- androidx.annotation:annotation:1.4.0 (*)
+| | +--- com.stripe:stripeterminal-internal-common:2.12.0
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.6.21 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.6.10 (*)
+| | | +--- androidx.annotation:annotation:1.4.0 (*)
+| | | +--- com.google.guava:guava:28.1-android -> 31.0.1-jre
+| | | | +--- com.google.guava:failureaccess:1.0.1
+| | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
+| | | | +--- com.google.code.findbugs:jsr305:3.0.2
+| | | | +--- org.checkerframework:checker-qual:3.12.0
+| | | | +--- com.google.errorprone:error_prone_annotations:2.7.1 -> 2.9.0
+| | | | \--- com.google.j2objc:j2objc-annotations:1.3
+| | | +--- com.google.dagger:dagger:2.42 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1 -> 1.6.4 (*)
+| | | +--- com.squareup.moshi:moshi:1.13.0 (*)
+| | | +--- com.squareup.moshi:moshi-adapters:1.13.0
+| | | | +--- com.squareup.moshi:moshi:1.13.0 (*)
+| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.6.21 (*)
+| | | +--- com.squareup.tape2:tape:2.0.0-beta1
+| | | +--- com.stripe:stripeterminal-internal-models:2.12.0 (*)
+| | | \--- com.stripe:stripeterminal-external:2.12.0 (*)
+| | +--- com.stripe:stripeterminal-internal-models:2.12.0 (*)
+| | +--- com.google.code.gson:gson:2.9.0
+| | +--- io.reactivex.rxjava2:rxandroid:2.1.1
+| | | \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.21
+| | | \--- org.reactivestreams:reactive-streams:1.0.3
+| | +--- io.reactivex.rxjava2:rxjava:2.2.21 (*)
+| | +--- io.reactivex.rxjava2:rxkotlin:2.4.0
+| | | +--- io.reactivex.rxjava2:rxjava:2.2.10 -> 2.2.21 (*)
+| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.40 -> 1.6.21 (*)
+| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-rx2:1.6.1 -> 1.6.4
+| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.6.4
+| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*)
+| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*)
+| | | | +--- org.reactivestreams:reactive-streams:1.0.3
+| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 (*)
+| | | +--- io.reactivex.rxjava2:rxjava:2.2.8 -> 2.2.21 (*)
+| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 (*)
+| | +--- com.squareup.okhttp3:okhttp:4.9.3 (*)
+| | +--- com.squareup.tape2:tape:2.0.0-beta1
+| | +--- androidx.lifecycle:lifecycle-livedata-ktx:2.5.0 -> 2.5.1
+| | | +--- androidx.lifecycle:lifecycle-livedata:2.5.1 (*)
+| | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.5.1 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 (*)
+| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1 -> 1.6.4 (*)
+| | +--- androidx.security:security-crypto:1.1.0-alpha03
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+| | | +--- com.google.crypto.tink:tink-android:1.5.0
+| | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| | +--- androidx.lifecycle:lifecycle-process:2.5.0 -> 2.5.1 (*)
+| | +--- com.jaredrummler:android-device-names:1.1.9
+| | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+| | +--- com.google.dagger:dagger:2.42 (*)
+| | +--- com.google.guava:guava:28.1-android -> 31.0.1-jre (*)
+| | +--- androidx.room:room-runtime:2.4.1 -> 2.4.2 (*)
+| | +--- androidx.room:room-ktx:2.4.1 -> 2.4.2 (*)
+| | +--- com.jakewharton.timber:timber:5.0.1
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.21 -> 1.6.21 (*)
+| | | \--- org.jetbrains:annotations:20.1.0
+| | +--- com.neovisionaries:nv-i18n:1.27
+| | +--- com.scottyab:rootbeer-lib:0.0.9
+| | +--- org.apache.commons:commons-compress:1.20
+| | +--- com.squareup.wire:wire-moshi-adapter:4.0.0
+| | | +--- com.squareup.wire:wire-runtime:4.0.0
+| | | | \--- com.squareup.wire:wire-runtime-jvm:4.0.0
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 -> 1.6.21 (*)
+| | | | +--- com.squareup.okio:okio:3.0.0 (*)
+| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31 -> 1.6.21
+| | | +--- com.squareup.moshi:moshi:1.12.0 -> 1.13.0 (*)
+| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 -> 1.6.21 (*)
+| | \--- com.squareup.wire:wire-runtime:4.0.0 (*)
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.6.21 (*)
+| +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.6.10 (*)
+| \--- androidx.annotation:annotation:1.4.0 (*)
+--- com.facebook.shimmer:shimmer:0.5.0
-| \--- androidx.annotation:annotation:1.0.1 -> 1.3.0
+| \--- androidx.annotation:annotation:1.0.1 -> 1.4.0 (*)
+--- com.automattic:about:0.0.6
| +--- androidx.compose.ui:ui:1.0.5 -> 1.1.1
| | +--- androidx.compose.runtime:runtime-saveable:1.1.1
| | | +--- androidx.compose.runtime:runtime:1.1.1
-| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
-| | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | +--- androidx.compose.ui:ui-geometry:1.1.1
-| | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | +--- androidx.compose.ui:ui-graphics:1.1.1
-| | | +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
| | | \--- androidx.compose.ui:ui-unit:1.1.1
-| | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | +--- androidx.compose.ui:ui-text:1.1.1
-| | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
-| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | \--- androidx.profileinstaller:profileinstaller:1.1.0
-| | \--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
| \--- androidx.compose.ui:ui-tooling:1.0.5 -> 1.1.1
-| +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| +--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| +--- androidx.compose.ui:ui-tooling-preview:1.1.1
-| | \--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
| +--- androidx.compose.ui:ui-tooling-data:1.1.1
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| +--- androidx.compose.animation:animation:1.1.1
-| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | +--- androidx.compose.animation:animation-core:1.1.1
-| | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| | \--- androidx.compose.foundation:foundation-layout:1.0.0 -> 1.1.1
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| \--- androidx.compose.material:material:1.0.0 -> 1.1.1
| \--- androidx.compose.foundation:foundation:1.1.1
-| \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+--- com.google.dagger:hilt-android:2.42
-| \--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.2.0 -> 1.4.0 (*)
+--- androidx.hilt:hilt-navigation-fragment:1.0.0
| \--- androidx.hilt:hilt-navigation:1.0.0
-| \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+--- androidx.hilt:hilt-work:1.0.0
-| \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
+--- com.github.PhilJay:MPAndroidChart:v3.1.0
-| \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
+--- com.zendesk:support:5.0.8
| +--- com.zendesk:support-providers:5.0.8
| | +--- com.zendesk:core:4.0.6
-| | | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| | +--- com.zendesk:guide-providers:1.0.7
-| | | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | | \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
-| | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| \--- com.zendesk:guide:1.0.7
| +--- com.zendesk:sdk-configurations:2.0.1
-| | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| +--- com.zendesk:messaging-api:5.2.3
-| | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
| \--- com.zendesk:messaging:5.2.3
| \--- com.zendesk:common-ui:4.0.3
| \--- com.zendesk.belvedere2:belvedere:3.0.0-RC
| +--- com.zendesk.belvedere2:belvedere-core:3.0.0-RC
-| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
-| +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| +--- androidx.annotation:annotation:1.1.0 -> 1.4.0 (*)
| \--- com.squareup.picasso:picasso:2.8
-| \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| \--- androidx.annotation:annotation:1.0.0 -> 1.4.0 (*)
\--- io.coil-kt:coil-compose:2.1.0
\--- io.coil-kt:coil-compose-base:2.1.0
\--- io.coil-kt:coil-base:2.1.0
- \--- androidx.annotation:annotation:1.3.0
+ \--- androidx.annotation:annotation:1.3.0 -> 1.4.0 (*)
Please review and act accordingly
|
|
@kidinov Just to make sure I'm not blocking this -> this is currently on hold, right? |
|
@malinajirka livecycle library was updated a couple of days ago so I think this is not blocked anymore from merging |
malinajirka
left a comment
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.
Thanks @kidinov! I've reviewed the code and tested the app and it all looks good to me -> there are no unexpected changes in transitive dependencies anymore.
| freeCompilerArgs += [ | ||
| "-Xopt-in=kotlin.RequiresOptIn" | ||
| "-Xopt-in=kotlin.RequiresOptIn", | ||
| "-Xjvm-default=all-compatibility", |
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.
Here is more info about these flags. It seems that this solution is the recommended solution for now.
I'm also not sure what caused this change though. My personal bet is that it seems the previous version of the SDK was compiled with org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10 however, the new version is compiled with org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 (yes, older). So I think Stripe changed some interfaces and annotations in the SDK which results in this change and we need to enable the compiler flag. Imo not worth investigating more unless we encounter some issues with it.
| actionString: String, | ||
| actionListener: View.OnClickListener | ||
| ) = Snackbar.make(view, msg, BaseTransientBottomBar.LENGTH_INDEFINITE).setAction(actionString, actionListener) | ||
| private fun getIndefiniteSnackbarWithAction( |
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.
This seems correct, since the combination of private default doesn't make sense, since it can't be overridden. If this was a class it'd be okay, but since it is an interface it is not.

Closes: #7175
Description
@malinajirka @AnirudhBhat
I am a bit hesitant if we should merge it:
On other hand, updating dependency more often is easy than shelving that for a while.
Wdyt?
Changes:
2.12.0 - 2022-07-25
Update: @OnReaderTips annotation is no longer required for using the on-reader tipping feature
New: Added autoReconnectOnUnexpectedDisconnect & bluetoothReaderReconnectionListener to the BluetoothConnectionConfiguration. When enabled, the SDK will attempt to restore connection upon any unexpected disconnect to a reader. See Stripe Doc for details.
2.11.0 - 2022-06-27
Beta: Add ability to specify capture method when creating a PaymentIntent via the SDK.
2.10.2 - 2022-06-15
Fix: Fixed a crash for devices running Android 7.1 and lower. See stripe/stripe-terminal-android#234 for details.
Testing instructions
RELEASE-NOTES.txtif necessary.