diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoadPlan.java | 4 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/recents/views/TaskStackAnimationHelper.java | 17 |
2 files changed, 14 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoadPlan.java b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoadPlan.java index 6fef8a24fff3..abcb563339aa 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoadPlan.java +++ b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoadPlan.java @@ -133,7 +133,6 @@ public class RecentsTaskLoadPlan { SparseIntArray affiliatedTaskCounts = new SparseIntArray(); String dismissDescFormat = mContext.getString( R.string.accessibility_recents_item_will_be_dismissed); - Formatter dismissDescFormatter = new Formatter(); long lastStackActiveTime = Prefs.getLong(mContext, Prefs.Key.OVERVIEW_LAST_STACK_TASK_ACTIVE_TIME, 0); if (RecentsDebugFlags.Static.EnableMockTasks) { @@ -184,8 +183,7 @@ public class RecentsTaskLoadPlan { ActivityInfo info = loader.getAndUpdateActivityInfo(taskKey); String title = loader.getAndUpdateActivityTitle(taskKey, t.taskDescription); String contentDescription = loader.getAndUpdateContentDescription(taskKey, res); - String dismissDescription = dismissDescFormatter.format(dismissDescFormat, - contentDescription).toString(); + String dismissDescription = String.format(dismissDescFormat, contentDescription); Drawable icon = isStackTask ? loader.getAndUpdateActivityIcon(taskKey, t.taskDescription, res, false) : null; diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackAnimationHelper.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackAnimationHelper.java index 2cd0c19a4352..d152010c71c8 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackAnimationHelper.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackAnimationHelper.java @@ -20,8 +20,8 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.content.Context; import android.content.res.Resources; -import android.graphics.Path; import android.graphics.RectF; +import android.util.Log; import android.view.View; import android.view.animation.Interpolator; import android.view.animation.PathInterpolator; @@ -441,11 +441,13 @@ public class TaskStackAnimationHelper { TaskStackViewScroller stackScroller = mStackView.getScroller(); TaskStack stack = mStackView.getStack(); + final float curScroll = stackScroller.getStackScroll(); final float newScroll = stackLayout.getStackScrollForTask(newFocusedTask); - boolean willScrollToFront = newScroll > stackScroller.getStackScroll(); - boolean willScroll = Float.compare(newScroll, stackScroller.getStackScroll()) != 0; + boolean willScrollToFront = newScroll > curScroll; + boolean willScroll = Float.compare(newScroll, curScroll) != 0; // Get the current set of task transforms + int taskViewCount = mStackView.getTaskViews().size(); ArrayList<Task> stackTasks = stack.getStackTasks(); mStackView.getCurrentTaskTransforms(stackTasks, mTmpCurrentTaskTransforms); @@ -463,6 +465,13 @@ public class TaskStackAnimationHelper { // Focus the task view TaskView newFocusedTaskView = mStackView.getChildViewForTask(newFocusedTask); + if (newFocusedTaskView == null) { + // Log the error if we have no task view, and skip the animation + Log.e("TaskStackAnimationHelper", "b/27389156 null-task-view prebind:" + taskViewCount + + " postbind:" + mStackView.getTaskViews().size() + " prescroll:" + curScroll + + " postscroll: " + newScroll); + return false; + } newFocusedTaskView.setFocusedState(true, requestViewFocus); // Setup the end listener to return all the hidden views to the view pool after the @@ -476,7 +485,7 @@ public class TaskStackAnimationHelper { }); List<TaskView> taskViews = mStackView.getTaskViews(); - int taskViewCount = taskViews.size(); + taskViewCount = taskViews.size(); int newFocusTaskViewIndex = taskViews.indexOf(newFocusedTaskView); for (int i = 0; i < taskViewCount; i++) { TaskView tv = taskViews.get(i); |