Loading core/java/android/app/ActivityOptions.java +11 −1 Original line number Diff line number Diff line Loading @@ -147,12 +147,17 @@ public class ActivityOptions { * activity is scaled from a small originating area of the screen to * its final full representation. * * <p>If the Intent this is being used with has not set its * {@link android.content.Intent#setSourceBounds Intent.setSourceBounds}, * those bounds will be filled in for you based on the initial * bounds passed in here. * * @param source The View that the new activity is animating from. This * defines the coordinate space for <var>startX</var> and <var>startY</var>. * @param startX The x starting location of the new activity, relative to <var>source</var>. * @param startY The y starting location of the activity, relative to <var>source</var>. * @param startWidth The initial width of the new activity. * @param startWidth The initial height of the new activity. * @param startHeight The initial height of the new activity. * @return Returns a new ActivityOptions object that you can use to * supply these options as the options Bundle when starting an activity. */ Loading @@ -175,6 +180,11 @@ public class ActivityOptions { * is scaled from a given position to the new activity window that is * being started. * * <p>If the Intent this is being used with has not set its * {@link android.content.Intent#setSourceBounds Intent.setSourceBounds}, * those bounds will be filled in for you based on the initial * thumbnail location and size provided here. * * @param source The View that this thumbnail is animating from. This * defines the coordinate space for <var>startX</var> and <var>startY</var>. * @param thumbnail The bitmap that will be shown as the initial thumbnail Loading services/java/com/android/server/am/ActivityRecord.java +15 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.content.pm.ApplicationInfo; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.Rect; import android.os.Build; import android.os.Bundle; import android.os.IBinder; Loading Loading @@ -562,12 +563,26 @@ final class ActivityRecord { service.mWindowManager.overridePendingAppTransitionScaleUp( pendingOptions.getStartX(), pendingOptions.getStartY(), pendingOptions.getStartWidth(), pendingOptions.getStartHeight()); if (intent.getSourceBounds() == null) { intent.setSourceBounds(new Rect(pendingOptions.getStartX(), pendingOptions.getStartY(), pendingOptions.getStartX()+pendingOptions.getStartWidth(), pendingOptions.getStartY()+pendingOptions.getStartHeight())); } break; case ActivityOptions.ANIM_THUMBNAIL: service.mWindowManager.overridePendingAppTransitionThumb( pendingOptions.getThumbnail(), pendingOptions.getStartX(), pendingOptions.getStartY(), pendingOptions.getOnAnimationStartListener()); if (intent.getSourceBounds() == null) { intent.setSourceBounds(new Rect(pendingOptions.getStartX(), pendingOptions.getStartY(), pendingOptions.getStartX() + pendingOptions.getThumbnail().getWidth(), pendingOptions.getStartY() + pendingOptions.getThumbnail().getHeight())); } break; } pendingOptions = null; Loading services/java/com/android/server/am/TaskRecord.java +3 −1 Original line number Diff line number Diff line Loading @@ -63,9 +63,10 @@ class TaskRecord extends ThumbnailHolder { // If this Intent has a selector, we want to clear it for the // recent task since it is not relevant if the user later wants // to re-launch the app. if (_intent.getSelector() != null) { if (_intent.getSelector() != null || _intent.getSourceBounds() != null) { _intent = new Intent(_intent); _intent.setSelector(null); _intent.setSourceBounds(null); } } intent = _intent; Loading @@ -78,6 +79,7 @@ class TaskRecord extends ThumbnailHolder { Intent targetIntent = new Intent(_intent); targetIntent.setComponent(targetComponent); targetIntent.setSelector(null); targetIntent.setSourceBounds(null); intent = targetIntent; realActivity = targetComponent; origActivity = _intent.getComponent(); Loading Loading
core/java/android/app/ActivityOptions.java +11 −1 Original line number Diff line number Diff line Loading @@ -147,12 +147,17 @@ public class ActivityOptions { * activity is scaled from a small originating area of the screen to * its final full representation. * * <p>If the Intent this is being used with has not set its * {@link android.content.Intent#setSourceBounds Intent.setSourceBounds}, * those bounds will be filled in for you based on the initial * bounds passed in here. * * @param source The View that the new activity is animating from. This * defines the coordinate space for <var>startX</var> and <var>startY</var>. * @param startX The x starting location of the new activity, relative to <var>source</var>. * @param startY The y starting location of the activity, relative to <var>source</var>. * @param startWidth The initial width of the new activity. * @param startWidth The initial height of the new activity. * @param startHeight The initial height of the new activity. * @return Returns a new ActivityOptions object that you can use to * supply these options as the options Bundle when starting an activity. */ Loading @@ -175,6 +180,11 @@ public class ActivityOptions { * is scaled from a given position to the new activity window that is * being started. * * <p>If the Intent this is being used with has not set its * {@link android.content.Intent#setSourceBounds Intent.setSourceBounds}, * those bounds will be filled in for you based on the initial * thumbnail location and size provided here. * * @param source The View that this thumbnail is animating from. This * defines the coordinate space for <var>startX</var> and <var>startY</var>. * @param thumbnail The bitmap that will be shown as the initial thumbnail Loading
services/java/com/android/server/am/ActivityRecord.java +15 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.content.pm.ApplicationInfo; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.Rect; import android.os.Build; import android.os.Bundle; import android.os.IBinder; Loading Loading @@ -562,12 +563,26 @@ final class ActivityRecord { service.mWindowManager.overridePendingAppTransitionScaleUp( pendingOptions.getStartX(), pendingOptions.getStartY(), pendingOptions.getStartWidth(), pendingOptions.getStartHeight()); if (intent.getSourceBounds() == null) { intent.setSourceBounds(new Rect(pendingOptions.getStartX(), pendingOptions.getStartY(), pendingOptions.getStartX()+pendingOptions.getStartWidth(), pendingOptions.getStartY()+pendingOptions.getStartHeight())); } break; case ActivityOptions.ANIM_THUMBNAIL: service.mWindowManager.overridePendingAppTransitionThumb( pendingOptions.getThumbnail(), pendingOptions.getStartX(), pendingOptions.getStartY(), pendingOptions.getOnAnimationStartListener()); if (intent.getSourceBounds() == null) { intent.setSourceBounds(new Rect(pendingOptions.getStartX(), pendingOptions.getStartY(), pendingOptions.getStartX() + pendingOptions.getThumbnail().getWidth(), pendingOptions.getStartY() + pendingOptions.getThumbnail().getHeight())); } break; } pendingOptions = null; Loading
services/java/com/android/server/am/TaskRecord.java +3 −1 Original line number Diff line number Diff line Loading @@ -63,9 +63,10 @@ class TaskRecord extends ThumbnailHolder { // If this Intent has a selector, we want to clear it for the // recent task since it is not relevant if the user later wants // to re-launch the app. if (_intent.getSelector() != null) { if (_intent.getSelector() != null || _intent.getSourceBounds() != null) { _intent = new Intent(_intent); _intent.setSelector(null); _intent.setSourceBounds(null); } } intent = _intent; Loading @@ -78,6 +79,7 @@ class TaskRecord extends ThumbnailHolder { Intent targetIntent = new Intent(_intent); targetIntent.setComponent(targetComponent); targetIntent.setSelector(null); targetIntent.setSourceBounds(null); intent = targetIntent; realActivity = targetComponent; origActivity = _intent.getComponent(); Loading