Notify visibility change if source visibility is changed
This makes view root dispatch the up-to-date WindowInsets to the app.
Fix: 166619182
Test: Steps in the bug (comment#12)
Change-Id: I8c47e3be84357f65084a7d9994f7d7b68f15611e
(cherry picked from commit fd94351305)
This commit is contained in:
@@ -113,13 +113,20 @@ public class InsetsSourceConsumer {
|
||||
InsetsState.typeToString(control.getType()),
|
||||
mController.getHost().getRootViewTitle()));
|
||||
}
|
||||
// We are loosing control
|
||||
if (mSourceControl == null) {
|
||||
// We are loosing control
|
||||
mController.notifyControlRevoked(this);
|
||||
|
||||
// Restore server visibility.
|
||||
mState.getSource(getType()).setVisible(
|
||||
mController.getLastDispatchedState().getSource(getType()).isVisible());
|
||||
// Check if we need to restore server visibility.
|
||||
final InsetsSource source = mState.getSource(mType);
|
||||
final boolean serverVisibility =
|
||||
mController.getLastDispatchedState().getSourceOrDefaultVisibility(mType);
|
||||
if (source.isVisible() != serverVisibility) {
|
||||
source.setVisible(serverVisibility);
|
||||
mController.notifyVisibilityChanged();
|
||||
}
|
||||
|
||||
// For updateCompatSysUiVisibility
|
||||
applyLocalVisibilityOverride();
|
||||
} else {
|
||||
// We are gaining control, and need to run an animation since previous state
|
||||
|
||||
Reference in New Issue
Block a user