summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/res/values/ids.xml1
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/HybridGroupManager.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationDozeHelper.java22
4 files changed, 23 insertions, 4 deletions
diff --git a/packages/SystemUI/res/values/ids.xml b/packages/SystemUI/res/values/ids.xml
index 458e133d765f..98f1f1e38896 100644
--- a/packages/SystemUI/res/values/ids.xml
+++ b/packages/SystemUI/res/values/ids.xml
@@ -61,6 +61,7 @@
<item type="id" name="notification_temperature"/>
<item type="id" name="notification_plugin"/>
<item type="id" name="transformation_start_x_tag"/>
+ <item type="id" name="doze_intensity_tag"/>
<item type="id" name="transformation_start_y_tag"/>
<item type="id" name="transformation_start_actual_width"/>
<item type="id" name="transformation_start_actual_height"/>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java
index 4fc18ad3ea54..0b941c24be69 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java
@@ -806,7 +806,7 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
updateDecorColor();
updateIconColor();
updateAllowAnimation();
- }, dark, fade, delay);
+ }, dark, fade, delay, this);
}
private void updateAllowAnimation() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/HybridGroupManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/HybridGroupManager.java
index 3ed8cce21ac5..2ab07f73202e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/HybridGroupManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/HybridGroupManager.java
@@ -152,7 +152,7 @@ public class HybridGroupManager {
mDozer.setIntensityDark((f)->{
mDarkAmount = f;
updateOverFlowNumberColor(view);
- }, dark, fade, delay);
+ }, dark, fade, delay, view);
view.setTextSize(TypedValue.COMPLEX_UNIT_PX,
dark ? mOverflowNumberSizeDark : mOverflowNumberSize);
int paddingEnd = dark ? mOverflowNumberPaddingDark : mOverflowNumberPadding;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationDozeHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationDozeHelper.java
index 0b3b3cb671e5..fb362c5e506f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationDozeHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationDozeHelper.java
@@ -21,14 +21,17 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
+import android.view.View;
import android.widget.ImageView;
import com.android.systemui.Interpolators;
+import com.android.systemui.R;
import com.android.systemui.statusbar.phone.NotificationPanelView;
import java.util.function.Consumer;
public class NotificationDozeHelper {
+ private static final int DOZE_ANIMATOR_TAG = R.id.doze_intensity_tag;
private final ColorMatrix mGrayscaleColorMatrix = new ColorMatrix();
public void fadeGrayscale(final ImageView target, final boolean dark, long delay) {
@@ -76,11 +79,26 @@ public class NotificationDozeHelper {
}
public void setIntensityDark(Consumer<Float> listener, boolean dark,
- boolean animate, long delay) {
+ boolean animate, long delay, View view) {
if (animate) {
startIntensityAnimation(a -> listener.accept((Float) a.getAnimatedValue()), dark, delay,
- null /* listener */);
+ new AnimatorListenerAdapter() {
+
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ view.setTag(DOZE_ANIMATOR_TAG, null);
+ }
+
+ @Override
+ public void onAnimationStart(Animator animation) {
+ view.setTag(DOZE_ANIMATOR_TAG, animation);
+ }
+ } /* listener */);
} else {
+ Animator animator = (Animator) view.getTag(DOZE_ANIMATOR_TAG);
+ if (animator != null) {
+ animator.cancel();
+ }
listener.accept(dark ? 1f : 0f);
}
}