1dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid/* 2dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid * Copyright (C) 2014 The Android Open Source Project 3dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid * 4dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid * Licensed under the Apache License, Version 2.0 (the "License"); 5dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid * you may not use this file except in compliance with the License. 6dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid * You may obtain a copy of the License at 7dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid * 8dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid * http://www.apache.org/licenses/LICENSE-2.0 9dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid * 10dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid * Unless required by applicable law or agreed to in writing, software 11dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid * distributed under the License is distributed on an "AS IS" BASIS, 12dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid * See the License for the specific language governing permissions and 14dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid * limitations under the License. 15dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid */ 16dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 17dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baidpackage android.support.v4.app; 18dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 19dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baidimport android.app.Activity; 20dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baidimport android.app.ActivityOptions; 21dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baidimport android.app.PendingIntent; 22dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baidimport android.content.Context; 23dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baidimport android.graphics.Bitmap; 24dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baidimport android.graphics.Rect; 25dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baidimport android.os.Bundle; 26dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baidimport android.support.annotation.Nullable; 27dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baidimport android.util.Pair; 28dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baidimport android.view.View; 29dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 30dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baidclass ActivityOptionsCompat24 { 31dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 32dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid public static ActivityOptionsCompat24 makeCustomAnimation(Context context, 33dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid int enterResId, int exitResId) { 34dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid return new ActivityOptionsCompat24( 35dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid ActivityOptions.makeCustomAnimation(context, enterResId, exitResId)); 36dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 37dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 38dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid public static ActivityOptionsCompat24 makeScaleUpAnimation(View source, 39dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid int startX, int startY, int startWidth, int startHeight) { 40dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid return new ActivityOptionsCompat24( 41dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid ActivityOptions.makeScaleUpAnimation(source, startX, startY, startWidth, startHeight)); 42dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 43dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 44dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid public static ActivityOptionsCompat24 makeThumbnailScaleUpAnimation(View source, 45dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid Bitmap thumbnail, int startX, int startY) { 46dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid return new ActivityOptionsCompat24( 47dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid ActivityOptions.makeThumbnailScaleUpAnimation(source, thumbnail, startX, startY)); 48dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 49dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 50dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid public static ActivityOptionsCompat24 makeSceneTransitionAnimation(Activity activity, 51dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid View sharedElement, String sharedElementName) { 52dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid return new ActivityOptionsCompat24( 53dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid ActivityOptions.makeSceneTransitionAnimation(activity, sharedElement, 54dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid sharedElementName)); 55dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 56dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 57dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid public static ActivityOptionsCompat24 makeSceneTransitionAnimation(Activity activity, 58dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid View[] sharedElements, String[] sharedElementNames) { 59dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid Pair[] pairs = null; 60dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid if (sharedElements != null) { 61dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid pairs = new Pair[sharedElements.length]; 62dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid for (int i = 0; i < pairs.length; i++) { 63dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid pairs[i] = Pair.create(sharedElements[i], sharedElementNames[i]); 64dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 65dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 66dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid return new ActivityOptionsCompat24( 67dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid ActivityOptions.makeSceneTransitionAnimation(activity, pairs)); 68dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 69dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 70dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid public static ActivityOptionsCompat24 makeClipRevealAnimation(View source, 71dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid int startX, int startY, int width, int height) { 72dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid return new ActivityOptionsCompat24( 73dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid ActivityOptions.makeClipRevealAnimation(source, startX, startY, width, height)); 74dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 75dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 76dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid public static ActivityOptionsCompat24 makeTaskLaunchBehind() { 77dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid return new ActivityOptionsCompat24( 78dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid ActivityOptions.makeTaskLaunchBehind()); 79dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 80dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 81dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid public static ActivityOptionsCompat24 makeBasic() { 82dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid return new ActivityOptionsCompat24(ActivityOptions.makeBasic()); 83dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 84dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 85dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid private final ActivityOptions mActivityOptions; 86dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 87dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid private ActivityOptionsCompat24(ActivityOptions activityOptions) { 88dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid mActivityOptions = activityOptions; 89dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 90dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 91dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid public ActivityOptionsCompat24 setLaunchBounds(@Nullable Rect screenSpacePixelRect) { 92dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid return new ActivityOptionsCompat24(mActivityOptions.setLaunchBounds(screenSpacePixelRect)); 93dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 94dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 95dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid public Rect getLaunchBounds() { 96dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid return mActivityOptions.getLaunchBounds(); 97dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 98dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 99dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid public Bundle toBundle() { 100dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid return mActivityOptions.toBundle(); 101dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 102dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 103dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid public void update(ActivityOptionsCompat24 otherOptions) { 104dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid mActivityOptions.update(otherOptions.mActivityOptions); 105dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 106dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid 107dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid public void requestUsageTimeReport(PendingIntent receiver) { 108dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid mActivityOptions.requestUsageTimeReport(receiver); 109dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid } 110dcb9c07ac922c022750a803a74e4bb98a4bd8693Abhinav Baid} 111