mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 18:58:19 +00:00
All apps memory leak fix / unregister data observer
Bug: 197702957 Test: adb shell dumpsys meminfo com.google.android.apps.nexuslauncher, ahat Change-Id: Ia5732cced959e4a199d9c2b59f1f3941a2e23552
This commit is contained in:
@@ -499,8 +499,10 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo
|
||||
|
||||
private void replaceRVContainer(boolean showTabs) {
|
||||
for (int i = 0; i < mAH.length; i++) {
|
||||
if (mAH[i].recyclerView != null) {
|
||||
mAH[i].recyclerView.setLayoutManager(null);
|
||||
AllAppsRecyclerView rv = mAH[i].recyclerView;
|
||||
if (rv != null) {
|
||||
rv.setLayoutManager(null);
|
||||
rv.setAdapter(null);
|
||||
}
|
||||
}
|
||||
View oldView = getRecyclerViewContainer();
|
||||
|
||||
@@ -63,6 +63,13 @@ public class AllAppsRecyclerView extends BaseRecyclerView {
|
||||
private final SparseIntArray mCachedScrollPositions = new SparseIntArray();
|
||||
private final AllAppsFastScrollHelper mFastScrollHelper;
|
||||
|
||||
|
||||
private final AdapterDataObserver mObserver = new RecyclerView.AdapterDataObserver() {
|
||||
public void onChanged() {
|
||||
mCachedScrollPositions.clear();
|
||||
}
|
||||
};
|
||||
|
||||
// The empty-search result background
|
||||
private AllAppsBackgroundDrawable mEmptySearchBackground;
|
||||
private int mEmptySearchBackgroundTopOffset;
|
||||
@@ -247,12 +254,13 @@ public class AllAppsRecyclerView extends BaseRecyclerView {
|
||||
|
||||
@Override
|
||||
public void setAdapter(Adapter adapter) {
|
||||
if (getAdapter() != null) {
|
||||
getAdapter().unregisterAdapterDataObserver(mObserver);
|
||||
}
|
||||
super.setAdapter(adapter);
|
||||
adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
|
||||
public void onChanged() {
|
||||
mCachedScrollPositions.clear();
|
||||
}
|
||||
});
|
||||
if (adapter != null) {
|
||||
adapter.registerAdapterDataObserver(mObserver);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user