Merge "Move collection to 1.2.0-alpha01 and pin all current usages to 1.1.0-rc01" into androidx-master-dev
diff --git a/animation/build.gradle b/animation/build.gradle
index 743350e..f0a633e 100644
--- a/animation/build.gradle
+++ b/animation/build.gradle
@@ -26,7 +26,7 @@
 dependencies {
     implementation("androidx.annotation:annotation:1.1.0-rc01")
     implementation(project(":core"))
-    implementation(project(":collection"))
+    implementation("androidx.collection:collection:1.1.0-rc01")
 
     androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT, libs.exclude_for_espresso)
     androidTestImplementation(ANDROIDX_TEST_RULES, libs.exclude_for_espresso)
diff --git a/browser/build.gradle b/browser/build.gradle
index f42d8cd..a9f7221 100644
--- a/browser/build.gradle
+++ b/browser/build.gradle
@@ -17,7 +17,7 @@
     api(project(":core"))
     api("androidx.annotation:annotation:1.1.0-rc01")
     api(project(":interpolator"))
-    api(project(":collection"))
+    api("androidx.collection:collection:1.1.0-rc01")
     api(project(":legacy-support-core-ui"))
 
     implementation(project(":concurrent:concurrent-futures"))
diff --git a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
index cea017c..8a0866b 100644
--- a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
@@ -37,7 +37,7 @@
     val CAR_CLUSTER = Version("1.0.0-alpha6")
     val CAR_MODERATOR = Version("1.0.0-alpha1")
     val CARDVIEW = Version("1.1.0-alpha01")
-    val COLLECTION = Version("1.1.0-rc01")
+    val COLLECTION = Version("1.2.0-alpha01")
     val CONTENTPAGER = Version("1.1.0-alpha01")
     val COMPOSE = Version("1.0.0-alpha01")
     val COORDINATORLAYOUT = Version("1.1.0-alpha02")
diff --git a/collection/api/1.2.0-alpha01.txt b/collection/api/1.2.0-alpha01.txt
new file mode 100644
index 0000000..179d17f
--- /dev/null
+++ b/collection/api/1.2.0-alpha01.txt
@@ -0,0 +1,183 @@
+// Signature format: 3.0
+package androidx.collection {
+
+  public class ArrayMap<K, V> extends androidx.collection.SimpleArrayMap<K,V> implements java.util.Map<K,V> {
+    ctor public ArrayMap();
+    ctor public ArrayMap(int);
+    ctor public ArrayMap(androidx.collection.SimpleArrayMap!);
+    method public boolean containsAll(java.util.Collection<?>);
+    method public java.util.Set<java.util.Map.Entry<K,V>>! entrySet();
+    method public java.util.Set<K>! keySet();
+    method public void putAll(java.util.Map<? extends K,? extends V>!);
+    method public boolean removeAll(java.util.Collection<?>);
+    method public boolean retainAll(java.util.Collection<?>);
+    method public java.util.Collection<V>! values();
+  }
+
+  public final class ArraySet<E> implements java.util.Collection<E> java.util.Set<E> {
+    ctor public ArraySet();
+    ctor public ArraySet(int);
+    ctor public ArraySet(androidx.collection.ArraySet<E>?);
+    ctor public ArraySet(java.util.Collection<E>?);
+    method public boolean add(E?);
+    method public void addAll(androidx.collection.ArraySet<? extends E>);
+    method public boolean addAll(java.util.Collection<? extends E>);
+    method public void clear();
+    method public boolean contains(Object?);
+    method public boolean containsAll(java.util.Collection<?>);
+    method public void ensureCapacity(int);
+    method public int indexOf(Object?);
+    method public boolean isEmpty();
+    method public java.util.Iterator<E>! iterator();
+    method public boolean remove(Object?);
+    method public boolean removeAll(androidx.collection.ArraySet<? extends E>);
+    method public boolean removeAll(java.util.Collection<?>);
+    method public E! removeAt(int);
+    method public boolean retainAll(java.util.Collection<?>);
+    method public int size();
+    method public Object[] toArray();
+    method public <T> T[] toArray(T[]);
+    method public E? valueAt(int);
+  }
+
+  public final class CircularArray<E> {
+    ctor public CircularArray();
+    ctor public CircularArray(int);
+    method public void addFirst(E!);
+    method public void addLast(E!);
+    method public void clear();
+    method public E! get(int);
+    method public E! getFirst();
+    method public E! getLast();
+    method public boolean isEmpty();
+    method public E! popFirst();
+    method public E! popLast();
+    method public void removeFromEnd(int);
+    method public void removeFromStart(int);
+    method public int size();
+  }
+
+  public final class CircularIntArray {
+    ctor public CircularIntArray();
+    ctor public CircularIntArray(int);
+    method public void addFirst(int);
+    method public void addLast(int);
+    method public void clear();
+    method public int get(int);
+    method public int getFirst();
+    method public int getLast();
+    method public boolean isEmpty();
+    method public int popFirst();
+    method public int popLast();
+    method public void removeFromEnd(int);
+    method public void removeFromStart(int);
+    method public int size();
+  }
+
+  public class LongSparseArray<E> implements java.lang.Cloneable {
+    ctor public LongSparseArray();
+    ctor public LongSparseArray(int);
+    method public void append(long, E!);
+    method public void clear();
+    method public androidx.collection.LongSparseArray<E>! clone();
+    method public boolean containsKey(long);
+    method public boolean containsValue(E!);
+    method @Deprecated public void delete(long);
+    method public E? get(long);
+    method public E! get(long, E!);
+    method public int indexOfKey(long);
+    method public int indexOfValue(E!);
+    method public boolean isEmpty();
+    method public long keyAt(int);
+    method public void put(long, E!);
+    method public void putAll(androidx.collection.LongSparseArray<? extends E>);
+    method public E? putIfAbsent(long, E!);
+    method public void remove(long);
+    method public boolean remove(long, Object!);
+    method public void removeAt(int);
+    method public E? replace(long, E!);
+    method public boolean replace(long, E!, E!);
+    method public void setValueAt(int, E!);
+    method public int size();
+    method public E! valueAt(int);
+  }
+
+  public class LruCache<K, V> {
+    ctor public LruCache(int);
+    method protected V? create(K);
+    method public final int createCount();
+    method protected void entryRemoved(boolean, K, V, V?);
+    method public final void evictAll();
+    method public final int evictionCount();
+    method public final V? get(K);
+    method public final int hitCount();
+    method public final int maxSize();
+    method public final int missCount();
+    method public final V? put(K, V);
+    method public final int putCount();
+    method public final V? remove(K);
+    method public void resize(int);
+    method public final int size();
+    method protected int sizeOf(K, V);
+    method public final java.util.Map<K,V>! snapshot();
+    method public final String toString();
+    method public void trimToSize(int);
+  }
+
+  public class SimpleArrayMap<K, V> {
+    ctor public SimpleArrayMap();
+    ctor public SimpleArrayMap(int);
+    ctor public SimpleArrayMap(androidx.collection.SimpleArrayMap<K,V>!);
+    method public void clear();
+    method public boolean containsKey(Object?);
+    method public boolean containsValue(Object!);
+    method public void ensureCapacity(int);
+    method public V? get(Object!);
+    method public V! getOrDefault(Object!, V!);
+    method public int indexOfKey(Object?);
+    method public boolean isEmpty();
+    method public K! keyAt(int);
+    method public V? put(K!, V!);
+    method public void putAll(androidx.collection.SimpleArrayMap<? extends K,? extends V>);
+    method public V? putIfAbsent(K!, V!);
+    method public V? remove(Object!);
+    method public boolean remove(Object!, Object!);
+    method public V! removeAt(int);
+    method public V? replace(K!, V!);
+    method public boolean replace(K!, V!, V!);
+    method public V! setValueAt(int, V!);
+    method public int size();
+    method public V! valueAt(int);
+  }
+
+  public class SparseArrayCompat<E> implements java.lang.Cloneable {
+    ctor public SparseArrayCompat();
+    ctor public SparseArrayCompat(int);
+    method public void append(int, E!);
+    method public void clear();
+    method public androidx.collection.SparseArrayCompat<E>! clone();
+    method public boolean containsKey(int);
+    method public boolean containsValue(E!);
+    method @Deprecated public void delete(int);
+    method public E? get(int);
+    method public E! get(int, E!);
+    method public int indexOfKey(int);
+    method public int indexOfValue(E!);
+    method public boolean isEmpty();
+    method public int keyAt(int);
+    method public void put(int, E!);
+    method public void putAll(androidx.collection.SparseArrayCompat<? extends E>);
+    method public E? putIfAbsent(int, E!);
+    method public void remove(int);
+    method public boolean remove(int, Object!);
+    method public void removeAt(int);
+    method public void removeAtRange(int, int);
+    method public E? replace(int, E!);
+    method public boolean replace(int, E!, E!);
+    method public void setValueAt(int, E!);
+    method public int size();
+    method public E! valueAt(int);
+  }
+
+}
+
diff --git a/collection/api/restricted_1.2.0-alpha01.txt b/collection/api/restricted_1.2.0-alpha01.txt
new file mode 100644
index 0000000..da4f6cc
--- /dev/null
+++ b/collection/api/restricted_1.2.0-alpha01.txt
@@ -0,0 +1 @@
+// Signature format: 3.0
diff --git a/collection/ktx/api/1.2.0-alpha01.txt b/collection/ktx/api/1.2.0-alpha01.txt
new file mode 100644
index 0000000..3fe6a36
--- /dev/null
+++ b/collection/ktx/api/1.2.0-alpha01.txt
@@ -0,0 +1,52 @@
+// Signature format: 3.0
+package androidx.collection {
+
+  public final class ArrayMapKt {
+    ctor public ArrayMapKt();
+    method public static inline <K, V> androidx.collection.ArrayMap<K,V> arrayMapOf();
+    method public static <K, V> androidx.collection.ArrayMap<K,V> arrayMapOf(kotlin.Pair<? extends K,? extends V>... pairs);
+  }
+
+  public final class ArraySetKt {
+    ctor public ArraySetKt();
+    method public static inline <T> androidx.collection.ArraySet<T> arraySetOf();
+    method public static <T> androidx.collection.ArraySet<T> arraySetOf(T... values);
+  }
+
+  public final class LongSparseArrayKt {
+    ctor public LongSparseArrayKt();
+    method public static inline operator <T> boolean contains(androidx.collection.LongSparseArray<T>, long key);
+    method public static inline <T> void forEach(androidx.collection.LongSparseArray<T>, kotlin.jvm.functions.Function2<? super java.lang.Long,? super T,kotlin.Unit> action);
+    method public static inline <T> T! getOrDefault(androidx.collection.LongSparseArray<T>, long key, T! defaultValue);
+    method public static inline <T> T! getOrElse(androidx.collection.LongSparseArray<T>, long key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+    method public static inline <T> int getSize(androidx.collection.LongSparseArray<T>);
+    method public static inline <T> boolean isNotEmpty(androidx.collection.LongSparseArray<T>);
+    method public static <T> kotlin.collections.LongIterator keyIterator(androidx.collection.LongSparseArray<T>);
+    method public static operator <T> androidx.collection.LongSparseArray<T> plus(androidx.collection.LongSparseArray<T>, androidx.collection.LongSparseArray<T> other);
+    method @Deprecated public static <T> boolean remove(androidx.collection.LongSparseArray<T>, long key, T! value);
+    method public static inline operator <T> void set(androidx.collection.LongSparseArray<T>, long key, T! value);
+    method public static <T> java.util.Iterator<T> valueIterator(androidx.collection.LongSparseArray<T>);
+  }
+
+  public final class LruCacheKt {
+    ctor public LruCacheKt();
+    method public static inline <K, V> androidx.collection.LruCache<K,V> lruCache(int maxSize, kotlin.jvm.functions.Function2<? super K,? super V,java.lang.Integer> sizeOf = { _, _ -> 1 }, kotlin.jvm.functions.Function1<? super K,? extends V> create = { (V)null }, kotlin.jvm.functions.Function4<? super java.lang.Boolean,? super K,? super V,? super V,kotlin.Unit> onEntryRemoved = { _, _, _, _ ->  });
+  }
+
+  public final class SparseArrayKt {
+    ctor public SparseArrayKt();
+    method public static inline operator <T> boolean contains(androidx.collection.SparseArrayCompat<T>, int key);
+    method public static inline <T> void forEach(androidx.collection.SparseArrayCompat<T>, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> action);
+    method public static inline <T> T! getOrDefault(androidx.collection.SparseArrayCompat<T>, int key, T! defaultValue);
+    method public static inline <T> T! getOrElse(androidx.collection.SparseArrayCompat<T>, int key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+    method public static inline <T> int getSize(androidx.collection.SparseArrayCompat<T>);
+    method public static inline <T> boolean isNotEmpty(androidx.collection.SparseArrayCompat<T>);
+    method public static <T> kotlin.collections.IntIterator keyIterator(androidx.collection.SparseArrayCompat<T>);
+    method public static operator <T> androidx.collection.SparseArrayCompat<T> plus(androidx.collection.SparseArrayCompat<T>, androidx.collection.SparseArrayCompat<T> other);
+    method @Deprecated public static <T> boolean remove(androidx.collection.SparseArrayCompat<T>, int key, T! value);
+    method public static inline operator <T> void set(androidx.collection.SparseArrayCompat<T>, int key, T! value);
+    method public static <T> java.util.Iterator<T> valueIterator(androidx.collection.SparseArrayCompat<T>);
+  }
+
+}
+
diff --git a/collection/ktx/api/restricted_1.2.0-alpha01.txt b/collection/ktx/api/restricted_1.2.0-alpha01.txt
new file mode 100644
index 0000000..da4f6cc
--- /dev/null
+++ b/collection/ktx/api/restricted_1.2.0-alpha01.txt
@@ -0,0 +1 @@
+// Signature format: 3.0
diff --git a/collection/ktx/build.gradle b/collection/ktx/build.gradle
index e813c94..3b51b3d 100644
--- a/collection/ktx/build.gradle
+++ b/collection/ktx/build.gradle
@@ -24,7 +24,7 @@
 }
 
 dependencies {
-    compile(project(":collection"))
+    compile("androidx.collection:collection:1.1.0-rc01")
     compile(KOTLIN_STDLIB)
     testCompile(JUNIT)
     testCompile(TRUTH)
diff --git a/content/build.gradle b/content/build.gradle
index 1be69c9..91fa5e9 100644
--- a/content/build.gradle
+++ b/content/build.gradle
@@ -26,7 +26,7 @@
 dependencies {
     api("androidx.annotation:annotation:1.1.0-rc01")
     api(project(":core"))
-    implementation(project(":collection"))
+    implementation("androidx.collection:collection:1.1.0-rc01")
 
     androidTestImplementation(JUNIT)
     androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
diff --git a/customview/build.gradle b/customview/build.gradle
index 1a08bcd..738f886 100644
--- a/customview/build.gradle
+++ b/customview/build.gradle
@@ -10,7 +10,7 @@
 dependencies {
     api("androidx.annotation:annotation:1.1.0-rc01")
     api(project(":core"))
-    implementation(project(":collection"))
+    implementation("androidx.collection:collection:1.1.0-rc01")
 
     androidTestImplementation(JUNIT)
     androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
diff --git a/dynamic-animation/build.gradle b/dynamic-animation/build.gradle
index 03ceb41..e9d5ab2 100644
--- a/dynamic-animation/build.gradle
+++ b/dynamic-animation/build.gradle
@@ -9,7 +9,7 @@
 
 dependencies {
     api(project(":core"))
-    api(project(":collection"))
+    api("androidx.collection:collection:1.1.0-rc01")
     api(project(":legacy-support-core-utils"))
 
     androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
diff --git a/fragment/build.gradle b/fragment/build.gradle
index abe4c77..ee79ab7 100644
--- a/fragment/build.gradle
+++ b/fragment/build.gradle
@@ -19,7 +19,7 @@
     api(project(":core")) {
         exclude group: 'androidx.annotation'
     }
-    api(project(":collection"))
+    api("androidx.collection:collection:1.1.0-rc01")
     api("androidx.viewpager:viewpager:1.0.0")
     api("androidx.annotation:annotation:1.1.0-rc01")
     api("androidx.loader:loader:1.0.0")
diff --git a/graphics/drawable/animated/build.gradle b/graphics/drawable/animated/build.gradle
index 389e65a..2f3439a 100644
--- a/graphics/drawable/animated/build.gradle
+++ b/graphics/drawable/animated/build.gradle
@@ -10,7 +10,7 @@
 dependencies {
     api(project(":vectordrawable"))
     implementation("androidx.interpolator:interpolator:1.0.0")
-    implementation(project(":collection"))
+    implementation("androidx.collection:collection:1.1.0-rc01")
 
     androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
     androidTestImplementation(ANDROIDX_TEST_CORE)
diff --git a/graphics/drawable/static/build.gradle b/graphics/drawable/static/build.gradle
index 5d92ddc..418f40e 100644
--- a/graphics/drawable/static/build.gradle
+++ b/graphics/drawable/static/build.gradle
@@ -10,7 +10,7 @@
 dependencies {
     api("androidx.annotation:annotation:1.1.0-rc01")
     api(project(":core"))
-    implementation(project(":collection"))
+    implementation("androidx.collection:collection:1.1.0-rc01")
 
     androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
     androidTestImplementation(ANDROIDX_TEST_CORE)
diff --git a/palette/build.gradle b/palette/build.gradle
index 5f7cc1f..a537d09 100644
--- a/palette/build.gradle
+++ b/palette/build.gradle
@@ -15,7 +15,7 @@
 
 dependencies {
     api(project(":core"))
-    implementation(project(":collection"))
+    implementation("androidx.collection:collection:1.1.0-rc01")
 
     annotationProcessor(NULLAWAY)
 
diff --git a/recyclerview/selection/build.gradle b/recyclerview/selection/build.gradle
index b63fc0b..7f59362 100644
--- a/recyclerview/selection/build.gradle
+++ b/recyclerview/selection/build.gradle
@@ -27,7 +27,7 @@
     api(project(":recyclerview"))
     api("androidx.annotation:annotation:1.1.0-rc01")
     api(project(":core"))
-    implementation(project(":collection"))
+    implementation("androidx.collection:collection:1.1.0-rc01")
 
     androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
     androidTestImplementation(ANDROIDX_TEST_CORE)
diff --git a/slices/core/build.gradle b/slices/core/build.gradle
index 615a1f2..8e7c2ad 100644
--- a/slices/core/build.gradle
+++ b/slices/core/build.gradle
@@ -27,7 +27,7 @@
 dependencies {
     implementation "androidx.annotation:annotation:1.1.0-rc01"
     implementation project(":appcompat")
-    api project(":collection")
+    api "androidx.collection:collection:1.1.0-rc01"
     api(project(":remotecallback"))
 
     androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
diff --git a/slices/view/build.gradle b/slices/view/build.gradle
index 0ee765c..92d9bd9 100644
--- a/slices/view/build.gradle
+++ b/slices/view/build.gradle
@@ -26,7 +26,7 @@
 dependencies {
     implementation(project(":slice-core"))
     implementation(project(":recyclerview"))
-    implementation(project(":collection"))
+    implementation("androidx.collection:collection:1.1.0-rc01")
     api(ARCH_LIFECYCLE_LIVEDATA_CORE, libs.exclude_annotations_transitive)
 
     androidTestImplementation(project(":slice-builders"))
diff --git a/viewpager2/build.gradle b/viewpager2/build.gradle
index df96767..1408eb4 100644
--- a/viewpager2/build.gradle
+++ b/viewpager2/build.gradle
@@ -27,7 +27,7 @@
 dependencies {
     api(project(":fragment"))
     api(project(":recyclerview"))
-    implementation(project(":collection"))
+    implementation("androidx.collection:collection:1.1.0-rc01")
 
     androidTestImplementation(project(":appcompat"))
     androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)