summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Gus Prevas <kprevas@google.com> 2018-10-04 13:26:35 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-10-04 13:26:35 +0000
commitcda0e83faf2701741c2a9a5ffceadda5801a1199 (patch)
treef5e4afa259270901b0d2f459271ace3309d85391
parentb49951053543ad337194177fb44c465ce6cfe273 (diff)
parent99ba4bac9ef985466e52549665cff95256779bfb (diff)
Merge "Fixes icons in shelf scrolled due to exposed menu."
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java13
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java33
3 files changed, 46 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java
index 8969acaac532..057784153dd6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java
@@ -426,6 +426,10 @@ public class AmbientState {
return mDarkAmount == 1;
}
+ public boolean isDarkAtAll() {
+ return mDarkAmount != 0;
+ }
+
public void setDarkTopPadding(int darkTopPadding) {
mDarkTopPadding = darkTopPadding;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
index 9978ec364cdb..9ddab7cc0b2f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
@@ -25,7 +25,6 @@ import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.animation.TimeAnimator;
import android.animation.ValueAnimator;
-import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.annotation.Nullable;
import android.app.WallpaperManager;
import android.content.Context;
@@ -40,7 +39,6 @@ import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.os.Bundle;
-import android.os.Handler;
import android.os.ServiceManager;
import android.provider.Settings;
import android.service.notification.StatusBarNotification;
@@ -82,7 +80,6 @@ import com.android.systemui.ExpandHelper;
import com.android.systemui.Interpolators;
import com.android.systemui.R;
import com.android.systemui.SwipeHelper;
-import com.android.systemui.SwipeHelper.Callback;
import com.android.systemui.classifier.FalsingManager;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
@@ -3734,12 +3731,14 @@ public class NotificationStackScrollLayout extends ViewGroup
return y < getHeight() - getEmptyBottomMargin();
}
+ @VisibleForTesting
@ShadeViewRefactor(RefactorComponent.INPUT)
- private void setIsBeingDragged(boolean isDragged) {
+ void setIsBeingDragged(boolean isDragged) {
mIsBeingDragged = isDragged;
if (isDragged) {
requestDisallowInterceptTouchEvent(true);
cancelLongPress();
+ resetExposedMenuView(true /* animate */, true /* force */);
}
}
@@ -3869,6 +3868,7 @@ public class NotificationStackScrollLayout extends ViewGroup
public void onPanelTrackingStarted() {
mPanelTracking = true;
mAmbientState.setPanelTracking(true);
+ resetExposedMenuView(true /* animate */, true /* force */);
}
@ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
@@ -4271,8 +4271,10 @@ public class NotificationStackScrollLayout extends ViewGroup
mLinearDarkAmount = linearDarkAmount;
mInterpolatedDarkAmount = interpolatedDarkAmount;
boolean wasFullyDark = mAmbientState.isFullyDark();
+ boolean wasDarkAtAll = mAmbientState.isDarkAtAll();
mAmbientState.setDarkAmount(interpolatedDarkAmount);
boolean nowFullyDark = mAmbientState.isFullyDark();
+ boolean nowDarkAtAll = mAmbientState.isDarkAtAll();
if (nowFullyDark != wasFullyDark) {
updateContentHeight();
DozeParameters dozeParameters = DozeParameters.getInstance(mContext);
@@ -4283,6 +4285,9 @@ public class NotificationStackScrollLayout extends ViewGroup
mIconAreaController.setFullyDark(nowFullyDark);
}
}
+ if (!wasDarkAtAll && nowDarkAtAll) {
+ resetExposedMenuView(true /* animate */, true /* animate */);
+ }
updateAlgorithmHeightAndPadding();
updateBackgroundDimming();
updatePanelTranslation();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
index b545e61a446a..f8b24363da8f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
@@ -15,6 +15,8 @@ package com.android.systemui.statusbar.notification.stack;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertNull;
+
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -36,6 +38,7 @@ import android.service.dreams.IDreamManager;
import android.support.test.annotation.UiThreadTest;
import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4;
+import android.view.View;
import com.android.systemui.ExpandHelper;
import com.android.systemui.R;
@@ -314,6 +317,36 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
verify(mStackScroller).setEmptyShadeView(any());
}
+ @Test
+ @UiThreadTest
+ public void testSetIsBeingDraggedResetsExposedMenu() {
+ NotificationSwipeHelper swipeActionHelper =
+ (NotificationSwipeHelper) mStackScroller.getSwipeActionHelper();
+ swipeActionHelper.setExposedMenuView(new View(mContext));
+ mStackScroller.setIsBeingDragged(true);
+ assertNull(swipeActionHelper.getExposedMenuView());
+ }
+
+ @Test
+ @UiThreadTest
+ public void testPanelTrackingStartResetsExposedMenu() {
+ NotificationSwipeHelper swipeActionHelper =
+ (NotificationSwipeHelper) mStackScroller.getSwipeActionHelper();
+ swipeActionHelper.setExposedMenuView(new View(mContext));
+ mStackScroller.onPanelTrackingStarted();
+ assertNull(swipeActionHelper.getExposedMenuView());
+ }
+
+ @Test
+ @UiThreadTest
+ public void testDarkModeResetsExposedMenu() {
+ NotificationSwipeHelper swipeActionHelper =
+ (NotificationSwipeHelper) mStackScroller.getSwipeActionHelper();
+ swipeActionHelper.setExposedMenuView(new View(mContext));
+ mStackScroller.setDarkAmount(0.1f, 0.1f);
+ assertNull(swipeActionHelper.getExposedMenuView());
+ }
+
private void setBarStateForTest(int state) {
ArgumentCaptor<StatusBarStateController.StateListener> captor =
ArgumentCaptor.forClass(StatusBarStateController.StateListener.class);