Add a timeout waiting for contextual card loader.

- Intially setting it to 1 second.
- Also changed card appear animation from drop in to fade in. It looks
  less janky if we don't animate any size change.
- And some random code cleanup

Change-Id: I6e73bcf98fd9aa1d76ae002b94ab5b068dfecf1e
Fixes: 120916829
Test: robotests
This commit is contained in:
Fan Zhang
2018-12-12 15:07:59 -08:00
parent 07933cb967
commit ad12b76a98
9 changed files with 50 additions and 33 deletions

View File

@@ -18,6 +18,13 @@ package com.android.settings.homepage.contextualcards;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyMap;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import android.content.Context;
import android.net.Uri;
import android.util.ArrayMap;
@@ -36,6 +43,7 @@ import org.robolectric.RuntimeEnvironment;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@RunWith(SettingsRobolectricTestRunner.class)
public class ContextualCardManagerTest {
@@ -107,6 +115,25 @@ public class ContextualCardManagerTest {
.isEqualTo(ContextualCard.CardType.CONDITIONAL_FOOTER);
}
@Test
public void onFinishCardLoading_fastLoad_shouldCallOnContextualCardUpdated() {
mManager.mStartTime = System.currentTimeMillis();
final ContextualCardManager manager = spy(mManager);
doNothing().when(manager).onContextualCardUpdated(anyMap());
manager.onFinishCardLoading(new ArrayList<>());
verify(manager).onContextualCardUpdated(nullable(Map.class));
}
@Test
public void onFinishCardLoading_slowLoad_shouldSkipOnContextualCardUpdated() {
mManager.mStartTime = 0;
final ContextualCardManager manager = spy(mManager);
doNothing().when(manager).onContextualCardUpdated(anyMap());
manager.onFinishCardLoading(new ArrayList<>());
verify(manager, never()).onContextualCardUpdated(anyMap());
}
private ContextualCard buildContextualCard(String sliceUri) {
return new ContextualCard.Builder()