Merge changes I2769bc3f,I20171f31 into tm-dev am: 4d72ee1293 am: 9339046dae
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18247037 Change-Id: I3ba8b0181ffe05bdefd69921aeca1e603b1e3c86 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -168,6 +168,7 @@ public class NavigationBarInflaterView extends FrameLayout
|
||||
|
||||
public void setButtonDispatchers(SparseArray<ButtonDispatcher> buttonDispatchers) {
|
||||
mButtonDispatchers = buttonDispatchers;
|
||||
clearDispatcherViews();
|
||||
for (int i = 0; i < buttonDispatchers.size(); i++) {
|
||||
initiallyFill(buttonDispatchers.valueAt(i));
|
||||
}
|
||||
@@ -454,12 +455,16 @@ public class NavigationBarInflaterView extends FrameLayout
|
||||
}
|
||||
}
|
||||
|
||||
private void clearViews() {
|
||||
private void clearDispatcherViews() {
|
||||
if (mButtonDispatchers != null) {
|
||||
for (int i = 0; i < mButtonDispatchers.size(); i++) {
|
||||
mButtonDispatchers.valueAt(i).clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void clearViews() {
|
||||
clearDispatcherViews();
|
||||
clearAllChildren(mHorizontal.findViewById(R.id.nav_buttons));
|
||||
clearAllChildren(mVertical.findViewById(R.id.nav_buttons));
|
||||
}
|
||||
|
||||
@@ -301,7 +301,7 @@ public class NavigationBarView extends FrameLayout {
|
||||
R.drawable.ic_sysbar_rotate_button_ccw_start_90,
|
||||
R.drawable.ic_sysbar_rotate_button_cw_start_0,
|
||||
R.drawable.ic_sysbar_rotate_button_cw_start_90,
|
||||
() -> getDisplay().getRotation());
|
||||
() -> mCurrentRotation);
|
||||
|
||||
mConfiguration = new Configuration();
|
||||
mTmpLastConfiguration = new Configuration();
|
||||
@@ -473,6 +473,7 @@ public class NavigationBarView extends FrameLayout {
|
||||
mRotationButtonController.setRotationButton(mRotationContextButton,
|
||||
mRotationButtonListener);
|
||||
}
|
||||
mNavigationInflaterView.setButtonDispatchers(mButtonDispatchers);
|
||||
}
|
||||
|
||||
public KeyButtonDrawable getBackDrawable() {
|
||||
@@ -876,15 +877,27 @@ public class NavigationBarView extends FrameLayout {
|
||||
return mCurrentRotation != rotation;
|
||||
}
|
||||
|
||||
private void updateCurrentRotation() {
|
||||
final int rotation = mConfiguration.windowConfiguration.getDisplayRotation();
|
||||
if (mCurrentRotation == rotation) {
|
||||
return;
|
||||
}
|
||||
mCurrentRotation = rotation;
|
||||
mNavigationInflaterView.setAlternativeOrder(mCurrentRotation == Surface.ROTATION_90);
|
||||
mDeadZone.onConfigurationChanged(mCurrentRotation);
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "updateCurrentRotation(): rot=" + mCurrentRotation);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateCurrentView() {
|
||||
resetViews();
|
||||
mCurrentView = mIsVertical ? mVertical : mHorizontal;
|
||||
mCurrentView.setVisibility(View.VISIBLE);
|
||||
mNavigationInflaterView.setVertical(mIsVertical);
|
||||
mCurrentRotation = getContextDisplay().getRotation();
|
||||
mNavigationInflaterView.setAlternativeOrder(mCurrentRotation == Surface.ROTATION_90);
|
||||
mNavigationInflaterView.updateButtonDispatchersCurrentView();
|
||||
updateLayoutTransitionsEnabled();
|
||||
updateCurrentRotation();
|
||||
}
|
||||
|
||||
private void resetViews() {
|
||||
@@ -917,17 +930,11 @@ public class NavigationBarView extends FrameLayout {
|
||||
|
||||
public void reorient() {
|
||||
updateCurrentView();
|
||||
|
||||
((NavigationBarFrame) getRootView()).setDeadZone(mDeadZone);
|
||||
mDeadZone.onConfigurationChanged(mCurrentRotation);
|
||||
|
||||
// force the low profile & disabled states into compliance
|
||||
mBarTransitions.init();
|
||||
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "reorient(): rot=" + mCurrentRotation);
|
||||
}
|
||||
|
||||
// Resolve layout direction if not resolved since components changing layout direction such
|
||||
// as changing languages will recreate this view and the direction will be resolved later
|
||||
if (!isLayoutDirectionResolved()) {
|
||||
@@ -998,6 +1005,7 @@ public class NavigationBarView extends FrameLayout {
|
||||
boolean uiCarModeChanged = updateCarMode();
|
||||
updateIcons(mTmpLastConfiguration);
|
||||
updateRecentsIcon();
|
||||
updateCurrentRotation();
|
||||
mEdgeBackGestureHandler.onConfigurationChanged(mConfiguration);
|
||||
if (uiCarModeChanged || mTmpLastConfiguration.densityDpi != mConfiguration.densityDpi
|
||||
|| mTmpLastConfiguration.getLayoutDirection() != mConfiguration.getLayoutDirection()) {
|
||||
|
||||
Reference in New Issue
Block a user