Fix jank in showing conditions and suggestions in cold start.
When we first initialize the dashboard view, and register the condition listener, it will trigger the condition changed callback immediately. This results in unnecessary refresh of the dashboard header. Add check to not do the refresh when we first initialize the view. Change-Id: If7c69637463734c150b7f5eb7f3c042cf73837fa Fixes: 64811475 Test: make RunSettingsRoboTests
This commit is contained in:
@@ -36,6 +36,7 @@ import org.robolectric.annotation.Config;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.nullable;
|
||||
import static org.mockito.Mockito.any;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
@@ -90,6 +91,7 @@ public class DashboardSummaryTest {
|
||||
public void onConditionChanged_PositionAtTop_ScrollToTop() {
|
||||
when(mLayoutManager.findFirstCompletelyVisibleItemPosition()).thenReturn(1);
|
||||
mSummary.onConditionsChanged();
|
||||
mSummary.onConditionsChanged();
|
||||
verify(mDashboard).scrollToPosition(0);
|
||||
}
|
||||
|
||||
@@ -97,9 +99,23 @@ public class DashboardSummaryTest {
|
||||
public void onConditionChanged_PositionNotTop_RemainPosition() {
|
||||
when(mLayoutManager.findFirstCompletelyVisibleItemPosition()).thenReturn(2);
|
||||
mSummary.onConditionsChanged();
|
||||
mSummary.onConditionsChanged();
|
||||
verify(mDashboard, never()).scrollToPosition(0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onConditionChanged_firstCall_shouldIgnore() {
|
||||
mSummary.onConditionsChanged();
|
||||
verify(mAdapter, never()).setConditions(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onConditionChanged_secondCall_shouldSetConditionsOnAdapter() {
|
||||
mSummary.onConditionsChanged();
|
||||
mSummary.onConditionsChanged();
|
||||
verify(mAdapter).setConditions(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onCategoryChanged_noRebuildOnFirstCall() {
|
||||
doReturn(mock(Activity.class)).when(mSummary).getActivity();
|
||||
|
Reference in New Issue
Block a user