diff options
| author | 2017-05-31 02:50:20 +0000 | |
|---|---|---|
| committer | 2017-05-31 02:50:25 +0000 | |
| commit | d21b769533ea217b6c848f08f85a45a4571155df (patch) | |
| tree | dfb81c0ac8c38aa74af22c8fe22491317996343e | |
| parent | 87f827eec09012583d356c029e5108e81ddc0ada (diff) | |
| parent | 8d4e99fe8b97360b824aeefbf96b840d7aadcc9a (diff) | |
Merge "AmbientIndication: Move into container"
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" /> - <include layout="@layout/ambient_indication" /> + <include layout="@layout/ambient_indication" + android:id="@+id/ambient_indication_container" /> <ViewStub android:id="@+id/keyguard_user_switcher" diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 8fe309669910..3dc682780586 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -1672,6 +1672,10 @@ public class NotificationPanelView extends PanelView implements mKeyguardBottomArea.setImportantForAccessibility(alpha == 0f ? IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS : IMPORTANT_FOR_ACCESSIBILITY_AUTO); + View ambientIndicationContainer = mStatusBar.getAmbientIndicationContainer(); + if (ambientIndicationContainer != null) { + ambientIndicationContainer.setAlpha(alpha); + } } private float getNotificationsTopY() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java index 4b1d7d7e4508..9cb4488a828a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -28,6 +28,7 @@ import android.util.AttributeSet; import android.util.Log; import android.view.InputDevice; import android.view.MotionEvent; +import android.view.View; import android.view.ViewConfiguration; import android.view.ViewTreeObserver; import android.view.animation.Interpolator; @@ -1071,21 +1072,25 @@ public abstract class PanelView extends FrameLayout { }); animator.start(); mHeightAnimator = animator; - mKeyguardBottomArea.getIndicationArea().animate() - .translationY(-mHintDistance) - .setDuration(250) - .setInterpolator(Interpolators.FAST_OUT_SLOW_IN) - .withEndAction(new Runnable() { - @Override - public void run() { - mKeyguardBottomArea.getIndicationArea().animate() - .translationY(0) - .setDuration(450) - .setInterpolator(mBounceInterpolator) - .start(); - } - }) - .start(); + + View[] viewsToAnimate = { + mKeyguardBottomArea.getIndicationArea(), + mStatusBar.getAmbientIndicationContainer()}; + for (View v : viewsToAnimate) { + if (v == null) { + continue; + } + v.animate() + .translationY(-mHintDistance) + .setDuration(250) + .setInterpolator(Interpolators.FAST_OUT_SLOW_IN) + .withEndAction(() -> 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<String, Entry> mPendingNotifications = new HashMap<>(); private boolean mClearAllEnabled; + @Nullable private View mAmbientIndicationContainer; private void recycleAllVisibilityObjects(ArraySet<NotificationVisibility> 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); |