Loading src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java +5 −33 Original line number Diff line number Diff line Loading @@ -35,13 +35,10 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; public class EligibleCardChecker implements Callable<ContextualCard> { private static final String TAG = "EligibleCardChecker"; private static final long LATCH_TIMEOUT_MS = 300; private final Context mContext; Loading @@ -54,7 +51,7 @@ public class EligibleCardChecker implements Callable<ContextualCard> { } @Override public ContextualCard call() throws Exception { public ContextualCard call() { final long startTime = System.currentTimeMillis(); final MetricsFeatureProvider metricsFeatureProvider = FeatureFactory.getFactory(mContext).getMetricsFeatureProvider(); Loading Loading @@ -113,35 +110,10 @@ public class EligibleCardChecker implements Callable<ContextualCard> { @VisibleForTesting Slice bindSlice(Uri uri) { final SliceViewManager manager = SliceViewManager.getInstance(mContext); final Slice[] returnSlice = new Slice[1]; final CountDownLatch latch = new CountDownLatch(1); final SliceViewManager.SliceCallback callback = new SliceViewManager.SliceCallback() { @Override public void onSliceUpdated(Slice slice) { try { // We are just making sure the existence of the slice, so ignore // slice loading state here. returnSlice[0] = slice; latch.countDown(); } catch (Exception e) { Log.w(TAG, uri + " cannot be indexed", e); } finally { manager.unregisterSliceCallback(uri, this); } } }; // Register a callback until we get a loaded slice. manager.registerSliceCallback(uri, callback); // Trigger the binding. callback.onSliceUpdated(manager.bindSlice(uri)); try { latch.await(LATCH_TIMEOUT_MS, TimeUnit.MILLISECONDS); } catch (InterruptedException e) { Log.w(TAG, "Error waiting for slice binding for uri" + uri, e); manager.unregisterSliceCallback(uri, callback); } return returnSlice[0]; manager.pinSlice(uri); final Slice slice = manager.bindSlice(uri); manager.unpinSlice(uri); return slice; } @VisibleForTesting Loading tests/robotests/src/com/android/settings/homepage/contextualcards/EligibleCardCheckerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -77,9 +77,9 @@ public class EligibleCardCheckerTest { @Test public void isCardEligibleToDisplay_invalidScheme_returnFalse() { final Uri sliceUri = Uri.parse("contet://com.android.settings.slices/action/flashlight"); final Uri invalidUri = Uri.parse("contet://com.android.settings.slices/action/flashlight"); assertThat(mEligibleCardChecker.isCardEligibleToDisplay(getContextualCard(sliceUri))) assertThat(mEligibleCardChecker.isCardEligibleToDisplay(getContextualCard(invalidUri))) .isFalse(); } Loading tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -86,10 +86,10 @@ public class SliceContextualCardRendererTest { @Test public void bindView_invalidScheme_sliceShouldBeNull() { final Uri sliceUri = Uri.parse("contet://com.android.settings.slices/action/flashlight"); final Uri invalidUri = Uri.parse("contet://com.android.settings.slices/action/flashlight"); final RecyclerView.ViewHolder viewHolder = getSliceViewHolder(); mRenderer.bindView(viewHolder, buildContextualCard(sliceUri)); mRenderer.bindView(viewHolder, buildContextualCard(invalidUri)); assertThat( ((SliceFullCardRendererHelper.SliceViewHolder) viewHolder).sliceView.getSlice()) Loading Loading
src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java +5 −33 Original line number Diff line number Diff line Loading @@ -35,13 +35,10 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; public class EligibleCardChecker implements Callable<ContextualCard> { private static final String TAG = "EligibleCardChecker"; private static final long LATCH_TIMEOUT_MS = 300; private final Context mContext; Loading @@ -54,7 +51,7 @@ public class EligibleCardChecker implements Callable<ContextualCard> { } @Override public ContextualCard call() throws Exception { public ContextualCard call() { final long startTime = System.currentTimeMillis(); final MetricsFeatureProvider metricsFeatureProvider = FeatureFactory.getFactory(mContext).getMetricsFeatureProvider(); Loading Loading @@ -113,35 +110,10 @@ public class EligibleCardChecker implements Callable<ContextualCard> { @VisibleForTesting Slice bindSlice(Uri uri) { final SliceViewManager manager = SliceViewManager.getInstance(mContext); final Slice[] returnSlice = new Slice[1]; final CountDownLatch latch = new CountDownLatch(1); final SliceViewManager.SliceCallback callback = new SliceViewManager.SliceCallback() { @Override public void onSliceUpdated(Slice slice) { try { // We are just making sure the existence of the slice, so ignore // slice loading state here. returnSlice[0] = slice; latch.countDown(); } catch (Exception e) { Log.w(TAG, uri + " cannot be indexed", e); } finally { manager.unregisterSliceCallback(uri, this); } } }; // Register a callback until we get a loaded slice. manager.registerSliceCallback(uri, callback); // Trigger the binding. callback.onSliceUpdated(manager.bindSlice(uri)); try { latch.await(LATCH_TIMEOUT_MS, TimeUnit.MILLISECONDS); } catch (InterruptedException e) { Log.w(TAG, "Error waiting for slice binding for uri" + uri, e); manager.unregisterSliceCallback(uri, callback); } return returnSlice[0]; manager.pinSlice(uri); final Slice slice = manager.bindSlice(uri); manager.unpinSlice(uri); return slice; } @VisibleForTesting Loading
tests/robotests/src/com/android/settings/homepage/contextualcards/EligibleCardCheckerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -77,9 +77,9 @@ public class EligibleCardCheckerTest { @Test public void isCardEligibleToDisplay_invalidScheme_returnFalse() { final Uri sliceUri = Uri.parse("contet://com.android.settings.slices/action/flashlight"); final Uri invalidUri = Uri.parse("contet://com.android.settings.slices/action/flashlight"); assertThat(mEligibleCardChecker.isCardEligibleToDisplay(getContextualCard(sliceUri))) assertThat(mEligibleCardChecker.isCardEligibleToDisplay(getContextualCard(invalidUri))) .isFalse(); } Loading
tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -86,10 +86,10 @@ public class SliceContextualCardRendererTest { @Test public void bindView_invalidScheme_sliceShouldBeNull() { final Uri sliceUri = Uri.parse("contet://com.android.settings.slices/action/flashlight"); final Uri invalidUri = Uri.parse("contet://com.android.settings.slices/action/flashlight"); final RecyclerView.ViewHolder viewHolder = getSliceViewHolder(); mRenderer.bindView(viewHolder, buildContextualCard(sliceUri)); mRenderer.bindView(viewHolder, buildContextualCard(invalidUri)); assertThat( ((SliceFullCardRendererHelper.SliceViewHolder) viewHolder).sliceView.getSlice()) Loading