Merge "Add the DefaultItemAnimator, without change animations" into sc-dev am: d9abe11b92

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/14736372

Change-Id: I0766916ab75b02e9f83438a0de04db335daeb367
This commit is contained in:
Stevie Kideckel
2021-05-26 22:22:45 +00:00
committed by Automerger Merge Worker
@@ -41,6 +41,7 @@ import android.widget.TextView;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.android.launcher3.DeviceProfile; import com.android.launcher3.DeviceProfile;
@@ -677,6 +678,7 @@ public class WidgetsFullSheet extends BaseWidgetSheet
private final int mAdapterType; private final int mAdapterType;
private final WidgetsListAdapter mWidgetsListAdapter; private final WidgetsListAdapter mWidgetsListAdapter;
private final DefaultItemAnimator mWidgetsListItemAnimator;
private WidgetsRecyclerView mWidgetsRecyclerView; private WidgetsRecyclerView mWidgetsRecyclerView;
@@ -703,13 +705,16 @@ public class WidgetsFullSheet extends BaseWidgetSheet
default: default:
break; break;
} }
mWidgetsListItemAnimator = new DefaultItemAnimator();
// Disable change animations because it disrupts the item focus upon adapter item
// change.
mWidgetsListItemAnimator.setSupportsChangeAnimations(false);
} }
void setup(WidgetsRecyclerView recyclerView) { void setup(WidgetsRecyclerView recyclerView) {
mWidgetsRecyclerView = recyclerView; mWidgetsRecyclerView = recyclerView;
mWidgetsRecyclerView.setAdapter(mWidgetsListAdapter); mWidgetsRecyclerView.setAdapter(mWidgetsListAdapter);
// Disables animation because it disrupts the item focus upon adapter item change. mWidgetsRecyclerView.setItemAnimator(mWidgetsListItemAnimator);
mWidgetsRecyclerView.setItemAnimator(null);
mWidgetsRecyclerView.setHeaderViewDimensionsProvider(WidgetsFullSheet.this); mWidgetsRecyclerView.setHeaderViewDimensionsProvider(WidgetsFullSheet.this);
mWidgetsRecyclerView.setEdgeEffectFactory( mWidgetsRecyclerView.setEdgeEffectFactory(
((TopRoundedCornerView) mContent).createEdgeEffectFactory()); ((TopRoundedCornerView) mContent).createEdgeEffectFactory());