Fix issue with alphas not being applied to the same view on unlock
- It's possible for the nav bar configuration to change between locking and unlocking the phone, which will prevent the alpha from being restored on the bar layout correctly. This change updates the alpha of both vertical/horizontal layouts in NavBarView since they should always be in sync. Bug: 206733387 Test: atest SystemUITests Test: Lock screen in landscape app, turn screen on and unlock Change-Id: I265d04e6e2192f2bb57b1f8d77390664236427fc
This commit is contained in:
@@ -110,6 +110,7 @@ public class NavigationBarView extends FrameLayout implements
|
||||
private final int mNavColorSampleMargin;
|
||||
private final SysUiState mSysUiFlagContainer;
|
||||
|
||||
// The current view is one of mHorizontal or mVertical depending on the current configuration
|
||||
View mCurrentView = null;
|
||||
private View mVertical;
|
||||
private View mHorizontal;
|
||||
@@ -397,12 +398,6 @@ public class NavigationBarView extends FrameLayout implements
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean onSetAlpha(int alpha) {
|
||||
Log.e(TAG, "onSetAlpha", new Throwable());
|
||||
return super.onSetAlpha(alpha);
|
||||
}
|
||||
|
||||
public void setAutoHideController(AutoHideController autoHideController) {
|
||||
mAutoHideController = autoHideController;
|
||||
}
|
||||
@@ -505,6 +500,18 @@ public class NavigationBarView extends FrameLayout implements
|
||||
return mCurrentView;
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies {@param consumer} to each of the nav bar views.
|
||||
*/
|
||||
public void forEachView(Consumer<View> consumer) {
|
||||
if (mVertical != null) {
|
||||
consumer.accept(mVertical);
|
||||
}
|
||||
if (mHorizontal != null) {
|
||||
consumer.accept(mHorizontal);
|
||||
}
|
||||
}
|
||||
|
||||
public RotationButtonController getRotationButtonController() {
|
||||
return mRotationButtonController;
|
||||
}
|
||||
|
||||
@@ -555,12 +555,13 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
|
||||
public void onStartedWakingUp() {
|
||||
mStatusBar.getNotificationShadeWindowView().getWindowInsetsController()
|
||||
.setAnimationsDisabled(false);
|
||||
View currentView = getCurrentNavBarView();
|
||||
if (currentView != null) {
|
||||
currentView.animate()
|
||||
.alpha(1f)
|
||||
.setDuration(NAV_BAR_CONTENT_FADE_DURATION)
|
||||
.start();
|
||||
NavigationBarView navBarView = mStatusBar.getNavigationBarView();
|
||||
if (navBarView != null) {
|
||||
navBarView.forEachView(view ->
|
||||
view.animate()
|
||||
.alpha(1f)
|
||||
.setDuration(NAV_BAR_CONTENT_FADE_DURATION)
|
||||
.start());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,12 +569,13 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
|
||||
public void onStartedGoingToSleep() {
|
||||
mStatusBar.getNotificationShadeWindowView().getWindowInsetsController()
|
||||
.setAnimationsDisabled(true);
|
||||
View currentView = getCurrentNavBarView();
|
||||
if (currentView != null) {
|
||||
currentView.animate()
|
||||
.alpha(0f)
|
||||
.setDuration(NAV_BAR_CONTENT_FADE_DURATION)
|
||||
.start();
|
||||
NavigationBarView navBarView = mStatusBar.getNavigationBarView();
|
||||
if (navBarView != null) {
|
||||
navBarView.forEachView(view ->
|
||||
view.animate()
|
||||
.alpha(0f)
|
||||
.setDuration(NAV_BAR_CONTENT_FADE_DURATION)
|
||||
.start());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1015,17 +1017,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
|
||||
mStatusBar.onKeyguardViewManagerStatesUpdated();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the visibility of the nav bar content views.
|
||||
*/
|
||||
private void updateNavigationBarContentVisibility(boolean navBarContentVisible) {
|
||||
final NavigationBarView navBarView = mStatusBar.getNavigationBarView();
|
||||
if (navBarView != null && navBarView.getCurrentView() != null) {
|
||||
final View currentView = navBarView.getCurrentView();
|
||||
currentView.setVisibility(navBarContentVisible ? View.VISIBLE : View.INVISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
private View getCurrentNavBarView() {
|
||||
final NavigationBarView navBarView = mStatusBar.getNavigationBarView();
|
||||
return navBarView != null ? navBarView.getCurrentView() : null;
|
||||
|
||||
Reference in New Issue
Block a user