Loading core/java/android/view/IWindowManager.aidl +2 −3 Original line number Diff line number Diff line /* //device/java/android/android/view/IWindowManager.aidl ** /* ** Copyright 2006, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); Loading Loading @@ -74,7 +73,7 @@ interface IWindowManager void setAppOrientation(IApplicationToken token, int requestedOrientation); int getAppOrientation(IApplicationToken token); void setFocusedApp(IBinder token, boolean moveFocusNow); void prepareAppTransition(int transit); void prepareAppTransition(int transit, boolean alwaysKeepCurrent); int getPendingAppTransition(); void overridePendingAppTransition(String packageName, int enterAnim, int exitAnim); void executeAppTransition(); Loading services/java/com/android/server/WindowManagerService.java +30 −52 Original line number Diff line number Diff line Loading @@ -326,18 +326,6 @@ public class WindowManagerService extends IWindowManager.Stub */ final ArrayList<AppWindowToken> mFinishedStarting = new ArrayList<AppWindowToken>(); /** * This was the app token that was used to retrieve the last enter * animation. It will be used for the next exit animation. */ AppWindowToken mLastEnterAnimToken; /** * These were the layout params used to retrieve the last enter animation. * They will be used for the next exit animation. */ LayoutParams mLastEnterAnimParams; /** * Z-ordered (bottom-most first) list of all Window objects. */ Loading Loading @@ -3663,7 +3651,7 @@ public class WindowManagerService extends IWindowManager.Stub } } public void prepareAppTransition(int transit) { public void prepareAppTransition(int transit, boolean alwaysKeepCurrent) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "prepareAppTransition()")) { throw new SecurityException("Requires MANAGE_APP_TOKENS permission"); Loading @@ -3677,7 +3665,8 @@ public class WindowManagerService extends IWindowManager.Stub if (mNextAppTransition == WindowManagerPolicy.TRANSIT_UNSET || mNextAppTransition == WindowManagerPolicy.TRANSIT_NONE) { mNextAppTransition = transit; } else if (transit == WindowManagerPolicy.TRANSIT_TASK_OPEN } else if (!alwaysKeepCurrent) { if (transit == WindowManagerPolicy.TRANSIT_TASK_OPEN && mNextAppTransition == WindowManagerPolicy.TRANSIT_TASK_CLOSE) { // Opening a new task always supersedes a close for the anim. mNextAppTransition = transit; Loading @@ -3686,6 +3675,7 @@ public class WindowManagerService extends IWindowManager.Stub // Opening a new activity always supersedes a close for the anim. mNextAppTransition = transit; } } mAppTransitionReady = false; mAppTransitionTimeout = false; mStartingIconInTransition = false; Loading Loading @@ -4237,10 +4227,6 @@ public class WindowManagerService extends IWindowManager.Stub wtoken.animating = false; } mAppTokens.remove(wtoken); if (mLastEnterAnimToken == wtoken) { mLastEnterAnimToken = null; mLastEnterAnimParams = null; } wtoken.removed = true; if (wtoken.startingData != null) { startingToken = wtoken; Loading Loading @@ -6713,6 +6699,7 @@ public class WindowManagerService extends IWindowManager.Stub int mTouchableInsets = ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_FRAME; // Current transformation being applied. boolean mHaveMatrix; float mDsDx=1, mDtDx=0, mDsDy=0, mDtDy=1; float mLastDsDx=1, mLastDtDx=0, mLastDsDy=0, mLastDtDy=1; float mHScale=1, mVScale=1; Loading Loading @@ -7598,6 +7585,7 @@ public class WindowManagerService extends IWindowManager.Stub // since it is already included in the transformation. //Slog.i(TAG, "Transform: " + matrix); mHaveMatrix = true; tmpMatrix.getValues(tmpFloats); mDsDx = tmpFloats[Matrix.MSCALE_X]; mDtDx = tmpFloats[Matrix.MSKEW_Y]; Loading Loading @@ -7649,6 +7637,7 @@ public class WindowManagerService extends IWindowManager.Stub mShownFrame.offset(mXOffset, mYOffset); } mShownAlpha = mAlpha; mHaveMatrix = false; mDsDx = 1; mDtDx = 0; mDsDy = 0; Loading Loading @@ -8064,11 +8053,6 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(" mVisibleInsets="); mVisibleInsets.printShortString(pw); pw.print(" last="); mLastVisibleInsets.printShortString(pw); pw.println(); if (mShownAlpha != 1 || mAlpha != 1 || mLastAlpha != 1) { pw.print(prefix); pw.print("mShownAlpha="); pw.print(mShownAlpha); pw.print(" mAlpha="); pw.print(mAlpha); pw.print(" mLastAlpha="); pw.println(mLastAlpha); } if (mAnimating || mLocalAnimating || mAnimationIsEntrance || mAnimation != null) { pw.print(prefix); pw.print("mAnimating="); pw.print(mAnimating); Loading @@ -8083,6 +8067,17 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(" "); mTransformation.printShortString(pw); pw.println(); } if (mShownAlpha != 1 || mAlpha != 1 || mLastAlpha != 1) { pw.print(prefix); pw.print("mShownAlpha="); pw.print(mShownAlpha); pw.print(" mAlpha="); pw.print(mAlpha); pw.print(" mLastAlpha="); pw.println(mLastAlpha); } if (mHaveMatrix) { pw.print(prefix); pw.print("mDsDx="); pw.print(mDsDx); pw.print(" mDtDx="); pw.print(mDtDx); pw.print(" mDsDy="); pw.print(mDsDy); pw.print(" mDtDy="); pw.println(mDtDy); } pw.print(prefix); pw.print("mDrawPending="); pw.print(mDrawPending); pw.print(" mCommitDrawPending="); pw.print(mCommitDrawPending); pw.print(" mReadyToShow="); pw.print(mReadyToShow); Loading Loading @@ -8543,14 +8538,14 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(prefix); pw.print("animating="); pw.print(animating); pw.print(" animation="); pw.println(animation); } if (animLayerAdjustment != 0) { pw.print(prefix); pw.print("animLayerAdjustment="); pw.println(animLayerAdjustment); } if (hasTransformation) { pw.print(prefix); pw.print("hasTransformation="); pw.print(hasTransformation); pw.print(" transformation="); transformation.printShortString(pw); pw.print(prefix); pw.print("XForm: "); transformation.printShortString(pw); pw.println(); } if (animLayerAdjustment != 0) { pw.print(prefix); pw.print("animLayerAdjustment="); pw.println(animLayerAdjustment); } if (startingData != null || removed || firstWindowDrawn) { pw.print(prefix); pw.print("startingData="); pw.print(startingData); pw.print(" removed="); pw.print(removed); Loading Loading @@ -9854,15 +9849,6 @@ public class WindowManagerService extends IWindowManager.Stub "New transit into wallpaper: " + transit); } if ((transit&WindowManagerPolicy.TRANSIT_ENTER_MASK) != 0) { mLastEnterAnimToken = animToken; mLastEnterAnimParams = animLp; } else if (mLastEnterAnimParams != null) { animLp = mLastEnterAnimParams; mLastEnterAnimToken = null; mLastEnterAnimParams = null; } // If all closing windows are obscured, then there is // no need to do an animation. This is the case, for // example, when this transition is being done behind Loading Loading @@ -10585,10 +10571,6 @@ public class WindowManagerService extends IWindowManager.Stub token.animating = false; mAppTokens.remove(token); mExitingAppTokens.remove(i); if (mLastEnterAnimToken == token) { mLastEnterAnimToken = null; mLastEnterAnimParams = null; } } } Loading Loading @@ -11409,10 +11391,6 @@ public class WindowManagerService extends IWindowManager.Stub } pw.print(" mStartingIconInTransition="); pw.print(mStartingIconInTransition); pw.print(", mSkipAppTransitionAnimation="); pw.println(mSkipAppTransitionAnimation); if (mLastEnterAnimToken != null || mLastEnterAnimToken != null) { pw.print(" mLastEnterAnimToken="); pw.print(mLastEnterAnimToken); pw.print(", mLastEnterAnimParams="); pw.println(mLastEnterAnimParams); } if (mOpeningApps.size() > 0) { pw.print(" mOpeningApps="); pw.println(mOpeningApps); } Loading services/java/com/android/server/am/ActivityStack.java +28 −17 Original line number Diff line number Diff line Loading @@ -1195,11 +1195,12 @@ public class ActivityStack { if (DEBUG_TRANSITION) Slog.v(TAG, "Prepare close transition: prev=" + prev); if (mNoAnimActivities.contains(prev)) { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_NONE); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_NONE, false); } else { mService.mWindowManager.prepareAppTransition(prev.task == next.task ? WindowManagerPolicy.TRANSIT_ACTIVITY_CLOSE : WindowManagerPolicy.TRANSIT_TASK_CLOSE); : WindowManagerPolicy.TRANSIT_TASK_CLOSE, false); } mService.mWindowManager.setAppWillBeHidden(prev); mService.mWindowManager.setAppVisibility(prev, false); Loading @@ -1207,11 +1208,12 @@ public class ActivityStack { if (DEBUG_TRANSITION) Slog.v(TAG, "Prepare open transition: prev=" + prev); if (mNoAnimActivities.contains(next)) { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_NONE); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_NONE, false); } else { mService.mWindowManager.prepareAppTransition(prev.task == next.task ? WindowManagerPolicy.TRANSIT_ACTIVITY_OPEN : WindowManagerPolicy.TRANSIT_TASK_OPEN); : WindowManagerPolicy.TRANSIT_TASK_OPEN, false); } } if (false) { Loading @@ -1222,9 +1224,11 @@ public class ActivityStack { if (DEBUG_TRANSITION) Slog.v(TAG, "Prepare open transition: no previous"); if (mNoAnimActivities.contains(next)) { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_NONE); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_NONE, false); } else { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_ACTIVITY_OPEN); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_ACTIVITY_OPEN, false); } } Loading Loading @@ -1368,7 +1372,7 @@ public class ActivityStack { } private final void startActivityLocked(ActivityRecord r, boolean newTask, boolean doResume) { boolean doResume, boolean keepCurTransition) { final int NH = mHistory.size(); int addPos = -1; Loading Loading @@ -1439,16 +1443,17 @@ public class ActivityStack { if (DEBUG_TRANSITION) Slog.v(TAG, "Prepare open transition: starting " + r); if ((r.intent.getFlags()&Intent.FLAG_ACTIVITY_NO_ANIMATION) != 0) { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_NONE); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_NONE, keepCurTransition); mNoAnimActivities.add(r); } else if ((r.intent.getFlags()&Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET) != 0) { mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_TASK_OPEN); WindowManagerPolicy.TRANSIT_TASK_OPEN, keepCurTransition); mNoAnimActivities.remove(r); } else { mService.mWindowManager.prepareAppTransition(newTask ? WindowManagerPolicy.TRANSIT_TASK_OPEN : WindowManagerPolicy.TRANSIT_ACTIVITY_OPEN); : WindowManagerPolicy.TRANSIT_ACTIVITY_OPEN, keepCurTransition); mNoAnimActivities.remove(r); } mService.mWindowManager.addAppToken( Loading Loading @@ -2250,7 +2255,7 @@ public class ActivityStack { (Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK)) == (Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK)) { // The caller has requested to completely replace any // exising task with its new activity. Well that should // existing task with its new activity. Well that should // not be too hard... reuseTask = taskTop.task; performClearTaskLocked(taskTop.task.taskId); Loading Loading @@ -2383,6 +2388,7 @@ public class ActivityStack { } boolean newTask = false; boolean keepCurTransition = false; // Should this be considered a new task? if (r.resultTo == null && !addingToTask Loading Loading @@ -2413,6 +2419,7 @@ public class ActivityStack { // activity is already running. ActivityRecord top = performClearTaskLocked( sourceRecord.task.taskId, r, launchFlags); keepCurTransition = true; if (top != null) { logStartActivity(EventLogTags.AM_NEW_INTENT, r, top.task); top.deliverNewIntentLocked(callingUid, r.intent); Loading Loading @@ -2474,7 +2481,7 @@ public class ActivityStack { EventLog.writeEvent(EventLogTags.AM_CREATE_TASK, r.task.taskId); } logStartActivity(EventLogTags.AM_CREATE_ACTIVITY, r, r.task); startActivityLocked(r, newTask, doResume); startActivityLocked(r, newTask, doResume, keepCurTransition); return START_SUCCESS; } Loading Loading @@ -3128,7 +3135,7 @@ public class ActivityStack { "Prepare close transition: finishing " + r); mService.mWindowManager.prepareAppTransition(endTask ? WindowManagerPolicy.TRANSIT_TASK_CLOSE : WindowManagerPolicy.TRANSIT_ACTIVITY_CLOSE); : WindowManagerPolicy.TRANSIT_ACTIVITY_CLOSE, false); // Tell window manager to prepare for this one to be removed. mService.mWindowManager.setAppVisibility(r, false); Loading Loading @@ -3481,13 +3488,15 @@ public class ActivityStack { "Prepare to front transition: task=" + tr); if (reason != null && (reason.intent.getFlags()&Intent.FLAG_ACTIVITY_NO_ANIMATION) != 0) { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_NONE); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_NONE, false); ActivityRecord r = topRunningActivityLocked(null); if (r != null) { mNoAnimActivities.add(r); } } else { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_TASK_TO_FRONT); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_TASK_TO_FRONT, false); } mService.mWindowManager.moveAppTokensToTop(moved); Loading Loading @@ -3566,13 +3575,15 @@ public class ActivityStack { if (reason != null && (reason.intent.getFlags()&Intent.FLAG_ACTIVITY_NO_ANIMATION) != 0) { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_NONE); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_NONE, false); ActivityRecord r = topRunningActivityLocked(null); if (r != null) { mNoAnimActivities.add(r); } } else { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_TASK_TO_BACK); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_TASK_TO_BACK, false); } mService.mWindowManager.moveAppTokensToBottom(moved); if (VALIDATE_TOKENS) { Loading tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java +1 −1 Original line number Diff line number Diff line Loading @@ -144,7 +144,7 @@ public class WindowManagerPermissionTests extends TestCase { } try { mWm.prepareAppTransition(0); mWm.prepareAppTransition(0, false); fail("IWindowManager.prepareAppTransition did not throw SecurityException as" + " expected"); } catch (SecurityException e) { Loading Loading
core/java/android/view/IWindowManager.aidl +2 −3 Original line number Diff line number Diff line /* //device/java/android/android/view/IWindowManager.aidl ** /* ** Copyright 2006, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); Loading Loading @@ -74,7 +73,7 @@ interface IWindowManager void setAppOrientation(IApplicationToken token, int requestedOrientation); int getAppOrientation(IApplicationToken token); void setFocusedApp(IBinder token, boolean moveFocusNow); void prepareAppTransition(int transit); void prepareAppTransition(int transit, boolean alwaysKeepCurrent); int getPendingAppTransition(); void overridePendingAppTransition(String packageName, int enterAnim, int exitAnim); void executeAppTransition(); Loading
services/java/com/android/server/WindowManagerService.java +30 −52 Original line number Diff line number Diff line Loading @@ -326,18 +326,6 @@ public class WindowManagerService extends IWindowManager.Stub */ final ArrayList<AppWindowToken> mFinishedStarting = new ArrayList<AppWindowToken>(); /** * This was the app token that was used to retrieve the last enter * animation. It will be used for the next exit animation. */ AppWindowToken mLastEnterAnimToken; /** * These were the layout params used to retrieve the last enter animation. * They will be used for the next exit animation. */ LayoutParams mLastEnterAnimParams; /** * Z-ordered (bottom-most first) list of all Window objects. */ Loading Loading @@ -3663,7 +3651,7 @@ public class WindowManagerService extends IWindowManager.Stub } } public void prepareAppTransition(int transit) { public void prepareAppTransition(int transit, boolean alwaysKeepCurrent) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, "prepareAppTransition()")) { throw new SecurityException("Requires MANAGE_APP_TOKENS permission"); Loading @@ -3677,7 +3665,8 @@ public class WindowManagerService extends IWindowManager.Stub if (mNextAppTransition == WindowManagerPolicy.TRANSIT_UNSET || mNextAppTransition == WindowManagerPolicy.TRANSIT_NONE) { mNextAppTransition = transit; } else if (transit == WindowManagerPolicy.TRANSIT_TASK_OPEN } else if (!alwaysKeepCurrent) { if (transit == WindowManagerPolicy.TRANSIT_TASK_OPEN && mNextAppTransition == WindowManagerPolicy.TRANSIT_TASK_CLOSE) { // Opening a new task always supersedes a close for the anim. mNextAppTransition = transit; Loading @@ -3686,6 +3675,7 @@ public class WindowManagerService extends IWindowManager.Stub // Opening a new activity always supersedes a close for the anim. mNextAppTransition = transit; } } mAppTransitionReady = false; mAppTransitionTimeout = false; mStartingIconInTransition = false; Loading Loading @@ -4237,10 +4227,6 @@ public class WindowManagerService extends IWindowManager.Stub wtoken.animating = false; } mAppTokens.remove(wtoken); if (mLastEnterAnimToken == wtoken) { mLastEnterAnimToken = null; mLastEnterAnimParams = null; } wtoken.removed = true; if (wtoken.startingData != null) { startingToken = wtoken; Loading Loading @@ -6713,6 +6699,7 @@ public class WindowManagerService extends IWindowManager.Stub int mTouchableInsets = ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_FRAME; // Current transformation being applied. boolean mHaveMatrix; float mDsDx=1, mDtDx=0, mDsDy=0, mDtDy=1; float mLastDsDx=1, mLastDtDx=0, mLastDsDy=0, mLastDtDy=1; float mHScale=1, mVScale=1; Loading Loading @@ -7598,6 +7585,7 @@ public class WindowManagerService extends IWindowManager.Stub // since it is already included in the transformation. //Slog.i(TAG, "Transform: " + matrix); mHaveMatrix = true; tmpMatrix.getValues(tmpFloats); mDsDx = tmpFloats[Matrix.MSCALE_X]; mDtDx = tmpFloats[Matrix.MSKEW_Y]; Loading Loading @@ -7649,6 +7637,7 @@ public class WindowManagerService extends IWindowManager.Stub mShownFrame.offset(mXOffset, mYOffset); } mShownAlpha = mAlpha; mHaveMatrix = false; mDsDx = 1; mDtDx = 0; mDsDy = 0; Loading Loading @@ -8064,11 +8053,6 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(" mVisibleInsets="); mVisibleInsets.printShortString(pw); pw.print(" last="); mLastVisibleInsets.printShortString(pw); pw.println(); if (mShownAlpha != 1 || mAlpha != 1 || mLastAlpha != 1) { pw.print(prefix); pw.print("mShownAlpha="); pw.print(mShownAlpha); pw.print(" mAlpha="); pw.print(mAlpha); pw.print(" mLastAlpha="); pw.println(mLastAlpha); } if (mAnimating || mLocalAnimating || mAnimationIsEntrance || mAnimation != null) { pw.print(prefix); pw.print("mAnimating="); pw.print(mAnimating); Loading @@ -8083,6 +8067,17 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(" "); mTransformation.printShortString(pw); pw.println(); } if (mShownAlpha != 1 || mAlpha != 1 || mLastAlpha != 1) { pw.print(prefix); pw.print("mShownAlpha="); pw.print(mShownAlpha); pw.print(" mAlpha="); pw.print(mAlpha); pw.print(" mLastAlpha="); pw.println(mLastAlpha); } if (mHaveMatrix) { pw.print(prefix); pw.print("mDsDx="); pw.print(mDsDx); pw.print(" mDtDx="); pw.print(mDtDx); pw.print(" mDsDy="); pw.print(mDsDy); pw.print(" mDtDy="); pw.println(mDtDy); } pw.print(prefix); pw.print("mDrawPending="); pw.print(mDrawPending); pw.print(" mCommitDrawPending="); pw.print(mCommitDrawPending); pw.print(" mReadyToShow="); pw.print(mReadyToShow); Loading Loading @@ -8543,14 +8538,14 @@ public class WindowManagerService extends IWindowManager.Stub pw.print(prefix); pw.print("animating="); pw.print(animating); pw.print(" animation="); pw.println(animation); } if (animLayerAdjustment != 0) { pw.print(prefix); pw.print("animLayerAdjustment="); pw.println(animLayerAdjustment); } if (hasTransformation) { pw.print(prefix); pw.print("hasTransformation="); pw.print(hasTransformation); pw.print(" transformation="); transformation.printShortString(pw); pw.print(prefix); pw.print("XForm: "); transformation.printShortString(pw); pw.println(); } if (animLayerAdjustment != 0) { pw.print(prefix); pw.print("animLayerAdjustment="); pw.println(animLayerAdjustment); } if (startingData != null || removed || firstWindowDrawn) { pw.print(prefix); pw.print("startingData="); pw.print(startingData); pw.print(" removed="); pw.print(removed); Loading Loading @@ -9854,15 +9849,6 @@ public class WindowManagerService extends IWindowManager.Stub "New transit into wallpaper: " + transit); } if ((transit&WindowManagerPolicy.TRANSIT_ENTER_MASK) != 0) { mLastEnterAnimToken = animToken; mLastEnterAnimParams = animLp; } else if (mLastEnterAnimParams != null) { animLp = mLastEnterAnimParams; mLastEnterAnimToken = null; mLastEnterAnimParams = null; } // If all closing windows are obscured, then there is // no need to do an animation. This is the case, for // example, when this transition is being done behind Loading Loading @@ -10585,10 +10571,6 @@ public class WindowManagerService extends IWindowManager.Stub token.animating = false; mAppTokens.remove(token); mExitingAppTokens.remove(i); if (mLastEnterAnimToken == token) { mLastEnterAnimToken = null; mLastEnterAnimParams = null; } } } Loading Loading @@ -11409,10 +11391,6 @@ public class WindowManagerService extends IWindowManager.Stub } pw.print(" mStartingIconInTransition="); pw.print(mStartingIconInTransition); pw.print(", mSkipAppTransitionAnimation="); pw.println(mSkipAppTransitionAnimation); if (mLastEnterAnimToken != null || mLastEnterAnimToken != null) { pw.print(" mLastEnterAnimToken="); pw.print(mLastEnterAnimToken); pw.print(", mLastEnterAnimParams="); pw.println(mLastEnterAnimParams); } if (mOpeningApps.size() > 0) { pw.print(" mOpeningApps="); pw.println(mOpeningApps); } Loading
services/java/com/android/server/am/ActivityStack.java +28 −17 Original line number Diff line number Diff line Loading @@ -1195,11 +1195,12 @@ public class ActivityStack { if (DEBUG_TRANSITION) Slog.v(TAG, "Prepare close transition: prev=" + prev); if (mNoAnimActivities.contains(prev)) { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_NONE); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_NONE, false); } else { mService.mWindowManager.prepareAppTransition(prev.task == next.task ? WindowManagerPolicy.TRANSIT_ACTIVITY_CLOSE : WindowManagerPolicy.TRANSIT_TASK_CLOSE); : WindowManagerPolicy.TRANSIT_TASK_CLOSE, false); } mService.mWindowManager.setAppWillBeHidden(prev); mService.mWindowManager.setAppVisibility(prev, false); Loading @@ -1207,11 +1208,12 @@ public class ActivityStack { if (DEBUG_TRANSITION) Slog.v(TAG, "Prepare open transition: prev=" + prev); if (mNoAnimActivities.contains(next)) { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_NONE); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_NONE, false); } else { mService.mWindowManager.prepareAppTransition(prev.task == next.task ? WindowManagerPolicy.TRANSIT_ACTIVITY_OPEN : WindowManagerPolicy.TRANSIT_TASK_OPEN); : WindowManagerPolicy.TRANSIT_TASK_OPEN, false); } } if (false) { Loading @@ -1222,9 +1224,11 @@ public class ActivityStack { if (DEBUG_TRANSITION) Slog.v(TAG, "Prepare open transition: no previous"); if (mNoAnimActivities.contains(next)) { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_NONE); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_NONE, false); } else { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_ACTIVITY_OPEN); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_ACTIVITY_OPEN, false); } } Loading Loading @@ -1368,7 +1372,7 @@ public class ActivityStack { } private final void startActivityLocked(ActivityRecord r, boolean newTask, boolean doResume) { boolean doResume, boolean keepCurTransition) { final int NH = mHistory.size(); int addPos = -1; Loading Loading @@ -1439,16 +1443,17 @@ public class ActivityStack { if (DEBUG_TRANSITION) Slog.v(TAG, "Prepare open transition: starting " + r); if ((r.intent.getFlags()&Intent.FLAG_ACTIVITY_NO_ANIMATION) != 0) { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_NONE); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_NONE, keepCurTransition); mNoAnimActivities.add(r); } else if ((r.intent.getFlags()&Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET) != 0) { mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_TASK_OPEN); WindowManagerPolicy.TRANSIT_TASK_OPEN, keepCurTransition); mNoAnimActivities.remove(r); } else { mService.mWindowManager.prepareAppTransition(newTask ? WindowManagerPolicy.TRANSIT_TASK_OPEN : WindowManagerPolicy.TRANSIT_ACTIVITY_OPEN); : WindowManagerPolicy.TRANSIT_ACTIVITY_OPEN, keepCurTransition); mNoAnimActivities.remove(r); } mService.mWindowManager.addAppToken( Loading Loading @@ -2250,7 +2255,7 @@ public class ActivityStack { (Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK)) == (Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK)) { // The caller has requested to completely replace any // exising task with its new activity. Well that should // existing task with its new activity. Well that should // not be too hard... reuseTask = taskTop.task; performClearTaskLocked(taskTop.task.taskId); Loading Loading @@ -2383,6 +2388,7 @@ public class ActivityStack { } boolean newTask = false; boolean keepCurTransition = false; // Should this be considered a new task? if (r.resultTo == null && !addingToTask Loading Loading @@ -2413,6 +2419,7 @@ public class ActivityStack { // activity is already running. ActivityRecord top = performClearTaskLocked( sourceRecord.task.taskId, r, launchFlags); keepCurTransition = true; if (top != null) { logStartActivity(EventLogTags.AM_NEW_INTENT, r, top.task); top.deliverNewIntentLocked(callingUid, r.intent); Loading Loading @@ -2474,7 +2481,7 @@ public class ActivityStack { EventLog.writeEvent(EventLogTags.AM_CREATE_TASK, r.task.taskId); } logStartActivity(EventLogTags.AM_CREATE_ACTIVITY, r, r.task); startActivityLocked(r, newTask, doResume); startActivityLocked(r, newTask, doResume, keepCurTransition); return START_SUCCESS; } Loading Loading @@ -3128,7 +3135,7 @@ public class ActivityStack { "Prepare close transition: finishing " + r); mService.mWindowManager.prepareAppTransition(endTask ? WindowManagerPolicy.TRANSIT_TASK_CLOSE : WindowManagerPolicy.TRANSIT_ACTIVITY_CLOSE); : WindowManagerPolicy.TRANSIT_ACTIVITY_CLOSE, false); // Tell window manager to prepare for this one to be removed. mService.mWindowManager.setAppVisibility(r, false); Loading Loading @@ -3481,13 +3488,15 @@ public class ActivityStack { "Prepare to front transition: task=" + tr); if (reason != null && (reason.intent.getFlags()&Intent.FLAG_ACTIVITY_NO_ANIMATION) != 0) { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_NONE); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_NONE, false); ActivityRecord r = topRunningActivityLocked(null); if (r != null) { mNoAnimActivities.add(r); } } else { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_TASK_TO_FRONT); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_TASK_TO_FRONT, false); } mService.mWindowManager.moveAppTokensToTop(moved); Loading Loading @@ -3566,13 +3575,15 @@ public class ActivityStack { if (reason != null && (reason.intent.getFlags()&Intent.FLAG_ACTIVITY_NO_ANIMATION) != 0) { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_NONE); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_NONE, false); ActivityRecord r = topRunningActivityLocked(null); if (r != null) { mNoAnimActivities.add(r); } } else { mService.mWindowManager.prepareAppTransition(WindowManagerPolicy.TRANSIT_TASK_TO_BACK); mService.mWindowManager.prepareAppTransition( WindowManagerPolicy.TRANSIT_TASK_TO_BACK, false); } mService.mWindowManager.moveAppTokensToBottom(moved); if (VALIDATE_TOKENS) { Loading
tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java +1 −1 Original line number Diff line number Diff line Loading @@ -144,7 +144,7 @@ public class WindowManagerPermissionTests extends TestCase { } try { mWm.prepareAppTransition(0); mWm.prepareAppTransition(0, false); fail("IWindowManager.prepareAppTransition did not throw SecurityException as" + " expected"); } catch (SecurityException e) { Loading