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

Commit 7c500166 authored by Winson Chung's avatar Winson Chung
Browse files

Reset the static preloaded icon result once launcher is hidden

- In the case where the system does not play the requested animation
  we can still ensure that this doesn't result in a leak of the
  activity by resetting the result when launcher is hidden (which
  happens after the launch transition)

Bug: 285995223
Test: Presubmit
Test: Take heapdump after repro steps in b/285995223#comment6 and verify
      there are no lingering static icon load results

Change-Id: I1d169df158cfaab64fbe1f4ce597d8f73d86a1c1
parent 0d87c476
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1074,6 +1074,7 @@ public class Launcher extends StatefulActivity<LauncherState>
        logStopAndResume(false /* isResume */);
        mAppWidgetHolder.setActivityStarted(false);
        NotificationListener.removeNotificationsChangedListener(getPopupDataProvider());
        FloatingIconView.resetIconLoadResult();
    }

    @Override
+8 −1
Original line number Diff line number Diff line
@@ -571,6 +571,13 @@ public class FloatingIconView extends FrameLayout implements
        return result;
    }

    /**
     * Resets the static icon load result used for preloading the icon for a launching app.
     */
    public static void resetIconLoadResult() {
        sIconLoadResult = null;
    }

    /**
     * Creates a floating icon view for {@param originalView}.
     * @param originalView The view to copy
@@ -608,7 +615,7 @@ public class FloatingIconView extends FrameLayout implements
            }
            view.setOriginalDrawableBackground(view.mIconLoadResult.btvDrawable);
        }
        sIconLoadResult = null;
        resetIconLoadResult();

        // Match the position of the original view.
        view.matchPositionOf(launcher, originalView, isOpening, positionOut);