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

Commit e98eabfc authored by Winson Chung's avatar Winson Chung Committed by android-build-merger
Browse files

Merge "Disable color sampling while navigation bar is hidden" into qt-dev am:...

Merge "Disable color sampling while navigation bar is hidden" into qt-dev am: 0eefbef6 am: 8ad0f360
am: d160a044

Change-Id: Ibcc3792958c82d54d8c5f779994798a4b2da7b8a
parents ba93bf27 d160a044
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ public class NavBarTintController implements View.OnAttachStateChangeListener,
    private final NavigationBarView mNavigationBarView;
    private final LightBarTransitionsController mLightBarController;
    private int mNavBarMode = NAV_BAR_MODE_3BUTTON;
    private boolean mWindowVisible;

    private final CompositionSamplingListener mSamplingListener;
    private final Runnable mUpdateSamplingListener = this::updateSamplingListener;
@@ -148,7 +149,7 @@ public class NavBarTintController implements View.OnAttachStateChangeListener,
            mSamplingListenerRegistered = false;
            CompositionSamplingListener.unregister(mSamplingListener);
        }
        if (mSamplingEnabled && !mSamplingBounds.isEmpty()
        if (mSamplingEnabled && mWindowVisible && !mSamplingBounds.isEmpty()
                && mNavigationBarView.isAttachedToWindow()) {
            if (!mNavigationBarView.getViewRootImpl().getSurfaceControl().isValid()) {
                // The view may still be attached, but the surface backing the window can be
@@ -180,6 +181,11 @@ public class NavBarTintController implements View.OnAttachStateChangeListener,
        }
    }

    public void setWindowVisible(boolean visible) {
        mWindowVisible = visible;
        requestUpdateSamplingListener();
    }

    public void onNavigationModeChanged(int mode) {
        mNavBarMode = mode;
    }
@@ -194,6 +200,7 @@ public class NavBarTintController implements View.OnAttachStateChangeListener,
        pw.println("  mSamplingBounds: " + mSamplingBounds);
        pw.println("  mLastMedianLuma: " + mLastMedianLuma);
        pw.println("  mCurrentMedianLuma: " + mCurrentMedianLuma);
        pw.println("  mWindowVisible: " + mWindowVisible);
    }

    public static boolean isEnabled(Context context, int navBarMode) {
+2 −2
Original line number Diff line number Diff line
@@ -322,6 +322,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
            mNavigationBarView.getLightTransitionsController().restoreState(savedInstanceState);
        }
        mNavigationBarView.setNavigationIconHints(mNavigationIconHints);
        mNavigationBarView.setWindowVisible(isNavBarWindowVisible());

        prepareNavigationBarView();
        checkNavBarModes();
@@ -467,8 +468,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
            if (DEBUG_WINDOW_STATE) Log.d(TAG, "Navigation bar " + windowStateToString(state));

            updateSystemUiStateFlags(-1);
            mNavigationBarView.getRotationButtonController().onNavigationBarWindowVisibilityChange(
                    isNavBarWindowVisible());
            mNavigationBarView.setWindowVisible(isNavBarWindowVisible());
        }
    }

+5 −0
Original line number Diff line number Diff line
@@ -533,6 +533,11 @@ public class NavigationBarView extends FrameLayout implements
        return KeyButtonDrawable.create(mContext, icon, hasShadow);
    }

    public void setWindowVisible(boolean visible) {
        mTintController.setWindowVisible(visible);
        mRotationButtonController.onNavigationBarWindowVisibilityChange(visible);
    }

    @Override
    public void setLayoutDirection(int layoutDirection) {
        reloadNavIcons();