Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2149be1b authored by Jorim Jaggi's avatar Jorim Jaggi
Browse files

Fix some "leaks"

When Recents goes into the background, we should release all
references to thumbnails so things can be freed.

Test: Go Recents, go home, take heapdump
Bug: 37630958
Change-Id: I79ec994f031393cda67edd8983195e2c541f13fb
parent d8a5777b
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -622,6 +622,9 @@ public class RecentsTaskLoader {
        writer.print(prefix); writer.println(TAG);
        writer.print(prefix); writer.println("Icon Cache");
        mIconCache.dump(innerPrefix, writer);
        writer.print(prefix); writer.println("Thumbnail Cache");
        mThumbnailCache.dump(innerPrefix, writer);
        writer.print(prefix); writer.println("Temp Thumbnail Cache");
        mTempCache.dump(innerPrefix, writer);
    }
}
+14 −0
Original line number Diff line number Diff line
@@ -1711,6 +1711,13 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal
        }
    }

    private void clearPrefetchingTask() {
        if (mPrefetchingTask != null) {
            Recents.getTaskLoader().unloadTaskData(mPrefetchingTask);
        }
        mPrefetchingTask = null;
    }

    /**** TaskViewCallbacks Implementation ****/

    @Override
@@ -2201,6 +2208,13 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal
        if (!event.visible && mTaskViewFocusFrame != null) {
            mTaskViewFocusFrame.moveGridTaskViewFocus(null);
        }
        if (!event.visible) {
            List<TaskView> taskViews = new ArrayList<>(getTaskViews());
            for (int i = 0; i < taskViews.size(); i++) {
                mViewPool.returnViewToPool(taskViews.get(i));
            }
            clearPrefetchingTask();
        }
    }

    public void reloadOnConfigurationChange() {