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