• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (c) 2016, The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.view;
18 
19 import android.content.pm.ParceledListSlice;
20 import android.graphics.Rect;
21 import android.view.IPinnedStackController;
22 
23 /**
24  * Listener for changes to the pinned stack made by the WindowManager.
25  *
26  * @hide
27  */
28 oneway interface IPinnedStackListener {
29 
30     /**
31      * Called when the listener is registered and provides an interface to call back to the pinned
32      * stack controller to update the controller of the pinned stack state.
33      */
onListenerRegistered(IPinnedStackController controller)34     void onListenerRegistered(IPinnedStackController controller);
35 
36     /**
37      * Called when the window manager has detected a change that would cause the movement bounds
38      * to be changed (ie. after configuration change, aspect ratio change, etc). It then provides
39      * the components that allow the listener to calculate the movement bounds itself. The
40      * {@param normalBounds} are also the default bounds that the PiP would be entered in its
41      * current state with the aspect ratio applied.  The {@param animatingBounds} are provided
42      * to indicate the current target bounds of the pinned stack (the final bounds if animating,
43      * the current bounds if not), which may be helpful in calculating dependent animation bounds.
44      *
45      * The {@param displayRotation} is provided so that the client can verify when making certain
46      * calls that it will not provide stale information based on an old display rotation (ie. if
47      * the WM has changed in the mean time but the client has not received onMovementBoundsChanged).
48      */
onMovementBoundsChanged(in Rect insetBounds, in Rect normalBounds, in Rect animatingBounds, boolean fromImeAdjustement, int displayRotation)49     void onMovementBoundsChanged(in Rect insetBounds, in Rect normalBounds, in Rect animatingBounds,
50             boolean fromImeAdjustement, int displayRotation);
51 
52     /**
53      * Called when window manager decides to adjust the pinned stack bounds because of the IME, or
54      * when the listener is first registered to allow the listener to synchronized its state with
55      * the controller.  This call will always be followed by a onMovementBoundsChanged() call
56      * with fromImeAdjustement set to true.
57      */
onImeVisibilityChanged(boolean imeVisible, int imeHeight)58     void onImeVisibilityChanged(boolean imeVisible, int imeHeight);
59 
60     /**
61      * Called when window manager decides to adjust the minimized state, or when the listener
62      * is first registered to allow the listener to synchronized its state with the controller.
63      */
onMinimizedStateChanged(boolean isMinimized)64     void onMinimizedStateChanged(boolean isMinimized);
65 
66     /**
67      * Called when the set of actions for the current PiP activity changes, or when the listener
68      * is first registered to allow the listener to synchronized its state with the controller.
69      */
onActionsChanged(in ParceledListSlice actions)70     void onActionsChanged(in ParceledListSlice actions);
71 }
72