Fix NPE in LauncherPreviewRenderer.
The LauncherBinder is null in LauncherPreviewRenderer, which was
causing an NPE in LoaderTask.
Bug: 279347305
Test: Used logs to verify that the LauncherPreviewRenderer was actually
loading using the LoaderTask. Most of the time, it does not, so that is
why I didn't catch this before pushing it.
Change-Id: Ic5b45abfdeb73a4bbe1f521ae4d627b6cfcfec54
diff --git a/src/com/android/launcher3/graphics/PreviewSurfaceRenderer.java b/src/com/android/launcher3/graphics/PreviewSurfaceRenderer.java
index 8f0b8ec..e89c0c5 100644
--- a/src/com/android/launcher3/graphics/PreviewSurfaceRenderer.java
+++ b/src/com/android/launcher3/graphics/PreviewSurfaceRenderer.java
@@ -51,7 +51,9 @@
import com.android.launcher3.Workspace;
import com.android.launcher3.graphics.LauncherPreviewRenderer.PreviewContext;
import com.android.launcher3.model.BgDataModel;
+import com.android.launcher3.model.BgDataModel.Callbacks;
import com.android.launcher3.model.GridSizeMigrationUtil;
+import com.android.launcher3.model.LauncherBinder;
import com.android.launcher3.model.LoaderTask;
import com.android.launcher3.model.ModelDbController;
import com.android.launcher3.provider.LauncherDbUtils;
@@ -226,12 +228,14 @@
LauncherAppState.getInstance(previewContext)
.getModel().getModelDbController().clearEmptyDbFlag();
+ BgDataModel bgModel = new BgDataModel();
new LoaderTask(
LauncherAppState.getInstance(previewContext),
/* bgAllAppsList= */ null,
- new BgDataModel(),
+ bgModel,
LauncherAppState.getInstance(previewContext).getModel().getModelDelegate(),
- /* results= */ null) {
+ new LauncherBinder(LauncherAppState.getInstance(previewContext), bgModel,
+ /* bgAllAppsList= */ null, new Callbacks[0])) {
@Override
public void run() {
diff --git a/src/com/android/launcher3/model/LoaderTask.java b/src/com/android/launcher3/model/LoaderTask.java
index d4eded5..1a8cf24 100644
--- a/src/com/android/launcher3/model/LoaderTask.java
+++ b/src/com/android/launcher3/model/LoaderTask.java
@@ -51,6 +51,7 @@
import android.util.Log;
import android.util.LongSparseArray;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.android.launcher3.DeviceProfile;
@@ -118,6 +119,7 @@
private static final boolean DEBUG = true;
+ @NonNull
protected final LauncherAppState mApp;
private final AllAppsList mBgAllAppsList;
protected final BgDataModel mBgDataModel;
@@ -125,6 +127,7 @@
private FirstScreenBroadcast mFirstScreenBroadcast;
+ @NonNull
private final LauncherBinder mLauncherBinder;
private final LauncherApps mLauncherApps;
@@ -145,11 +148,11 @@
private boolean mItemsDeleted = false;
private String mDbName;
- public LoaderTask(LauncherAppState app, AllAppsList bgAllAppsList, BgDataModel dataModel,
- ModelDelegate modelDelegate, LauncherBinder launcherBinder) {
+ public LoaderTask(@NonNull LauncherAppState app, AllAppsList bgAllAppsList, BgDataModel bgModel,
+ ModelDelegate modelDelegate, @NonNull LauncherBinder launcherBinder) {
mApp = app;
mBgAllAppsList = bgAllAppsList;
- mBgDataModel = dataModel;
+ mBgDataModel = bgModel;
mModelDelegate = modelDelegate;
mLauncherBinder = launcherBinder;