From e5c1edb31bb94c1370bb71dca51a371c1547dbe1 Mon Sep 17 00:00:00 2001 From: Alex Chau Date: Tue, 31 Jan 2023 19:23:27 +0000 Subject: [PATCH] Clear PredictorState targets when it's re-registered - After SUW, registerPredictor is called for hotseat, and then BaseLauncherBinder will call bindExtraContainerItems with empty items. A subsequent registerPredictor will then be triggered by LoadTask, but handleUpdate will skip the update due to no diff in PredictorState targets. As a result, HotseatPredictionController always have no items after SUW - Clearing PredictorState when it's re-registerted will allow the respective prediction controller to receive new prediction items that comes with the registration. Fix: 265340241 Test: Factory reset, pass SUW, prediction items are in hotseat Test: Reboot, prediction items are in hotseat Change-Id: Ie6e219028e7fde42854459d34806a04052dc41ba --- .../src/com/android/launcher3/model/QuickstepModelDelegate.java | 1 + 1 file changed, 1 insertion(+) diff --git a/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java b/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java index 118cfc6620..ad6ce7dbd2 100644 --- a/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java +++ b/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java @@ -306,6 +306,7 @@ public class QuickstepModelDelegate extends ModelDelegate { } private void registerPredictor(PredictorState state, AppPredictor predictor) { + state.setTargets(Collections.emptyList()); state.predictor = predictor; state.predictor.registerPredictionUpdates( MODEL_EXECUTOR, t -> handleUpdate(state, t));