Upgrade to Compose Beta 4 and other dependencies (#1786)
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index 88c9534..c7fc802 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -36,5 +36,10 @@
<option name="name" value="MavenLocal" />
<option name="url" value="file:$USER_HOME$/.m2/repository/" />
</remote-repository>
+ <remote-repository>
+ <option name="id" value="MavenRepo" />
+ <option name="name" value="MavenRepo" />
+ <option name="url" value="https://repo.maven.apache.org/maven2/" />
+ </remote-repository>
</component>
</project>
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 1c170f6..6db606b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,13 +2,12 @@
buildscript {
ext {
- composeVersion = '1.0.0-beta03'
- kotlinVersion = '1.4.31'
- daggerVersion = '2.32'
+ composeVersion = '1.0.0-beta04'
+ kotlinVersion = '1.4.32'
+ daggerVersion = '2.34'
}
repositories {
- jcenter()
google()
maven {
url "https://plugins.gradle.org/m2/"
@@ -16,11 +15,10 @@
}
dependencies {
classpath 'org.ajoberstar:grgit:1.9.3'
- classpath 'com.android.tools.build:gradle:7.0.0-alpha12'
+ classpath 'com.android.tools.build:gradle:7.0.0-alpha14'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
- classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlinVersion"
classpath 'org.ajoberstar:grgit:1.9.3'
- classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.6"
+ classpath "net.ltgt.gradle:gradle-errorprone-plugin:2.0.1"
classpath 'com.vanniktech:gradle-maven-publish-plugin:0.13.0'
classpath 'org.jetbrains.dokka:dokka-gradle-plugin:1.4.10.2'
}
@@ -29,15 +27,15 @@
allprojects {
repositories {
google()
- jcenter()
+ mavenCentral()
maven {
url "https://jitpack.io"
}
maven {
- url "https://oss.sonatype.org/content/repositories/snapshots/"
+ url "https://kotlin.bintray.com/kotlinx"
}
- flatDir {
- dirs 'libs'
+ maven {
+ url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 0ea3e8a..e82caa4 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https://services.gradle.org/distributions/gradle-6.8.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip
diff --git a/issue-repro-compose/build.gradle b/issue-repro-compose/build.gradle
index 72f8700..9c13724 100755
--- a/issue-repro-compose/build.gradle
+++ b/issue-repro-compose/build.gradle
@@ -1,6 +1,5 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 30
@@ -26,14 +25,13 @@
}
composeOptions {
kotlinCompilerExtensionVersion composeVersion
- kotlinCompilerVersion kotlinVersion
}
}
dependencies {
implementation project(':lottie-compose')
- implementation 'androidx.appcompat:appcompat:1.3.0-beta01'
- implementation 'androidx.activity:activity-compose:1.3.0-alpha04'
+ implementation 'androidx.appcompat:appcompat:1.3.0-rc01'
+ implementation 'androidx.activity:activity-compose:1.3.0-alpha05'
implementation "androidx.compose.ui:ui:$composeVersion"
implementation "androidx.compose.material:material:$composeVersion"
implementation "androidx.compose.material:material-icons-extended:$composeVersion"
diff --git a/issue-repro/build.gradle b/issue-repro/build.gradle
index 6c20bd4..43bb4b7 100755
--- a/issue-repro/build.gradle
+++ b/issue-repro/build.gradle
@@ -1,6 +1,5 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 30
@@ -12,6 +11,10 @@
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
+
+ buildFeatures {
+ viewBinding true
+ }
}
dependencies {
diff --git a/issue-repro/src/main/java/com/airbnb/lottie/issues/IssueReproActivity.kt b/issue-repro/src/main/java/com/airbnb/lottie/issues/IssueReproActivity.kt
index b367194..495438c 100755
--- a/issue-repro/src/main/java/com/airbnb/lottie/issues/IssueReproActivity.kt
+++ b/issue-repro/src/main/java/com/airbnb/lottie/issues/IssueReproActivity.kt
@@ -2,10 +2,13 @@
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
+import com.airbnb.lottie.issues.databinding.IssueReproActivityBinding
-class IssueReproActivity : AppCompatActivity(R.layout.issue_repro_activity) {
+class IssueReproActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+ val binding = IssueReproActivityBinding.inflate(layoutInflater)
+ setContentView(binding.root)
// Reproduce any issues here.
}
}
diff --git a/lottie-compose/build.gradle b/lottie-compose/build.gradle
index 7cecc15..616f72a 100644
--- a/lottie-compose/build.gradle
+++ b/lottie-compose/build.gradle
@@ -33,7 +33,6 @@
}
composeOptions {
kotlinCompilerExtensionVersion composeVersion
- kotlinCompilerVersion kotlinVersion
}
}
diff --git a/sample-compose/build.gradle b/sample-compose/build.gradle
index 8b6535d..2b929c3 100644
--- a/sample-compose/build.gradle
+++ b/sample-compose/build.gradle
@@ -43,7 +43,6 @@
}
composeOptions {
kotlinCompilerExtensionVersion composeVersion
- kotlinCompilerVersion kotlinVersion
}
}
diff --git a/sample/build.gradle b/sample/build.gradle
index 9528c11..c31ba06 100644
--- a/sample/build.gradle
+++ b/sample/build.gradle
@@ -70,51 +70,49 @@
implementation project(':lottie')
implementation 'androidx.multidex:multidex:2.0.1'
- implementation "androidx.fragment:fragment-ktx:1.2.5"
+ implementation "androidx.fragment:fragment-ktx:1.3.2"
implementation "androidx.appcompat:appcompat:1.2.0"
implementation "androidx.recyclerview:recyclerview:1.1.0"
- implementation "androidx.paging:paging-runtime:3.0.0-alpha5"
- implementation "androidx.paging:paging-runtime-ktx:3.0.0-alpha06"
+ implementation "androidx.paging:paging-runtime-ktx:3.0.0-beta03"
implementation "androidx.cardview:cardview:1.0.0"
- implementation 'androidx.core:core-ktx:1.3.1'
- implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
- implementation "androidx.browser:browser:1.2.0"
+ implementation 'androidx.core:core-ktx:1.3.2'
+ implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
+ implementation "androidx.browser:browser:1.3.0"
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
- kapt "androidx.lifecycle:lifecycle-common-java8:2.2.0"
- implementation "com.google.android.material:material:1.2.1"
+ kapt "androidx.lifecycle:lifecycle-common-java8:2.3.1"
+ implementation "com.google.android.material:material:1.3.0"
- implementation 'com.airbnb.android:epoxy:4.2.0'
- kapt 'com.airbnb.android:epoxy-processor:4.2.0'
+ implementation 'com.airbnb.android:epoxy:4.4.4'
+ kapt 'com.airbnb.android:epoxy-processor:4.4.4'
implementation 'com.airbnb.android:mvrx:1.5.1'
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion"
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.2'
- implementation 'com.matthew-tamlin:sliding-intro-screen:3.2.0'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.3'
implementation 'com.dlazaro66.qrcodereaderview:qrcodereaderview:2.0.2'
implementation 'com.github.PhilJay:MPAndroidChart:3.1.0'
implementation 'com.amazonaws:aws-android-sdk-s3:2.8.3'
implementation ('com.amazonaws:aws-android-sdk-mobile-client:2.8.3@aar') { transitive = true }
implementation ('com.amazonaws:aws-android-sdk-auth-userpools:2.8.3@aar') { transitive = true }
implementation 'com.google.code.gson:gson:2.8.6'
- implementation 'com.squareup.okhttp3:okhttp:4.9.0'
+ implementation 'com.squareup.okhttp3:okhttp:4.9.1'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.github.bumptech.glide:glide:4.9.0'
- debugImplementation("androidx.fragment:fragment-testing:1.3.0-alpha08")
+ debugImplementation 'androidx.fragment:fragment-testing:1.3.2'
- testImplementation 'junit:junit:4.13.1'
+ testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test:core:1.3.0-rc01'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
androidTestImplementation 'androidx.test.espresso:espresso-idling-resource:3.3.0'
androidTestImplementation 'androidx.test:rules:1.3.0'
- androidTestImplementation 'com.squareup.okhttp3:okhttp:4.9.0'
+ androidTestImplementation 'com.squareup.okhttp3:okhttp:4.9.1'
androidTestImplementation 'io.jsonwebtoken:jjwt:0.9.0'
androidTestImplementation "org.mockito:mockito-android:2.28.2"
androidTestImplementation "com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0"
diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml
index 34964be..b0b2fab 100644
--- a/sample/src/main/AndroidManifest.xml
+++ b/sample/src/main/AndroidManifest.xml
@@ -36,9 +36,6 @@
android:name=".BullseyeActivity"
android:screenOrientation="portrait" />
<activity
- android:name=".AppIntroActivity"
- android:screenOrientation="portrait" />
- <activity
android:name=".QRScanActivity"
android:screenOrientation="portrait" />
<activity android:name=".DynamicActivity" />
diff --git a/sample/src/main/kotlin/com/airbnb/lottie/samples/AppIntroActivity.kt b/sample/src/main/kotlin/com/airbnb/lottie/samples/AppIntroActivity.kt
deleted file mode 100644
index 511249d..0000000
--- a/sample/src/main/kotlin/com/airbnb/lottie/samples/AppIntroActivity.kt
+++ /dev/null
@@ -1,77 +0,0 @@
-package com.airbnb.lottie.samples
-
-import android.os.Bundle
-import android.view.animation.Interpolator
-import android.widget.Scroller
-import androidx.fragment.app.Fragment
-import com.airbnb.lottie.LottieAnimationView
-import com.airbnb.lottie.samples.utils.inflate
-import com.airbnb.lottie.samples.utils.lerp
-import com.matthewtamlin.sliding_intro_screen_library.buttons.IntroButton
-import com.matthewtamlin.sliding_intro_screen_library.core.IntroActivity
-import com.matthewtamlin.sliding_intro_screen_library.core.LockableViewPager
-
-
-class AppIntroActivity : IntroActivity() {
- private val animationView: LottieAnimationView by lazy {
- rootView.inflate(R.layout.app_intro_animation_view, false) as LottieAnimationView
- }
- private val viewPager: LockableViewPager by lazy {
- findViewById(R.id.intro_activity_viewPager)
- }
-
- override fun generatePages(savedInstanceState: Bundle?) = listOf(EmptyFragment(), EmptyFragment(), EmptyFragment(), EmptyFragment())
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- rootView.addView(animationView, 0)
- setViewPagerScroller()
-
- addPageChangeListener(OnPageChangeListenerAdapter(
- onPageScrolled = { position, positionOffset, _ ->
- setAnimationProgress(position, positionOffset)
- }
- ))
- }
-
- override fun generateFinalButtonBehaviour(): IntroButton.Behaviour {
- return object : IntroButton.Behaviour {
- override fun setActivity(activity: IntroActivity) { finish() }
- override fun getActivity(): IntroActivity? = null
- override fun run() {}
- }
- }
-
- private fun setAnimationProgress(position: Int, positionOffset: Float) {
- val startProgress = ANIMATION_TIMES[position]
- val endProgress = ANIMATION_TIMES[position + 1]
-
- animationView.progress = startProgress.lerp(endProgress, positionOffset)
- }
-
- class EmptyFragment : Fragment(R.layout.empty_fragment)
-
- private fun setViewPagerScroller() {
- try {
- val scrollerField = androidx.viewpager.widget.ViewPager::class.java.getDeclaredField("mScroller")
- scrollerField.isAccessible = true
- val interpolator = androidx.viewpager.widget.ViewPager::class.java.getDeclaredField("sInterpolator")
- interpolator.isAccessible = true
-
- val scroller = object : Scroller(this, interpolator.get(null) as Interpolator) {
- override fun startScroll(startX: Int, startY: Int, dx: Int, dy: Int, duration: Int) {
- super.startScroll(startX, startY, dx, dy, duration * 7)
- }
- }
- scrollerField.set(viewPager, scroller)
- } catch (e: NoSuchFieldException) {
- // Do nothing.
- } catch (e: IllegalAccessException) {
- // Do nothing.
- }
- }
-
- companion object {
- private val ANIMATION_TIMES = floatArrayOf(0f, 0.3333f, 0.6666f, 1f, 1f)
- }
-}
diff --git a/sample/src/main/kotlin/com/airbnb/lottie/samples/LottiefilesFragment.kt b/sample/src/main/kotlin/com/airbnb/lottie/samples/LottiefilesFragment.kt
index cfaa7b9..69013a5 100644
--- a/sample/src/main/kotlin/com/airbnb/lottie/samples/LottiefilesFragment.kt
+++ b/sample/src/main/kotlin/com/airbnb/lottie/samples/LottiefilesFragment.kt
@@ -53,7 +53,7 @@
fun setQuery(query: String) = setState { copy(query = query) }
companion object : MvRxViewModelFactory<LottiefilesViewModel, LottiefilesState> {
- override fun create(viewModelContext: ViewModelContext, state: LottiefilesState): LottiefilesViewModel? {
+ override fun create(viewModelContext: ViewModelContext, state: LottiefilesState): LottiefilesViewModel {
val service = viewModelContext.app<LottieApplication>().lottiefilesService
return LottiefilesViewModel(state, service)
}
@@ -90,6 +90,10 @@
LoadResult.Error(e)
}
}
+
+ override fun getRefreshKey(state: PagingState<Int, AnimationData>): Int? {
+ return state.closestItemToPosition(state.anchorPosition ?: return null)?.id as Int?
+ }
}
class LottiefilesFragment : BaseMvRxFragment(R.layout.lottiefiles_fragment) {
diff --git a/sample/src/main/kotlin/com/airbnb/lottie/samples/ShowcaseFragment.kt b/sample/src/main/kotlin/com/airbnb/lottie/samples/ShowcaseFragment.kt
index 339a3ee..3379dd2 100644
--- a/sample/src/main/kotlin/com/airbnb/lottie/samples/ShowcaseFragment.kt
+++ b/sample/src/main/kotlin/com/airbnb/lottie/samples/ShowcaseFragment.kt
@@ -34,9 +34,6 @@
class ShowcaseFragment : BaseEpoxyFragment() {
private val showcaseItems = listOf(
- ShowcaseItem(R.drawable.showcase_preview_lottie, R.string.showcase_item_app_intro) {
- startActivity(Intent(requireContext(), AppIntroActivity::class.java))
- },
ShowcaseItem(R.drawable.showcase_preview_lottie, R.string.showcase_item_dynamic_properties) {
startActivity(Intent(requireContext(), DynamicActivity::class.java))
},
diff --git a/sample/src/main/res/layout/app_intro_animation_view.xml b/sample/src/main/res/layout/app_intro_animation_view.xml
deleted file mode 100644
index 743e9f7..0000000
--- a/sample/src/main/res/layout/app_intro_animation_view.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<com.airbnb.lottie.LottieAnimationView
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/animation_view"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- app:lottie_rawRes="@raw/walkthrough"/>
\ No newline at end of file
diff --git a/sample/src/main/res/values/strings.xml b/sample/src/main/res/values/strings.xml
index ad9fc55..5ddb8a1 100644
--- a/sample/src/main/res/values/strings.xml
+++ b/sample/src/main/res/values/strings.xml
@@ -78,7 +78,6 @@
<string name="anonymous">Anonymous</string>
- <string name="showcase_item_app_intro">App\nTutorial</string>
<string name="showcase_item_bullseye">\nBullseye</string>
<string name="showcase_item_dynamic_properties">Dynamic\nProperties</string>
<string name="showcase_item_animated_text">Animated\nText</string>