blob: bb7f721ad61f039c2d3177764de22480b36b0561 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.systemui.settings
import android.view.Display
import java.util.concurrent.Executor
/**
* Display tracker for SystemUI.
*
* This tracker provides async access to display information, as well as callbacks for display
* changes.
*/
interface DisplayTracker {
/** The id for the default display for the current SystemUI instance. */
val defaultDisplayId: Int
/** All displays that should be associated with the current SystemUI instance. */
val allDisplays: Array<Display>
/**
* Add a [Callback] to be notified of display changes, including additions, removals, and
* configuration changes, on a particular [Executor].
*/
fun addDisplayChangeCallback(callback: Callback, executor: Executor)
/**
* Add a [Callback] to be notified of display brightness changes, on a particular [Executor].
* This callback will trigger Callback#onDisplayChanged for a display brightness change.
*/
fun addBrightnessChangeCallback(callback: Callback, executor: Executor)
/** Remove a [Callback] previously added. */
fun removeCallback(callback: Callback)
/** Ćallback for notifying of changes. */
interface Callback {
/** Notifies that a display has been added. */
@JvmDefault fun onDisplayAdded(displayId: Int) {}
/** Notifies that a display has been removed. */
@JvmDefault fun onDisplayRemoved(displayId: Int) {}
/** Notifies a display has been changed */
@JvmDefault fun onDisplayChanged(displayId: Int) {}
}
}
|