summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
diff options
context:
space:
mode:
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java')
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java47
1 files changed, 40 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
index 416fb36..ed49f39 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
@@ -91,6 +91,7 @@ public class NavigationBarView extends LinearLayout {
private OnVerticalChangedListener mOnVerticalChangedListener;
private boolean mIsLayoutRtl;
+ private boolean mLayoutTransitionsEnabled;
private class NavTransitionListener implements TransitionListener {
private boolean mBackTransitioning;
@@ -333,13 +334,6 @@ public class NavigationBarView extends LinearLayout {
if (!lt.getTransitionListeners().contains(mTransitionListener)) {
lt.addTransitionListener(mTransitionListener);
}
- if (!mScreenOn && mCurrentView != null) {
- lt.disableTransitionType(
- LayoutTransition.CHANGE_APPEARING |
- LayoutTransition.CHANGE_DISAPPEARING |
- LayoutTransition.APPEARING |
- LayoutTransition.DISAPPEARING);
- }
}
}
if (inLockTask() && disableRecent && !disableHome) {
@@ -367,6 +361,44 @@ public class NavigationBarView extends LinearLayout {
}
}
+ public void setWakeAndUnlocking(boolean wakeAndUnlocking) {
+ setUseFadingAnimations(wakeAndUnlocking);
+ setLayoutTransitionsEnabled(!wakeAndUnlocking);
+ }
+
+ private void setLayoutTransitionsEnabled(boolean enabled) {
+ mLayoutTransitionsEnabled = enabled;
+ ViewGroup navButtons = (ViewGroup) mCurrentView.findViewById(R.id.nav_buttons);
+ LayoutTransition lt = navButtons.getLayoutTransition();
+ if (enabled) {
+ lt.enableTransitionType(LayoutTransition.APPEARING);
+ lt.enableTransitionType(LayoutTransition.DISAPPEARING);
+ lt.enableTransitionType(LayoutTransition.CHANGE_APPEARING);
+ lt.enableTransitionType(LayoutTransition.CHANGE_DISAPPEARING);
+ } else {
+ lt.disableTransitionType(LayoutTransition.APPEARING);
+ lt.disableTransitionType(LayoutTransition.DISAPPEARING);
+ lt.disableTransitionType(LayoutTransition.CHANGE_APPEARING);
+ lt.disableTransitionType(LayoutTransition.CHANGE_DISAPPEARING);
+ }
+ }
+
+ private void setUseFadingAnimations(boolean useFadingAnimations) {
+ WindowManager.LayoutParams lp = (WindowManager.LayoutParams) getLayoutParams();
+ if (lp != null) {
+ boolean old = lp.windowAnimations != 0;
+ if (!old && useFadingAnimations) {
+ lp.windowAnimations = R.style.Animation_NavigationBarFadeIn;
+ } else if (old && !useFadingAnimations) {
+ lp.windowAnimations = 0;
+ } else {
+ return;
+ }
+ WindowManager wm = (WindowManager)getContext().getSystemService(Context.WINDOW_SERVICE);
+ wm.updateViewLayout(this, lp);
+ }
+ }
+
public void setSlippery(boolean newSlippery) {
WindowManager.LayoutParams lp = (WindowManager.LayoutParams) getLayoutParams();
if (lp != null) {
@@ -425,6 +457,7 @@ public class NavigationBarView extends LinearLayout {
}
mCurrentView = mRotatedViews[rot];
mCurrentView.setVisibility(View.VISIBLE);
+ setLayoutTransitionsEnabled(mLayoutTransitionsEnabled);
getImeSwitchButton().setOnClickListener(mImeSwitcherClickListener);