Deference mAppPredictor on destroy

+ Also remove PredictionModel.mCachedComponentKeys

Bug: 156747920
Bug: 156041043
Test: Manual

Change-Id: I56dac1c6ac0a1bb93363342006232fc1ba42a3b4
This commit is contained in:
Samuel Fufa 2020-05-15 11:01:06 -07:00
parent e241f6c243
commit 4dd6ab3ca1
2 changed files with 9 additions and 11 deletions

View File

@ -274,6 +274,7 @@ public class HotseatPredictionController implements DragController.DragListener,
}
if (mAppPredictor != null) {
mAppPredictor.destroy();
mAppPredictor = null;
}
WeakReference<HotseatPredictionController> controllerRef = new WeakReference<>(this);

View File

@ -43,7 +43,6 @@ public class PredictionModel implements ResourceBasedOverride {
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 @@ public class PredictionModel implements ResourceBasedOverride {
builder.append("\n");
}
mDevicePrefs.edit().putString(CACHED_ITEMS_KEY, builder.toString()).apply();
mCachedComponentKeys = null;
});
}
@ -89,17 +87,16 @@ public class PredictionModel implements ResourceBasedOverride {
@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) {