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

Commit e06f253e authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Fix nav bar leak in SystemUI" into qt-qpr1-dev am: d6e73ec8

Change-Id: I39643a2f6e7edc9af7221a295eb201cda3244534
parents 7daf421a d6e73ec8
Loading
Loading
Loading
Loading
+17 −5
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ import java.util.concurrent.Executor;
 */
public abstract class CompositionSamplingListener {

    private final long mNativeListener;
    private long mNativeListener;
    private final Executor mExecutor;

    public CompositionSamplingListener(Executor executor) {
@@ -37,13 +37,19 @@ public abstract class CompositionSamplingListener {
        mNativeListener = nativeCreate(this);
    }

    @Override
    protected void finalize() throws Throwable {
        try {
            if (mNativeListener != 0) {
    public void destroy() {
        if (mNativeListener == 0) {
            return;
        }
        unregister(this);
        nativeDestroy(mNativeListener);
        mNativeListener = 0;
    }

    @Override
    protected void finalize() throws Throwable {
        try {
            destroy();
        } finally {
            super.finalize();
        }
@@ -59,6 +65,9 @@ public abstract class CompositionSamplingListener {
     */
    public static void register(CompositionSamplingListener listener,
            int displayId, IBinder stopLayer, Rect samplingArea) {
        if (listener.mNativeListener == 0) {
            return;
        }
        Preconditions.checkArgument(displayId == Display.DEFAULT_DISPLAY,
                "default display only for now");
        nativeRegister(listener.mNativeListener, stopLayer, samplingArea.left, samplingArea.top,
@@ -69,6 +78,9 @@ public abstract class CompositionSamplingListener {
     * Unregisters a sampling listener.
     */
    public static void unregister(CompositionSamplingListener listener) {
        if (listener.mNativeListener == 0) {
            return;
        }
        nativeUnregister(listener.mNativeListener);
    }

+6 −2
Original line number Diff line number Diff line
@@ -107,6 +107,11 @@ public class NavBarTintController implements View.OnAttachStateChangeListener,
        requestUpdateSamplingListener();
    }

    void stopAndDestroy() {
        stop();
        mSamplingListener.destroy();
    }

    @Override
    public void onViewAttachedToWindow(View view) {
        requestUpdateSamplingListener();
@@ -114,8 +119,7 @@ public class NavBarTintController implements View.OnAttachStateChangeListener,

    @Override
    public void onViewDetachedFromWindow(View view) {
        // Defer calling updateSamplingListener the attach info has not yet been reset
        requestUpdateSamplingListener();
        stopAndDestroy();
    }

    @Override
+3 −0
Original line number Diff line number Diff line
@@ -137,6 +137,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
    private final MetricsLogger mMetricsLogger;
    private final DeviceProvisionedController mDeviceProvisionedController;
    private final StatusBarStateController mStatusBarStateController;
    private final NavigationModeController mNavigationModeController;

    protected NavigationBarView mNavigationBarView = null;

@@ -253,6 +254,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
        mAssistManager = assistManager;
        mAssistantAvailable = mAssistManager.getAssistInfoForUser(UserHandle.USER_CURRENT) != null;
        mOverviewProxyService = overviewProxyService;
        mNavigationModeController = navigationModeController;
        mNavBarMode = navigationModeController.addListener(this);
    }

@@ -292,6 +294,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
    @Override
    public void onDestroy() {
        super.onDestroy();
        mNavigationModeController.removeListener(this);
        mAccessibilityManagerWrapper.removeCallback(mAccessibilityListener);
        mContentResolver.unregisterContentObserver(mMagnificationObserver);
        mContentResolver.unregisterContentObserver(mAssistContentObserver);
+6 −3
Original line number Diff line number Diff line
@@ -127,6 +127,11 @@ public class RegionSamplingHelper implements View.OnAttachStateChangeListener,
        updateSamplingListener();
    }

    void stopAndDestroy() {
        stop();
        mSamplingListener.destroy();
    }

    @Override
    public void onViewAttachedToWindow(View view) {
        updateSamplingListener();
@@ -134,9 +139,7 @@ public class RegionSamplingHelper implements View.OnAttachStateChangeListener,

    @Override
    public void onViewDetachedFromWindow(View view) {
        // isAttachedToWindow is only changed after this call to the listeners, so let's post it
        // instead
        postUpdateSamplingListener();
        stopAndDestroy();
    }

    @Override