Upgrade Compose to rc01 plus other dependencies (#1834)

Had to fix a Lottiefiles model because it was NPEing calculating the hash code on a field that wan't being used anyway.
diff --git a/build.gradle b/build.gradle
index 71d67e0..63b1718 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,7 +2,7 @@
 
 buildscript {
   ext {
-    composeVersion = '1.0.0-beta09'
+    composeVersion = '1.0.0-rc01'
     kotlinVersion = '1.5.10'
     daggerVersion = '2.37'
   }
@@ -15,7 +15,7 @@
   }
   dependencies {
     classpath 'org.ajoberstar:grgit:1.9.3'
-    classpath 'com.android.tools.build:gradle:7.0.0-beta04'
+    classpath 'com.android.tools.build:gradle:7.0.0-beta05'
     classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
     classpath 'org.ajoberstar:grgit:1.9.3'
     classpath "net.ltgt.gradle:gradle-errorprone-plugin:2.0.1"
diff --git a/issue-repro-compose/build.gradle b/issue-repro-compose/build.gradle
index d318cfe..74d7c80 100755
--- a/issue-repro-compose/build.gradle
+++ b/issue-repro-compose/build.gradle
@@ -31,7 +31,7 @@
 dependencies {
     implementation project(':lottie-compose')
     implementation 'androidx.appcompat:appcompat:1.3.0-rc01'
-    implementation 'androidx.activity:activity-compose:1.3.0-alpha06'
+    implementation 'androidx.activity:activity-compose:1.3.0-rc01'
     implementation "androidx.compose.ui:ui:$composeVersion"
     implementation "androidx.compose.material:material:$composeVersion"
     implementation "androidx.compose.material:material-icons-extended:$composeVersion"
diff --git a/lottie-compose/build.gradle b/lottie-compose/build.gradle
index 422498c..2df81c2 100644
--- a/lottie-compose/build.gradle
+++ b/lottie-compose/build.gradle
@@ -56,5 +56,5 @@
   testImplementation 'org.robolectric:robolectric:4.4'
   testImplementation 'androidx.collection:collection-ktx:1.1.0'
   testImplementation 'junit:junit:4.13.2'
-  testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.4.3'
+  testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.5.0'
 }
\ No newline at end of file
diff --git a/sample-compose/build.gradle b/sample-compose/build.gradle
index 72a88c4..bfecb4d 100644
--- a/sample-compose/build.gradle
+++ b/sample-compose/build.gradle
@@ -53,17 +53,17 @@
 
 dependencies {
   implementation project(':lottie-compose')
-  implementation 'androidx.core:core-ktx:1.5.0'
+  implementation 'androidx.core:core-ktx:1.6.0'
   implementation 'androidx.multidex:multidex:2.0.1'
   implementation 'androidx.activity:activity-ktx:1.2.3'
-  implementation 'androidx.activity:activity-compose:1.3.0-beta02'
-  implementation 'androidx.appcompat:appcompat:1.4.0-alpha02'
-  implementation 'com.google.android.material:material:1.3.0'
+  implementation 'androidx.activity:activity-compose:1.3.0-rc01'
+  implementation 'androidx.appcompat:appcompat:1.4.0-alpha03'
+  implementation 'com.google.android.material:material:1.4.0'
   implementation "androidx.compose.ui:ui:$composeVersion"
   implementation "androidx.compose.material:material:$composeVersion"
   implementation "androidx.compose.material:material-icons-extended:$composeVersion"
   implementation "androidx.compose.ui:ui-tooling:$composeVersion"
-  implementation "androidx.navigation:navigation-compose:2.4.0-alpha02"
+  implementation "androidx.navigation:navigation-compose:2.4.0-alpha04"
   implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
   implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
 
@@ -77,12 +77,12 @@
 
   implementation 'com.squareup.retrofit2:retrofit:2.9.0'
   implementation 'com.squareup.retrofit2:converter-moshi:2.9.0'
-  implementation "com.google.accompanist:accompanist-coil:0.11.1"
+  implementation "com.google.accompanist:accompanist-coil:0.12.0"
   implementation "com.google.accompanist:accompanist-pager-indicators:0.11.1"
   implementation 'com.airbnb.android:mavericks:2.3.0'
   implementation 'com.airbnb.android:mavericks-compose:2.1.0-alpha02'
 
   testImplementation 'junit:junit:4.13.2'
-  androidTestImplementation 'androidx.test.ext:junit:1.1.2'
-  androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
+  androidTestImplementation 'androidx.test.ext:junit:1.1.3'
+  androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
 }
\ No newline at end of file
diff --git a/sample/build.gradle b/sample/build.gradle
index 28c4a75..9ca29a7 100644
--- a/sample/build.gradle
+++ b/sample/build.gradle
@@ -70,48 +70,48 @@
   implementation project(':lottie')
   implementation 'androidx.multidex:multidex:2.0.1'
 
-  implementation "androidx.fragment:fragment-ktx:1.3.2"
-  implementation "androidx.appcompat:appcompat:1.2.0"
-  implementation "androidx.recyclerview:recyclerview:1.2.0"
-  implementation "androidx.paging:paging-runtime-ktx:3.0.0-beta03"
+  implementation "androidx.fragment:fragment-ktx:1.3.5"
+  implementation "androidx.appcompat:appcompat:1.3.0"
+  implementation "androidx.recyclerview:recyclerview:1.2.1"
+  implementation "androidx.paging:paging-runtime-ktx:3.0.0"
   implementation "androidx.cardview:cardview:1.0.0"
-  implementation 'androidx.core:core-ktx:1.3.2'
+  implementation 'androidx.core:core-ktx:1.6.0'
   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.3.1"
-  implementation "com.google.android.material:material:1.3.0"
+  implementation "com.google.android.material:material:1.4.0"
 
-  implementation 'com.airbnb.android:epoxy:4.4.4'
-  kapt 'com.airbnb.android:epoxy-processor:4.4.4'
+  implementation 'com.airbnb.android:epoxy:4.6.2'
+  kapt 'com.airbnb.android:epoxy-processor:4.6.2'
   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.3'
-  implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.3'
+  implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
+  implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
   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.google.code.gson:gson:2.8.7'
   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'
+  implementation 'com.github.bumptech.glide:glide:4.12.0'
 
-  debugImplementation 'androidx.fragment:fragment-testing:1.3.2'
+  debugImplementation 'androidx.fragment:fragment-testing:1.3.5'
 
   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 'androidx.test:core:1.3.0'
+  androidTestImplementation 'androidx.test.ext:junit:1.1.3'
+  androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+  androidTestImplementation 'androidx.test.espresso:espresso-idling-resource:3.4.0'
+  androidTestImplementation 'androidx.test:rules:1.4.0'
   androidTestImplementation 'com.squareup.okhttp3:okhttp:4.9.1'
   androidTestImplementation 'io.jsonwebtoken:jjwt:0.9.0'
   androidTestImplementation "org.mockito:mockito-android:2.28.2"
diff --git a/sample/src/main/kotlin/com/airbnb/lottie/samples/MainActivity.kt b/sample/src/main/kotlin/com/airbnb/lottie/samples/MainActivity.kt
index c36a34e..2c5e89a 100644
--- a/sample/src/main/kotlin/com/airbnb/lottie/samples/MainActivity.kt
+++ b/sample/src/main/kotlin/com/airbnb/lottie/samples/MainActivity.kt
@@ -1,7 +1,6 @@
 package com.airbnb.lottie.samples
 
 import android.os.Bundle
-import android.view.MenuItem
 import androidx.appcompat.app.AppCompatActivity
 import androidx.appcompat.app.AppCompatDelegate
 import androidx.browser.customtabs.CustomTabsIntent
@@ -9,28 +8,26 @@
 import androidx.fragment.app.Fragment
 import com.airbnb.lottie.samples.databinding.MainActivityBinding
 import com.airbnb.lottie.samples.utils.viewBinding
-import com.google.android.material.bottomnavigation.BottomNavigationView
 
-class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemSelectedListener {
+class MainActivity : AppCompatActivity() {
     private val binding: MainActivityBinding by viewBinding()
 
     override fun onCreate(savedInstanceState: Bundle?) {
         AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)
         super.onCreate(savedInstanceState)
-        binding.bottomNavigation.setOnNavigationItemSelectedListener(this)
-
-        savedInstanceState ?: showFragment(ShowcaseFragment())
-    }
-
-    override fun onNavigationItemSelected(item: MenuItem): Boolean {
-        when (item.itemId) {
-            R.id.showcase -> showFragment(ShowcaseFragment())
-            R.id.preview -> showFragment(PreviewFragment())
-            R.id.lottiefiles -> showFragment(LottiefilesFragment())
-            R.id.learn -> showShowcase()
-            else -> return false
+        binding.bottomNavigation.setOnItemSelectedListener listener@{ item ->
+            when (item.itemId) {
+                R.id.showcase -> showFragment(ShowcaseFragment())
+                R.id.preview -> showFragment(PreviewFragment())
+                R.id.lottiefiles -> showFragment(LottiefilesFragment())
+                R.id.learn -> showShowcase()
+            }
+            true
         }
-        return true
+
+        if (savedInstanceState == null) {
+            showFragment(ShowcaseFragment())
+        }
     }
 
     private fun showShowcase() {
@@ -40,7 +37,7 @@
 
     private fun showFragment(fragment: Fragment) {
         supportFragmentManager.beginTransaction()
-                .replace(R.id.content, fragment)
-                .commit()
+            .replace(R.id.content, fragment)
+            .commit()
     }
 }
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 3379dd2..b0d18ba 100644
--- a/sample/src/main/kotlin/com/airbnb/lottie/samples/ShowcaseFragment.kt
+++ b/sample/src/main/kotlin/com/airbnb/lottie/samples/ShowcaseFragment.kt
@@ -3,6 +3,7 @@
 import android.content.Intent
 import com.airbnb.epoxy.EpoxyController
 import com.airbnb.lottie.samples.api.LottiefilesApi
+import com.airbnb.lottie.samples.model.AnimationDataV2
 import com.airbnb.lottie.samples.model.AnimationResponseV2
 import com.airbnb.lottie.samples.model.CompositionArgs
 import com.airbnb.lottie.samples.model.ShowcaseItem
diff --git a/sample/src/main/kotlin/com/airbnb/lottie/samples/model/AnimationDataV2.kt b/sample/src/main/kotlin/com/airbnb/lottie/samples/model/AnimationDataV2.kt
index 5075042..4f45257 100644
--- a/sample/src/main/kotlin/com/airbnb/lottie/samples/model/AnimationDataV2.kt
+++ b/sample/src/main/kotlin/com/airbnb/lottie/samples/model/AnimationDataV2.kt
@@ -2,39 +2,16 @@
 
 import android.os.Parcelable
 import com.airbnb.lottie.samples.utils.toColorIntSafe
+import com.google.gson.annotations.SerializedName
 import kotlinx.parcelize.Parcelize
 
 @Parcelize
 data class AnimationDataV2(
-        val aepFlag: Int,
-        val baseprice: String,
-        val bgColor: String,
-        val bodymovinVersion: String?,
-        val createdAt: String,
-        val dataFile: String,
-        val description: String,
-        val downloads: Int,
-        val file: String,
-        val fileHash: String,
-        val id: Int,
-        val inProcess: Int,
-        val isSticker: Int,
-        val preview: String,
-        val previewFrame: Int,
-        val previewUrl: String,
-        val previewVideo: String,
-        val previewVideoUrl: String,
-        val price: Int,
-        val publishedAt: String,
-        val slug: String,
-        val speed: Int,
-        val status: Int,
-        val title: String,
-        val updated_at: String,
-        val userId: Int,
-        val videoFramerate: Int,
-        val views: Int
+        @SerializedName("bg_color") val bgColor: String,
+        @SerializedName("file") val file: String,
+        @SerializedName("id") val id: Int,
+        @SerializedName("preview") val preview: String,
+        @SerializedName("title") val title: String,
 ) : Parcelable {
     val bgColorInt get() = bgColor.toColorIntSafe()
-
 }
\ No newline at end of file
diff --git a/sample/src/main/kotlin/com/airbnb/lottie/samples/model/AnimationResponseV2.kt b/sample/src/main/kotlin/com/airbnb/lottie/samples/model/AnimationResponseV2.kt
index 9a4a159..ed31989 100644
--- a/sample/src/main/kotlin/com/airbnb/lottie/samples/model/AnimationResponseV2.kt
+++ b/sample/src/main/kotlin/com/airbnb/lottie/samples/model/AnimationResponseV2.kt
@@ -1,16 +1,5 @@
 package com.airbnb.lottie.samples.model
 
 data class AnimationResponseV2(
-        val current_page: Int,
-        val data: List<AnimationDataV2>,
-        val first_page_url: String,
-        val from: Int,
-        val last_page: Int,
-        val last_page_url: String,
-        val next_page_url: Any,
-        val path: String,
-        val per_page: Int,
-        val prev_page_url: Any,
-        val to: Int,
-        val total: Int
+        val data: List<AnimationDataV2> = emptyList(),
 )
\ No newline at end of file