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

This commit is contained in:
TreeHugger Robot
2019-06-20 05:11:20 +00:00
committed by Android (Google) Code Review
3 changed files with 15 additions and 3 deletions

View File

@@ -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) {

View File

@@ -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());
}
}

View File

@@ -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();