16e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn/*
26e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn * Copyright (C) 2011 The Android Open Source Project
36e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn *
46e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License");
56e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn * you may not use this file except in compliance with the License.
66e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn * You may obtain a copy of the License at
76e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn *
86e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn *      http://www.apache.org/licenses/LICENSE-2.0
96e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn *
106e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn * Unless required by applicable law or agreed to in writing, software
116e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS,
126e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn * See the License for the specific language governing permissions and
146e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn * limitations under the License.
156e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn */
166e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn
176e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackbornpackage com.android.server.wm;
186e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn
1902886a82d876aa5e31a92444fec70208599c509cJorim Jaggiimport android.view.WindowManagerPolicy.StartingSurface;
202f0b17573d4324832f7a20402a3d2b5920bc4866Dianne Hackborn
2102886a82d876aa5e31a92444fec70208599c509cJorim Jaggi/**
2202886a82d876aa5e31a92444fec70208599c509cJorim Jaggi * Represents the model about how a starting window should be constructed.
2302886a82d876aa5e31a92444fec70208599c509cJorim Jaggi */
2402886a82d876aa5e31a92444fec70208599c509cJorim Jaggipublic abstract class StartingData {
2502886a82d876aa5e31a92444fec70208599c509cJorim Jaggi
2602886a82d876aa5e31a92444fec70208599c509cJorim Jaggi    protected final WindowManagerService mService;
276e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn
28e09fc6b8d6b20cdb23d79b18d7daad5923019b3dJorim Jaggi    protected StartingData(WindowManagerService service) {
2902886a82d876aa5e31a92444fec70208599c509cJorim Jaggi        mService = service;
306e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn    }
3102886a82d876aa5e31a92444fec70208599c509cJorim Jaggi
3202886a82d876aa5e31a92444fec70208599c509cJorim Jaggi    /**
3302886a82d876aa5e31a92444fec70208599c509cJorim Jaggi     * Creates the actual starting window surface. DO NOT HOLD THE WINDOW MANAGER LOCK WHEN CALLING
3402886a82d876aa5e31a92444fec70208599c509cJorim Jaggi     * THIS METHOD.
3502886a82d876aa5e31a92444fec70208599c509cJorim Jaggi     *
36e09fc6b8d6b20cdb23d79b18d7daad5923019b3dJorim Jaggi     * @param atoken the app to add the starting window to
3702886a82d876aa5e31a92444fec70208599c509cJorim Jaggi     * @return a class implementing {@link StartingSurface} for easy removal with
3802886a82d876aa5e31a92444fec70208599c509cJorim Jaggi     *         {@link StartingSurface#remove}
3902886a82d876aa5e31a92444fec70208599c509cJorim Jaggi     */
40e09fc6b8d6b20cdb23d79b18d7daad5923019b3dJorim Jaggi    abstract StartingSurface createStartingSurface(AppWindowToken atoken);
416e1eb76f02ccc9dbc309b938f62d39312da8cafeDianne Hackborn}