10b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn/**
20b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn * Copyright (c) 2015, The Android Open Source Project
30b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn *
40b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License");
50b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn * you may not use this file except in compliance with the License.
60b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn * You may obtain a copy of the License at
70b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn *
80b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn *     http://www.apache.org/licenses/LICENSE-2.0
90b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn *
100b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn * Unless required by applicable law or agreed to in writing, software
110b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS,
120b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn * See the License for the specific language governing permissions and
140b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn * limitations under the License.
150b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn */
160b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn
170b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackbornpackage android.os;
180b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn
19ca5edbb6b5300e07a5f7bfbec36f08df65d8f6e7Yao Chenimport android.os.IMaintenanceActivityListener;
20af575b9f8e1b59be9c8862b6a65c0dcb88145a23Amith Yamasaniimport android.os.UserHandle;
21af575b9f8e1b59be9c8862b6a65c0dcb88145a23Amith Yamasani
220b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn/** @hide */
230b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborninterface IDeviceIdleController {
240b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn    void addPowerSaveWhitelistApp(String name);
250b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn    void removePowerSaveWhitelistApp(String name);
26081056475ea6f580fb0390d008c051f8f38175a7Suprabh Shukla    /* Removes an app from the system whitelist. Calling restoreSystemPowerWhitelistApp will add
27081056475ea6f580fb0390d008c051f8f38175a7Suprabh Shukla    the app back into the system whitelist */
28081056475ea6f580fb0390d008c051f8f38175a7Suprabh Shukla    void removeSystemPowerWhitelistApp(String name);
29081056475ea6f580fb0390d008c051f8f38175a7Suprabh Shukla    void restoreSystemPowerWhitelistApp(String name);
30081056475ea6f580fb0390d008c051f8f38175a7Suprabh Shukla    String[] getRemovedSystemPowerWhitelistApps();
314a503b1ece485d44c15eb02ec2bcd464b46e6f7fDianne Hackborn    String[] getSystemPowerWhitelistExceptIdle();
320b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn    String[] getSystemPowerWhitelist();
33262ae5c8eb1579bccaa0f6953b39e6fd65ff2288Dianne Hackborn    String[] getUserPowerWhitelist();
344a503b1ece485d44c15eb02ec2bcd464b46e6f7fDianne Hackborn    String[] getFullPowerWhitelistExceptIdle();
350b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn    String[] getFullPowerWhitelist();
364a503b1ece485d44c15eb02ec2bcd464b46e6f7fDianne Hackborn    int[] getAppIdWhitelistExceptIdle();
370b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn    int[] getAppIdWhitelist();
38262ae5c8eb1579bccaa0f6953b39e6fd65ff2288Dianne Hackborn    int[] getAppIdUserWhitelist();
39af575b9f8e1b59be9c8862b6a65c0dcb88145a23Amith Yamasani    int[] getAppIdTempWhitelist();
404a503b1ece485d44c15eb02ec2bcd464b46e6f7fDianne Hackborn    boolean isPowerSaveWhitelistExceptIdleApp(String name);
4106bf824628c118fbd5ad6756913d7fd63a6f4ce5Amith Yamasani    boolean isPowerSaveWhitelistApp(String name);
42fd854ee58c5d56f84047007ead9f88a767ae956fDianne Hackborn    void addPowerSaveTempWhitelistApp(String name, long duration, int userId, String reason);
43fd854ee58c5d56f84047007ead9f88a767ae956fDianne Hackborn    long addPowerSaveTempWhitelistAppForMms(String name, int userId, String reason);
44451c3468b9186790d5381334a736a35f9b1dab36Dianne Hackborn    long addPowerSaveTempWhitelistAppForSms(String name, int userId, String reason);
45b6683c428698105f715985a96066192aa62e9f53Dianne Hackborn    void exitIdle(String reason);
46ca5edbb6b5300e07a5f7bfbec36f08df65d8f6e7Yao Chen    boolean registerMaintenanceActivityListener(IMaintenanceActivityListener listener);
47ca5edbb6b5300e07a5f7bfbec36f08df65d8f6e7Yao Chen    void unregisterMaintenanceActivityListener(IMaintenanceActivityListener listener);
480b4daca9ba54b7252ea8c159218391380eb00c8aDianne Hackborn}
49