From 8d4e99fe8b97360b824aeefbf96b840d7aadcc9a Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Thu, 25 May 2017 18:03:58 -0700 Subject: AmbientIndication: Move into container This allows fixing the following bugs: - ambient indication should be hidden outside keyguard - ambient indication should animate with the unlock hint - ambient indication should fade out when unlocking Fixes: 38289189 Test: observe that the things above are working correctly Change-Id: I34aff69bb5621a3f12c25e87eac6a89c8c7e2165 --- .../SystemUI/res/layout/status_bar_expanded.xml | 3 +- .../statusbar/phone/NotificationPanelView.java | 4 +++ .../systemui/statusbar/phone/PanelView.java | 35 ++++++++++++---------- .../systemui/statusbar/phone/StatusBar.java | 16 ++++++++++ 4 files changed, 42 insertions(+), 16 deletions(-) diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml index 8db00b0218bf..07a9a60a9ea7 100644 --- a/packages/SystemUI/res/layout/status_bar_expanded.xml +++ b/packages/SystemUI/res/layout/status_bar_expanded.xml @@ -56,7 +56,8 @@ android:layout_gravity="@integer/notification_panel_layout_gravity" android:layout_marginBottom="@dimen/close_handle_underlap" /> - + v.animate() + .translationY(0) + .setDuration(450) + .setInterpolator(mBounceInterpolator) + .start()) + .start(); + } } /** diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 923993a601f7..ae8f46f2e0f8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -36,6 +36,7 @@ import android.R.style; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.annotation.NonNull; +import android.annotation.Nullable; import android.app.ActivityManager; import android.app.ActivityManager.StackId; import android.app.ActivityOptions; @@ -730,6 +731,7 @@ public class StatusBar extends SystemUI implements DemoMode, private boolean mReinflateNotificationsOnUserSwitched; private HashMap mPendingNotifications = new HashMap<>(); private boolean mClearAllEnabled; + @Nullable private View mAmbientIndicationContainer; private void recycleAllVisibilityObjects(ArraySet array) { final int N = array.size(); @@ -1081,6 +1083,9 @@ public class StatusBar extends SystemUI implements DemoMode, mKeyguardBottomArea.getLockIcon()); mKeyguardBottomArea.setKeyguardIndicationController(mKeyguardIndicationController); + mAmbientIndicationContainer = mStatusBarWindow.findViewById( + R.id.ambient_indication_container); + // set the initial view visibility setAreThereNotifications(); @@ -2785,6 +2790,11 @@ public class StatusBar extends SystemUI implements DemoMode, return mKeyguardIndicationController; } + @Nullable + public View getAmbientIndicationContainer() { + return mAmbientIndicationContainer; + } + /** * All changes to the status bar and notifications funnel through here and are batched. */ @@ -4393,6 +4403,9 @@ public class StatusBar extends SystemUI implements DemoMode, mKeyguardUserSwitcher.setKeyguard(true, fromShadeLocked); } mStatusBarView.removePendingHideExpandedRunnables(); + if (mAmbientIndicationContainer != null) { + mAmbientIndicationContainer.setVisibility(View.VISIBLE); + } } else { mKeyguardIndicationController.setVisible(false); if (mKeyguardUserSwitcher != null) { @@ -4401,6 +4414,9 @@ public class StatusBar extends SystemUI implements DemoMode, mState == StatusBarState.SHADE_LOCKED || fromShadeLocked); } + if (mAmbientIndicationContainer != null) { + mAmbientIndicationContainer.setVisibility(View.INVISIBLE); + } } if (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED) { mScrimController.setKeyguardShowing(true); -- cgit v1.2.3-59-g8ed1b