1d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock/*
2d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock * Copyright (C) 2013 The Android Open Source Project
3d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock *
4d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock * Licensed under the Apache License, Version 2.0 (the "License");
5d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock * you may not use this file except in compliance with the License.
6d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock * You may obtain a copy of the License at
7d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock *
8d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock *      http://www.apache.org/licenses/LICENSE-2.0
9d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock *
10d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock * Unless required by applicable law or agreed to in writing, software
11d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock * distributed under the License is distributed on an "AS IS" BASIS,
12d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock * See the License for the specific language governing permissions and
14d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock * limitations under the License.
15d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock */
16d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock
17d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlockpackage com.android.systemui;
18d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock
199ea2f7ba3155a455724f64e2d6a964ad4e99dfa5Jorim Jaggiimport android.graphics.Rect;
20d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlockimport android.view.Display;
21d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlockimport android.view.View;
22d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock
23d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlockpublic interface RecentsComponent {
24db21bbd2caf05322864f09ec45a0c572cf071123Jorim Jaggi    void showRecents(boolean triggeredFromAltTab, boolean fromHome);
25cdcd487abad10f728f0542accc42a31d1f7fedacWinson Chung    void hideRecents(boolean triggeredFromAltTab, boolean triggeredFromHomeKey);
26db21bbd2caf05322864f09ec45a0c572cf071123Jorim Jaggi    void toggleRecents(Display display);
271e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung    void preloadRecents();
281e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung    void cancelPreloadingRecents();
29b1f749906f5c27114d02ea0c3f8ce0dcea08fd3fWinson Chung    void showNextAffiliatedTask();
30b1f749906f5c27114d02ea0c3f8ce0dcea08fd3fWinson Chung    void showPrevAffiliatedTask();
3175b2597e5826662c1740d6f3b81966a9e6a9e7b4Jorim Jaggi
3275b2597e5826662c1740d6f3b81966a9e6a9e7b4Jorim Jaggi    /**
3375b2597e5826662c1740d6f3b81966a9e6a9e7b4Jorim Jaggi     * Docks the top-most task and opens recents.
3475b2597e5826662c1740d6f3b81966a9e6a9e7b4Jorim Jaggi     */
3529379ec859bf7118dec9f3248c63ee369218ad6bJorim Jaggi    boolean dockTopTask(int dragMode, int stackCreateMode, Rect initialBounds,
3629379ec859bf7118dec9f3248c63ee369218ad6bJorim Jaggi            int metricsDockAction);
37dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi
38dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi    /**
39dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi     * Called during a drag-from-navbar-in gesture.
40dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi     *
41dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi     * @param distanceFromTop the distance of the current drag in gesture from the top of the
42dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi     *                        screen
43dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi     */
44dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi    void onDraggingInRecents(float distanceFromTop);
45dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi
46dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi    /**
47dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi     * Called when the gesture to drag in recents ended.
48dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi     *
49dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi     * @param velocity the velocity of the finger when releasing it in pixels per second
50dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi     */
51dd98d41e3a65b3bcb37007ea5b29371cf013f563Jorim Jaggi    void onDraggingInRecentsEnded(float velocity);
52d08de37a2223d5183620098737eb93907a4ba92cJohn Spurlock}
53