Loading src/com/android/settings/dashboard/DashboardData.java +10 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.dashboard; import android.annotation.IntDef; import android.support.annotation.Nullable; import android.support.v7.util.DiffUtil; import android.text.TextUtils; import com.android.settings.dashboard.conditional.Condition; Loading Loading @@ -350,6 +351,15 @@ public class DashboardData { public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { return mOldItems.get(oldItemPosition).equals(mNewItems.get(newItemPosition)); } @Nullable @Override public Object getChangePayload(int oldItemPosition, int newItemPosition) { if (mOldItems.get(oldItemPosition).type == Item.TYPE_CONDITION_CARD) { return "condition"; // return anything but null to mark the payload } return null; } } /** Loading tests/robotests/src/com/android/settings/dashboard/DashboardDataTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,31 @@ public class DashboardDataTest { testDiffUtil(mDashboardDataWithOneConditions, mDashboardDataWithNoItems, testResultData); } @Test public void testPayload_ItemConditionCard_returnNotNull() { final DashboardData.ItemsDataDiffCallback callback = new DashboardData .ItemsDataDiffCallback( mDashboardDataWithOneConditions.getItemList(), mDashboardDataWithOneConditions.getItemList()); // Item in position 0 is condition card, which payload should not be null assertThat(callback.getChangePayload(0, 0)).isNotEqualTo(null); } @Test public void testPayload_ItemNotConditionCard_returnNull() { final DashboardData.ItemsDataDiffCallback callback = new DashboardData .ItemsDataDiffCallback( mDashboardDataWithOneConditions.getItemList(), mDashboardDataWithOneConditions.getItemList()); // Only item in position 0 is condition card, so others' payload should be null for (int i = 1; i < mDashboardDataWithOneConditions.getItemList().size(); i++) { assertThat(callback.getChangePayload(i, i)).isEqualTo(null); } } /** * Test when using the * {@link com.android.settings.dashboard.DashboardData.ItemsDataDiffCallback} Loading Loading
src/com/android/settings/dashboard/DashboardData.java +10 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.dashboard; import android.annotation.IntDef; import android.support.annotation.Nullable; import android.support.v7.util.DiffUtil; import android.text.TextUtils; import com.android.settings.dashboard.conditional.Condition; Loading Loading @@ -350,6 +351,15 @@ public class DashboardData { public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { return mOldItems.get(oldItemPosition).equals(mNewItems.get(newItemPosition)); } @Nullable @Override public Object getChangePayload(int oldItemPosition, int newItemPosition) { if (mOldItems.get(oldItemPosition).type == Item.TYPE_CONDITION_CARD) { return "condition"; // return anything but null to mark the payload } return null; } } /** Loading
tests/robotests/src/com/android/settings/dashboard/DashboardDataTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -196,6 +196,31 @@ public class DashboardDataTest { testDiffUtil(mDashboardDataWithOneConditions, mDashboardDataWithNoItems, testResultData); } @Test public void testPayload_ItemConditionCard_returnNotNull() { final DashboardData.ItemsDataDiffCallback callback = new DashboardData .ItemsDataDiffCallback( mDashboardDataWithOneConditions.getItemList(), mDashboardDataWithOneConditions.getItemList()); // Item in position 0 is condition card, which payload should not be null assertThat(callback.getChangePayload(0, 0)).isNotEqualTo(null); } @Test public void testPayload_ItemNotConditionCard_returnNull() { final DashboardData.ItemsDataDiffCallback callback = new DashboardData .ItemsDataDiffCallback( mDashboardDataWithOneConditions.getItemList(), mDashboardDataWithOneConditions.getItemList()); // Only item in position 0 is condition card, so others' payload should be null for (int i = 1; i < mDashboardDataWithOneConditions.getItemList().size(); i++) { assertThat(callback.getChangePayload(i, i)).isEqualTo(null); } } /** * Test when using the * {@link com.android.settings.dashboard.DashboardData.ItemsDataDiffCallback} Loading