diff options
author | Winson Chung <winsonc@google.com> | 2014-10-01 20:03:18 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-10-01 20:03:19 +0000 |
commit | d092fc7076310fca5edd089df5bb5398096f6627 (patch) | |
tree | 8bf0c24e8b45f01e4d5242eb2a79c9892f5263b6 /packages/SystemUI/src/com/android/systemui/recents | |
parent | bf417b4d384d2c55609a87a6f0529d57918b2c55 (diff) | |
parent | 9cb5c4e3854aa7f2ddab707920b688c3108cbc85 (diff) | |
download | frameworks_base-d092fc7076310fca5edd089df5bb5398096f6627.zip frameworks_base-d092fc7076310fca5edd089df5bb5398096f6627.tar.gz frameworks_base-d092fc7076310fca5edd089df5bb5398096f6627.tar.bz2 |
Merge "Ensure that we don't show excluded tasks when we are not in that task (Bug 17657618) - Fix regression with launching an affiliated task due to clipping changes (Bug 17755902) - Tweaking previous changes to home transition - Disable the debug mode option" into lmp-dev
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/recents')
9 files changed, 40 insertions, 32 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java b/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java index 8416ad7..1283dcd 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java +++ b/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java @@ -189,7 +189,7 @@ public class AlternateRecentsComponent implements ActivityOptions.OnAnimationSta void showRelativeAffiliatedTask(boolean showNextTask) { RecentsTaskLoader loader = RecentsTaskLoader.getInstance(); TaskStack stack = loader.getTaskStack(mSystemServicesProxy, mContext.getResources(), - -1, -1, false, null, null); + -1, -1, false, true, null, null); // Return early if there are no tasks if (stack.getTaskCount() == 0) return; @@ -444,7 +444,7 @@ public class AlternateRecentsComponent implements ActivityOptions.OnAnimationSta // Get the stack of tasks that we are animating into RecentsTaskLoader loader = RecentsTaskLoader.getInstance(); TaskStack stack = loader.getTaskStack(mSystemServicesProxy, mContext.getResources(), - runningTaskId, -1, false, null, null); + runningTaskId, -1, false, isTopTaskHome, null, null); if (stack.getTaskCount() == 0) { return null; } @@ -485,7 +485,7 @@ public class AlternateRecentsComponent implements ActivityOptions.OnAnimationSta // which can differ depending on the number of items in the list. SystemServicesProxy ssp = mSystemServicesProxy; List<ActivityManager.RecentTaskInfo> recentTasks = - ssp.getRecentTasks(3, UserHandle.CURRENT.getIdentifier()); + ssp.getRecentTasks(3, UserHandle.CURRENT.getIdentifier(), isTopTaskHome); boolean useThumbnailTransition = !isTopTaskHome; boolean hasRecentTasks = !recentTasks.isEmpty(); diff --git a/packages/SystemUI/src/com/android/systemui/recents/Constants.java b/packages/SystemUI/src/com/android/systemui/recents/Constants.java index 103f96f..85cf077 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/Constants.java +++ b/packages/SystemUI/src/com/android/systemui/recents/Constants.java @@ -37,6 +37,8 @@ public class Constants { public static final boolean EnableTaskBarTouchEvents = true; // Enables app-info pane on long-pressing the icon public static final boolean EnableDevAppInfoOnLongPress = true; + // Enables debug mode + public static final boolean EnableDebugMode = false; // Enables the search bar layout public static final boolean EnableSearchLayout = true; // Enables the thumbnail alpha on the front-most task diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java index a49bbf9..01ba5a2 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java @@ -182,14 +182,6 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView /** Updates the set of recent tasks */ void updateRecentsTasks(Intent launchIntent) { - // Load all the tasks - RecentsTaskLoader loader = RecentsTaskLoader.getInstance(); - SpaceNode root = loader.reload(this, Constants.Values.RecentsTaskLoader.PreloadFirstTasksCount); - ArrayList<TaskStack> stacks = root.getStacks(); - if (!stacks.isEmpty()) { - mRecentsView.setTaskStacks(root.getStacks()); - } - // Update the configuration based on the launch intent boolean fromSearchHome = launchIntent.getBooleanExtra( AlternateRecentsComponent.EXTRA_FROM_SEARCH_HOME, false); @@ -203,6 +195,16 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView AlternateRecentsComponent.EXTRA_FROM_TASK_ID, -1); mConfig.launchedWithAltTab = launchIntent.getBooleanExtra( AlternateRecentsComponent.EXTRA_TRIGGERED_FROM_ALT_TAB, false); + + // Load all the tasks + RecentsTaskLoader loader = RecentsTaskLoader.getInstance(); + SpaceNode root = loader.reload(this, + Constants.Values.RecentsTaskLoader.PreloadFirstTasksCount, + mConfig.launchedFromHome); + ArrayList<TaskStack> stacks = root.getStacks(); + if (!stacks.isEmpty()) { + mRecentsView.setTaskStacks(root.getStacks()); + } mConfig.launchedWithNoRecentTasks = !root.hasTasks(); // Create the home intent runnable diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java index 4696c82..2aca576 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java @@ -220,8 +220,6 @@ public class RecentsConfiguration { res.getInteger(R.integer.recents_animate_task_enter_from_home_duration); taskViewEnterFromHomeStaggerDelay = res.getInteger(R.integer.recents_animate_task_enter_from_home_stagger_delay); - taskViewEnterFromHomeStaggerDuration = - res.getInteger(R.integer.recents_animate_task_enter_from_home_stagger_duration); taskViewExitToHomeDuration = res.getInteger(R.integer.recents_animate_task_exit_to_home_duration); taskViewRemoveAnimDuration = diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/DebugTrigger.java b/packages/SystemUI/src/com/android/systemui/recents/misc/DebugTrigger.java index d000985..fbf8a86 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/misc/DebugTrigger.java +++ b/packages/SystemUI/src/com/android/systemui/recents/misc/DebugTrigger.java @@ -19,6 +19,7 @@ package com.android.systemui.recents.misc; import android.os.Handler; import android.os.SystemClock; import android.view.KeyEvent; +import com.android.systemui.recents.Constants; /** * A trigger for catching a debug chord. @@ -48,6 +49,8 @@ public class DebugTrigger { * then we just call the callback. */ public void onKeyEvent(int keyCode) { + if (!Constants.DebugFlags.App.EnableDebugMode) return; + if (mLastKeyCode == 0) { if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { mLastKeyCode = keyCode; diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java index 9554f01..71a3ef1 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java +++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java @@ -138,7 +138,8 @@ public class SystemServicesProxy { } /** Returns a list of the recents tasks */ - public List<ActivityManager.RecentTaskInfo> getRecentTasks(int numLatestTasks, int userId) { + public List<ActivityManager.RecentTaskInfo> getRecentTasks(int numLatestTasks, int userId, + boolean isTopTaskHome) { if (mAm == null) return null; // If we are mocking, then create some recent tasks @@ -195,10 +196,11 @@ public class SystemServicesProxy { // tasks // Check the first non-recents task, include this task even if it is marked as excluded - // from recents. In other words, only remove excluded tasks if it is not the first task + // from recents if we are currently in the app. In other words, only remove excluded + // tasks if it is not the first active task. boolean isExcluded = (t.baseIntent.getFlags() & Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) == Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS; - if (isExcluded && !isFirstValidTask) { + if (isExcluded && (isTopTaskHome || !isFirstValidTask)) { iter.remove(); continue; } diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java index 9d4fe66..d40e847 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java +++ b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java @@ -322,11 +322,12 @@ public class RecentsTaskLoader { } /** Gets the list of recent tasks, ordered from back to front. */ - private static List<ActivityManager.RecentTaskInfo> getRecentTasks(SystemServicesProxy ssp) { + private static List<ActivityManager.RecentTaskInfo> getRecentTasks(SystemServicesProxy ssp, + boolean isTopTaskHome) { RecentsConfiguration config = RecentsConfiguration.getInstance(); List<ActivityManager.RecentTaskInfo> tasks = - ssp.getRecentTasks(config.maxNumTasksToLoad, - UserHandle.CURRENT.getIdentifier()); + ssp.getRecentTasks(config.maxNumTasksToLoad, UserHandle.CURRENT.getIdentifier(), + isTopTaskHome); Collections.reverse(tasks); return tasks; } @@ -408,11 +409,11 @@ public class RecentsTaskLoader { } /** Reload the set of recent tasks */ - public SpaceNode reload(Context context, int preloadCount) { + public SpaceNode reload(Context context, int preloadCount, boolean isTopTaskHome) { ArrayList<Task.TaskKey> taskKeys = new ArrayList<Task.TaskKey>(); ArrayList<Task> tasksToLoad = new ArrayList<Task>(); TaskStack stack = getTaskStack(mSystemServicesProxy, context.getResources(), - -1, preloadCount, true, taskKeys, tasksToLoad); + -1, preloadCount, true, isTopTaskHome, taskKeys, tasksToLoad); SpaceNode root = new SpaceNode(); root.setStack(stack); @@ -429,10 +430,10 @@ public class RecentsTaskLoader { /** Creates a lightweight stack of the current recent tasks, without thumbnails and icons. */ public TaskStack getTaskStack(SystemServicesProxy ssp, Resources res, int preloadTaskId, int preloadTaskCount, - boolean loadTaskThumbnails, List<Task.TaskKey> taskKeysOut, - List<Task> tasksToLoadOut) { + boolean loadTaskThumbnails, boolean isTopTaskHome, + List<Task.TaskKey> taskKeysOut, List<Task> tasksToLoadOut) { RecentsConfiguration config = RecentsConfiguration.getInstance(); - List<ActivityManager.RecentTaskInfo> tasks = getRecentTasks(ssp); + List<ActivityManager.RecentTaskInfo> tasks = getRecentTasks(ssp, isTopTaskHome); HashMap<Task.ComponentNameKey, ActivityInfoHandle> activityInfoCache = new HashMap<Task.ComponentNameKey, ActivityInfoHandle>(); ArrayList<Task> tasksToAdd = new ArrayList<Task>(); diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java index e1e4068..40134da 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java @@ -743,6 +743,7 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal for (int i = 0; i < childCount; i++) { TaskView t = (TaskView) getChildAt(i); if (t == tv) { + t.setClipViewInStack(false); t.startLaunchTaskAnimation(r, true, true, lockToTask); } else { boolean occludesLaunchTarget = launchTargetTask.group.isTaskAboveTask(t.getTask(), 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 1750804..2658176 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java @@ -418,22 +418,21 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks, } else if (mConfig.launchedFromHome) { // Animate the tasks up int frontIndex = (ctx.currentStackViewCount - ctx.currentStackViewIndex - 1); - float fraction = (float) frontIndex / (ctx.currentStackViewCount - 1); - fraction = (float) Math.pow(fraction, 0.85f); - int delay = (int) (mConfig.taskViewEnterFromHomeDelay + - fraction * mConfig.taskViewEnterFromHomeStaggerDelay); - long delayIncrease = (long) (fraction * mConfig.taskViewEnterFromHomeStaggerDuration); + int delay = mConfig.taskViewEnterFromHomeDelay + + frontIndex * mConfig.taskViewEnterFromHomeStaggerDelay; + + setScaleX(transform.scale); + setScaleY(transform.scale); if (!mConfig.fakeShadows) { animate().translationZ(transform.translationZ); } animate() - .scaleX(transform.scale) - .scaleY(transform.scale) .translationY(transform.translationY) .setStartDelay(delay) .setUpdateListener(ctx.updateListener) .setInterpolator(mConfig.quintOutInterpolator) - .setDuration(mConfig.taskViewEnterFromHomeDuration + delayIncrease) + .setDuration(mConfig.taskViewEnterFromHomeDuration + + frontIndex * mConfig.taskViewEnterFromHomeStaggerDelay) .withEndAction(new Runnable() { @Override public void run() { |