Animate aways Notification Dots for Taskbar Pinning Annimation

Test: Manual
Bug: 308460959
Flag: LEGACY ENABLE_TASKBAR_PINNING DISABLED
Change-Id: Ic16881c05c70ed717dc63131d94ece805c39f6fc
This commit is contained in:
Jagrut Desai
2023-10-30 12:15:22 -07:00
parent 1e63858559
commit 47bf322e21
3 changed files with 15 additions and 2 deletions
@@ -85,6 +85,7 @@ class TaskbarPinningController(private val context: TaskbarActivityContext) :
animatorSet.doOnEnd { recreateTaskbarAndUpdatePinningValue() }
animatorSet.duration = PINNING_ANIMATION_DURATION
updateIsAnimatingTaskbarPinningAndNotifyTaskbarDragLayer(true)
taskbarViewController.animateAwayNotificationDotsDuringTaskbarPinningAnimation()
animatorSet.start()
}
@@ -52,6 +52,7 @@ import androidx.core.graphics.ColorUtils;
import androidx.core.view.OneShotPreDrawListener;
import com.android.app.animation.Interpolators;
import com.android.launcher3.BubbleTextView;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.R;
@@ -338,6 +339,17 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar
}
}
/**
* Animate away taskbar icon notification dots during the taskbar pinning animation.
*/
public void animateAwayNotificationDotsDuringTaskbarPinningAnimation() {
for (View iconView : mTaskbarView.getIconViews()) {
if (iconView instanceof BubbleTextView && ((BubbleTextView) iconView).hasDot()) {
((BubbleTextView) iconView).animateDotScale(0);
}
}
}
private void updateTaskbarIconTranslationXForPinning() {
View[] iconViews = mTaskbarView.getIconViews();
float scale = mTaskbarIconTranslationXForPinning.value;
@@ -294,7 +294,7 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver,
}
}
private void animateDotScale(float... dotScales) {
public void animateDotScale(float... dotScales) {
cancelDotScaleAnim();
mDotScaleAnim = ObjectAnimator.ofFloat(this, DOT_SCALE_PROPERTY, dotScales);
mDotScaleAnim.addListener(new AnimatorListenerAdapter() {
@@ -646,7 +646,7 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver,
return mForceHideDot;
}
private boolean hasDot() {
public boolean hasDot() {
return mDotInfo != null;
}