Merge "Fix issue with loading state, add tests for it" into pi-preview1-androidx-dev
diff --git a/slices/view/src/androidTest/java/androidx/slice/SliceXmlTest.java b/slices/view/src/androidTest/java/androidx/slice/SliceXmlTest.java
index 2cae298..ec99872 100644
--- a/slices/view/src/androidTest/java/androidx/slice/SliceXmlTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/SliceXmlTest.java
@@ -17,6 +17,7 @@
package androidx.slice;
+import static android.app.slice.Slice.HINT_PARTIAL;
import static android.app.slice.Slice.HINT_TITLE;
import static android.app.slice.SliceItem.FORMAT_ACTION;
import static android.app.slice.SliceItem.FORMAT_SLICE;
@@ -28,6 +29,9 @@
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertNull;
+import static androidx.slice.SliceUtils.LOADING_ALL;
+import static androidx.slice.SliceUtils.LOADING_COMPLETE;
+import static androidx.slice.SliceUtils.LOADING_PARTIAL;
import static androidx.slice.core.SliceHints.HINT_KEY_WORDS;
import android.content.Context;
@@ -179,6 +183,22 @@
assertTrue(slice3Keywords.isEmpty());
}
+ @Test
+ public void testGetLoadingState() {
+ Uri uri = Uri.parse("content://pkg/slice");
+ Slice s1 = new Slice.Builder(uri).build();
+ int actualState1 = SliceUtils.getLoadingState(s1);
+ assertEquals(LOADING_ALL, actualState1);
+
+ Slice s2 = new Slice.Builder(uri).addText(null, null, HINT_PARTIAL).build();
+ int actualState2 = SliceUtils.getLoadingState(s2);
+ assertEquals(LOADING_PARTIAL, actualState2);
+
+ Slice s3 = new Slice.Builder(uri).addText("Text", null).build();
+ int actualState3 = SliceUtils.getLoadingState(s3);
+ assertEquals(LOADING_COMPLETE, actualState3);
+ }
+
private void assertEquivalent(Slice desired, Slice actual) {
assertEquals(desired.getUri(), actual.getUri());
assertEquals(desired.getHints(), actual.getHints());
diff --git a/slices/view/src/main/java/androidx/slice/SliceUtils.java b/slices/view/src/main/java/androidx/slice/SliceUtils.java
index 32015f5..62be594 100644
--- a/slices/view/src/main/java/androidx/slice/SliceUtils.java
+++ b/slices/view/src/main/java/androidx/slice/SliceUtils.java
@@ -201,7 +201,7 @@
// Check loading state
boolean hasHintPartial =
SliceQuery.find(slice, null, HINT_PARTIAL, null) != null;
- if (hasHintPartial && slice.getItems().size() == 0) {
+ if (slice.getItems().size() == 0) {
// Empty slice
return LOADING_ALL;
} else if (hasHintPartial) {