Enabling filtering by base intent package.
- Toggling recents now unfilters the current stack before dismissing recents
Change-Id: Id0d240bf16bc32957ee7e5a9882a453044903d29
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
index c86b0e1..e04a1b2 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
@@ -16,6 +16,9 @@
package com.android.systemui.recents.views;
+import android.animation.Animator;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Path;
@@ -72,6 +75,7 @@
// Bind the views
mThumbnailView = (TaskThumbnailView) findViewById(R.id.task_view_thumbnail);
mBarView = (TaskBarView) findViewById(R.id.task_view_bar);
+ mBarView.mActivityIcon.setOnClickListener(this);
if (mTaskDataLoaded) {
onTaskDataLoaded(false);
}
@@ -90,12 +94,16 @@
}
@Override
- protected void onDraw(Canvas canvas) {
+ protected void dispatchDraw(Canvas canvas) {
+ int restoreCount = 0;
if (Constants.Values.TaskView.UseRoundedCorners) {
+ restoreCount = canvas.save();
canvas.clipPath(mRoundedRectClipPath);
}
-
- super.onDraw(canvas);
+ super.dispatchDraw(canvas);
+ if (Constants.Values.TaskView.UseRoundedCorners) {
+ canvas.restoreToCount(restoreCount);
+ }
}
/** Set callback */
@@ -109,27 +117,43 @@
}
/** Synchronizes this view's properties with the task's transform */
- void updateViewPropertiesFromTask(TaskViewTransform animateFromTransform,
- TaskViewTransform transform, int duration) {
+ void updateViewPropertiesToTaskTransform(TaskViewTransform animateFromTransform,
+ TaskViewTransform toTransform, int duration) {
if (duration > 0) {
if (animateFromTransform != null) {
setTranslationY(animateFromTransform.translationY);
setScaleX(animateFromTransform.scale);
setScaleY(animateFromTransform.scale);
+ setAlpha(animateFromTransform.alpha);
}
- animate().translationY(transform.translationY)
- .scaleX(transform.scale)
- .scaleY(transform.scale)
+ animate().translationY(toTransform.translationY)
+ .scaleX(toTransform.scale)
+ .scaleY(toTransform.scale)
+ .alpha(toTransform.alpha)
.setDuration(duration)
.setInterpolator(new AccelerateDecelerateInterpolator())
+ .withLayer()
.start();
} else {
- setTranslationY(transform.translationY);
- setScaleX(transform.scale);
- setScaleY(transform.scale);
+ setTranslationY(toTransform.translationY);
+ setScaleX(toTransform.scale);
+ setScaleY(toTransform.scale);
+ setAlpha(toTransform.alpha);
}
}
+ /** Returns an animator to animate this task to the specified transform */
+ Animator getAnimatorToTaskTransform(TaskViewTransform toTransform) {
+ AnimatorSet anims = new AnimatorSet();
+ anims.playTogether(
+ ObjectAnimator.ofFloat(this, "translationY", toTransform.translationY),
+ ObjectAnimator.ofFloat(this, "scaleX", toTransform.scale),
+ ObjectAnimator.ofFloat(this, "scaleY", toTransform.scale),
+ ObjectAnimator.ofFloat(this, "alpha", toTransform.alpha)
+ );
+ return anims;
+ }
+
/** Resets this view's properties */
void resetViewProperties() {
setTranslationX(0f);
@@ -139,6 +163,17 @@
setAlpha(1f);
}
+ void prepareTaskTransformForFilterTaskHidden(TaskViewTransform toTransform) {
+ // Fade the view out and slide it away
+ toTransform.alpha = 0f;
+ toTransform.translationY += 200;
+ }
+
+ void prepareTaskTransformForFilterTaskVisible(TaskViewTransform fromTransform) {
+ // Fade the view in
+ fromTransform.alpha = 0f;
+ }
+
/** Animates this task view as it enters recents */
public void animateOnEnterRecents() {
RecentsConfiguration config = RecentsConfiguration.getInstance();