diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/hybridhotseat/HotseatPredictionController.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/hybridhotseat/HotseatPredictionController.java
index 7a73e50..1fe3643 100644
--- a/quickstep/recents_ui_overrides/src/com/android/launcher3/hybridhotseat/HotseatPredictionController.java
+++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/hybridhotseat/HotseatPredictionController.java
@@ -274,6 +274,7 @@
         }
         if (mAppPredictor != null) {
             mAppPredictor.destroy();
+            mAppPredictor = null;
         }
         WeakReference<HotseatPredictionController> controllerRef = new WeakReference<>(this);
 
diff --git a/src/com/android/launcher3/model/PredictionModel.java b/src/com/android/launcher3/model/PredictionModel.java
index f8140eb..1429843 100644
--- a/src/com/android/launcher3/model/PredictionModel.java
+++ b/src/com/android/launcher3/model/PredictionModel.java
@@ -43,7 +43,6 @@
     private static final int MAX_CACHE_ITEMS = 5;
 
     protected Context mContext;
-    private ArrayList<ComponentKey> mCachedComponentKeys;
     private SharedPreferences mDevicePrefs;
     private UserCache mUserCache;
 
@@ -78,7 +77,6 @@
                 builder.append("\n");
             }
             mDevicePrefs.edit().putString(CACHED_ITEMS_KEY, builder.toString()).apply();
-            mCachedComponentKeys = null;
         });
     }
 
@@ -89,17 +87,16 @@
     @WorkerThread
     public List<ComponentKey> getPredictionComponentKeys() {
         Preconditions.assertWorkerThread();
-        if (mCachedComponentKeys == null) {
-            mCachedComponentKeys = new ArrayList<>();
-            String cachedBlob = mDevicePrefs.getString(CACHED_ITEMS_KEY, "");
-            for (String line : cachedBlob.split("\n")) {
-                ComponentKey key = getComponentKeyFromSerializedString(line);
-                if (key != null) {
-                    mCachedComponentKeys.add(key);
-                }
+        ArrayList<ComponentKey> items = new ArrayList<>();
+        String cachedBlob = mDevicePrefs.getString(CACHED_ITEMS_KEY, "");
+        for (String line : cachedBlob.split("\n")) {
+            ComponentKey key = getComponentKeyFromSerializedString(line);
+            if (key != null) {
+                items.add(key);
             }
+
         }
-        return mCachedComponentKeys;
+        return items;
     }
 
     private String serializeComponentKeyToString(ComponentKey componentKey) {
