Make slices precheck executes in parallel.
Slice binding takes up sometime which may cause latency. Thus, making it run in parallel instead of sequentially to improve the performance and avoid hitting the timeout problem. Bug: 124366297 Fixes: 123668403 Test: robotests, unit tests Change-Id: I5d9fa4605f59e2acef65aadf6fce85df36d8fff1
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.settings.homepage.contextualcards;
|
||||
|
||||
import static android.app.slice.Slice.HINT_ERROR;
|
||||
|
||||
import static com.android.settings.homepage.contextualcards.ContextualCardLoader.DEFAULT_CARD_COUNT;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
@@ -27,6 +29,8 @@ import static org.mockito.Mockito.spy;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
|
||||
import androidx.slice.Slice;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
|
||||
@@ -43,13 +47,18 @@ import java.util.stream.Collectors;
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class ContextualCardLoaderTest {
|
||||
|
||||
private static final String TEST_SLICE_URI = "content://test/test";
|
||||
|
||||
private Context mContext;
|
||||
private ContextualCardLoader mContextualCardLoader;
|
||||
private EligibleCardChecker mEligibleCardChecker;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
mContext = RuntimeEnvironment.application;
|
||||
mContextualCardLoader = spy(new ContextualCardLoader(mContext));
|
||||
mEligibleCardChecker =
|
||||
spy(new EligibleCardChecker(mContext, getContextualCard(TEST_SLICE_URI)));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -61,16 +70,33 @@ public class ContextualCardLoaderTest {
|
||||
.setSummaryText("custom_summary")
|
||||
.build();
|
||||
|
||||
assertThat(mContextualCardLoader.isCardEligibleToDisplay(customCard)).isTrue();
|
||||
assertThat(mEligibleCardChecker.isCardEligibleToDisplay(customCard)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isCardEligibleToDisplay_invalidScheme_returnFalse() {
|
||||
final String sliceUri = "contet://com.android.settings.slices/action/flashlight";
|
||||
|
||||
assertThat(
|
||||
mContextualCardLoader.isCardEligibleToDisplay(
|
||||
getContextualCard(sliceUri))).isFalse();
|
||||
assertThat(mEligibleCardChecker.isCardEligibleToDisplay(getContextualCard(sliceUri)))
|
||||
.isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isCardEligibleToDisplay_nullSlice_returnFalse() {
|
||||
doReturn(null).when(mEligibleCardChecker).bindSlice(Uri.parse(TEST_SLICE_URI));
|
||||
|
||||
assertThat(mEligibleCardChecker.isCardEligibleToDisplay(getContextualCard(TEST_SLICE_URI)))
|
||||
.isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isCardEligibleToDisplay_errorSlice_returnFalse() {
|
||||
final Slice slice = new Slice.Builder(Uri.parse(TEST_SLICE_URI))
|
||||
.addHints(HINT_ERROR).build();
|
||||
doReturn(slice).when(mEligibleCardChecker).bindSlice(Uri.parse(TEST_SLICE_URI));
|
||||
|
||||
assertThat(mEligibleCardChecker.isCardEligibleToDisplay(getContextualCard(TEST_SLICE_URI)))
|
||||
.isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Reference in New Issue
Block a user