1/**
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5 * use this file except in compliance with the License. You may obtain a copy
6 * 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, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations
14 * under the License.
15 */
16
17package android.app.usage;
18
19import android.content.ComponentName;
20import android.content.res.Configuration;
21
22/**
23 * UsageStatsManager local system service interface.
24 *
25 * {@hide} Only for use within the system server.
26 */
27public abstract class UsageStatsManagerInternal {
28
29    /**
30     * Reports an event to the UsageStatsManager.
31     *
32     * @param component The component for which this event occurred.
33     * @param userId The user id to which the component belongs to.
34     * @param eventType The event that occurred. Valid values can be found at
35     * {@link UsageEvents}
36     */
37    public abstract void reportEvent(ComponentName component, int userId, int eventType);
38
39    /**
40     * Reports a configuration change to the UsageStatsManager.
41     *
42     * @param config The new device configuration.
43     */
44    public abstract void reportConfigurationChange(Configuration config, int userId);
45
46    /**
47     * Prepares the UsageStatsService for shutdown.
48     */
49    public abstract void prepareShutdown();
50}
51