1bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix/*
2bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix * Copyright (C) 2017 The Android Open Source Project
3bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix *
4bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix * Licensed under the Apache License, Version 2.0 (the "License");
5bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix * you may not use this file except in compliance with the License.
6bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix * You may obtain a copy of the License at
7bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix *
8bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix *      http://www.apache.org/licenses/LICENSE-2.0
9bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix *
10bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix * Unless required by applicable law or agreed to in writing, software
11bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix * distributed under the License is distributed on an "AS IS" BASIS,
12bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix * See the License for the specific language governing permissions and
14bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix * limitations under the License.
15bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix */
16bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix
17bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenixpackage android.hardware.sidekick;
18bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix
19bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix
20bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix/**
21bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix * Sidekick local system service interface.
22bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix *
23bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix * @hide Only for use within the system server, and maybe by Clockwork Home.
24bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix */
25bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenixpublic abstract class SidekickInternal {
26bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix
27bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix    /**
28bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     * Tell Sidekick to reset back to newly-powered-on state.
29bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     *
30bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     * @return true on success (Sidekick is reset), false if Sidekick is not
31bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     * available (failed or not present). Either way, upon return Sidekick is
32bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     * guaranteed not to be controlling the display.
33bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     */
34bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix    public abstract boolean reset();
35bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix
36bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix    /**
37bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     * Tell Sidekick it can start controlling the display.
38bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     *
39bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     * SidekickServer may choose not to actually control the display, if it's been told
40bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     * via other channels to leave the previous image on the display (same as SUSPEND in
41bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     * a non-Sidekick system).
42bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     *
43bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     * @param displayState - one of Display.STATE_DOZE_SUSPEND, Display.STATE_ON_SUSPEND
44bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     * @return true on success, false on failure (no sidekick available)
45bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     */
46bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix    public abstract boolean startDisplayControl(int displayState);
47bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix
48bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix    /**
49bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     * Tell Sidekick it must stop controlling the display.
50bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     *
51bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     * No return code because this must always succeed - after return, Sidekick
52bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     * is guaranteed to not be controlling the display.
53bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix     */
54bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix    public abstract void endDisplayControl();
55bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix
56bc839a3957bae1beeba16a345b5e6770ea2b7dccChris Phoenix}
57