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 NavigationBarView mNavigationBarView;
|
||||||
private final LightBarTransitionsController mLightBarController;
|
private final LightBarTransitionsController mLightBarController;
|
||||||
private int mNavBarMode = NAV_BAR_MODE_3BUTTON;
|
private int mNavBarMode = NAV_BAR_MODE_3BUTTON;
|
||||||
|
private boolean mWindowVisible;
|
||||||
|
|
||||||
private final CompositionSamplingListener mSamplingListener;
|
private final CompositionSamplingListener mSamplingListener;
|
||||||
private final Runnable mUpdateSamplingListener = this::updateSamplingListener;
|
private final Runnable mUpdateSamplingListener = this::updateSamplingListener;
|
||||||
@@ -148,7 +149,7 @@ public class NavBarTintController implements View.OnAttachStateChangeListener,
|
|||||||
mSamplingListenerRegistered = false;
|
mSamplingListenerRegistered = false;
|
||||||
CompositionSamplingListener.unregister(mSamplingListener);
|
CompositionSamplingListener.unregister(mSamplingListener);
|
||||||
}
|
}
|
||||||
if (mSamplingEnabled && !mSamplingBounds.isEmpty()
|
if (mSamplingEnabled && mWindowVisible && !mSamplingBounds.isEmpty()
|
||||||
&& mNavigationBarView.isAttachedToWindow()) {
|
&& mNavigationBarView.isAttachedToWindow()) {
|
||||||
if (!mNavigationBarView.getViewRootImpl().getSurfaceControl().isValid()) {
|
if (!mNavigationBarView.getViewRootImpl().getSurfaceControl().isValid()) {
|
||||||
// The view may still be attached, but the surface backing the window can be
|
// 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) {
|
public void onNavigationModeChanged(int mode) {
|
||||||
mNavBarMode = mode;
|
mNavBarMode = mode;
|
||||||
}
|
}
|
||||||
@@ -194,6 +200,7 @@ public class NavBarTintController implements View.OnAttachStateChangeListener,
|
|||||||
pw.println(" mSamplingBounds: " + mSamplingBounds);
|
pw.println(" mSamplingBounds: " + mSamplingBounds);
|
||||||
pw.println(" mLastMedianLuma: " + mLastMedianLuma);
|
pw.println(" mLastMedianLuma: " + mLastMedianLuma);
|
||||||
pw.println(" mCurrentMedianLuma: " + mCurrentMedianLuma);
|
pw.println(" mCurrentMedianLuma: " + mCurrentMedianLuma);
|
||||||
|
pw.println(" mWindowVisible: " + mWindowVisible);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isEnabled(Context context, int navBarMode) {
|
public static boolean isEnabled(Context context, int navBarMode) {
|
||||||
|
|||||||
@@ -322,6 +322,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
|
|||||||
mNavigationBarView.getLightTransitionsController().restoreState(savedInstanceState);
|
mNavigationBarView.getLightTransitionsController().restoreState(savedInstanceState);
|
||||||
}
|
}
|
||||||
mNavigationBarView.setNavigationIconHints(mNavigationIconHints);
|
mNavigationBarView.setNavigationIconHints(mNavigationIconHints);
|
||||||
|
mNavigationBarView.setWindowVisible(isNavBarWindowVisible());
|
||||||
|
|
||||||
prepareNavigationBarView();
|
prepareNavigationBarView();
|
||||||
checkNavBarModes();
|
checkNavBarModes();
|
||||||
@@ -467,8 +468,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
|
|||||||
if (DEBUG_WINDOW_STATE) Log.d(TAG, "Navigation bar " + windowStateToString(state));
|
if (DEBUG_WINDOW_STATE) Log.d(TAG, "Navigation bar " + windowStateToString(state));
|
||||||
|
|
||||||
updateSystemUiStateFlags(-1);
|
updateSystemUiStateFlags(-1);
|
||||||
mNavigationBarView.getRotationButtonController().onNavigationBarWindowVisibilityChange(
|
mNavigationBarView.setWindowVisible(isNavBarWindowVisible());
|
||||||
isNavBarWindowVisible());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -533,6 +533,11 @@ public class NavigationBarView extends FrameLayout implements
|
|||||||
return KeyButtonDrawable.create(mContext, icon, hasShadow);
|
return KeyButtonDrawable.create(mContext, icon, hasShadow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setWindowVisible(boolean visible) {
|
||||||
|
mTintController.setWindowVisible(visible);
|
||||||
|
mRotationButtonController.onNavigationBarWindowVisibilityChange(visible);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLayoutDirection(int layoutDirection) {
|
public void setLayoutDirection(int layoutDirection) {
|
||||||
reloadNavIcons();
|
reloadNavIcons();
|
||||||
|
|||||||
Reference in New Issue
Block a user