1 /*
2 ** Copyright 2021, 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.res.Configuration;
20 import android.graphics.Rect;
21 import android.view.InsetsState;
22 import android.view.ISurfaceControlViewHostParent;
23 import android.window.ISurfaceSyncGroup;
24 
25 /**
26  * API from content embedder back to embedded content in SurfaceControlViewHost
27  * {@hide}
28  */
29 interface ISurfaceControlViewHost {
30     /**
31      * TODO (b/263273252): Investigate the need for these to be blocking calls or add additional
32      * APIs that are blocking
33      */
onConfigurationChanged(in Configuration newConfig)34     oneway void onConfigurationChanged(in Configuration newConfig);
onDispatchDetachedFromWindow()35     oneway void onDispatchDetachedFromWindow();
onInsetsChanged(in InsetsState state, in Rect insetFrame)36     oneway void onInsetsChanged(in InsetsState state, in Rect insetFrame);
getSurfaceSyncGroup()37     ISurfaceSyncGroup getSurfaceSyncGroup();
38     /**
39      * Attaches the parent interface so the embedded content can communicate back to the parent.
40      * If null is passed in, it will remove the parent interface and no more updates will be sent.
41      */
attachParentInterface(in @ullable ISurfaceControlViewHostParent parentInterface)42     oneway void attachParentInterface(in @nullable ISurfaceControlViewHostParent parentInterface);
43 }
44