Merge "Disable color sampling while navigation bar is hidden" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
0eefbef6bb
@@ -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) {
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user