summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/hardware/display/DisplayManager.java8
-rw-r--r--core/java/android/hardware/display/DisplayManagerGlobal.java75
-rw-r--r--services/core/java/com/android/server/display/DisplayManagerService.java45
3 files changed, 66 insertions, 62 deletions
diff --git a/core/java/android/hardware/display/DisplayManager.java b/core/java/android/hardware/display/DisplayManager.java
index b0ea92d140a5..a81bcbcce9c9 100644
--- a/core/java/android/hardware/display/DisplayManager.java
+++ b/core/java/android/hardware/display/DisplayManager.java
@@ -580,7 +580,7 @@ public final class DisplayManager {
EVENT_FLAG_DISPLAY_CONNECTION_CHANGED,
})
@Retention(RetentionPolicy.SOURCE)
- public @interface EventsMask {}
+ public @interface EventFlag {}
/**
* Event type for when a new display is added.
@@ -774,7 +774,7 @@ public final class DisplayManager {
* @param listener The listener to register.
* @param handler The handler on which the listener should be invoked, or null
* if the listener should be invoked on the calling thread's looper.
- * @param eventsMask A bitmask of the event types for which this listener is subscribed.
+ * @param eventFlagsMask A bitmask of the event types for which this listener is subscribed.
*
* @see #EVENT_FLAG_DISPLAY_ADDED
* @see #EVENT_FLAG_DISPLAY_CHANGED
@@ -786,8 +786,8 @@ public final class DisplayManager {
* @hide
*/
public void registerDisplayListener(@NonNull DisplayListener listener,
- @Nullable Handler handler, @EventsMask long eventsMask) {
- mGlobal.registerDisplayListener(listener, handler, eventsMask,
+ @Nullable Handler handler, @EventFlag long eventFlagsMask) {
+ mGlobal.registerDisplayListener(listener, handler, eventFlagsMask,
ActivityThread.currentPackageName());
}
diff --git a/core/java/android/hardware/display/DisplayManagerGlobal.java b/core/java/android/hardware/display/DisplayManagerGlobal.java
index 6affd123bfde..3c6841cd8aeb 100644
--- a/core/java/android/hardware/display/DisplayManagerGlobal.java
+++ b/core/java/android/hardware/display/DisplayManagerGlobal.java
@@ -17,7 +17,7 @@
package android.hardware.display;
-import static android.hardware.display.DisplayManager.EventsMask;
+import static android.hardware.display.DisplayManager.EventFlag;
import static android.view.Display.HdrCapabilities.HdrType;
import android.Manifest;
@@ -130,7 +130,7 @@ public final class DisplayManagerGlobal {
private final IDisplayManager mDm;
private DisplayManagerCallback mCallback;
- private @EventsMask long mRegisteredEventsMask = 0;
+ private @EventFlag long mRegisteredEventFlagsMask = 0;
private final CopyOnWriteArrayList<DisplayListenerDelegate> mDisplayListeners =
new CopyOnWriteArrayList<>();
@@ -346,10 +346,11 @@ public final class DisplayManagerGlobal {
* @param packageName of the calling package.
*/
public void registerDisplayListener(@NonNull DisplayListener listener,
- @Nullable Handler handler, @EventsMask long eventsMask, String packageName) {
+ @Nullable Handler handler, @EventFlag long eventFlagsMask,
+ String packageName) {
Looper looper = getLooperForHandler(handler);
Handler springBoard = new Handler(looper);
- registerDisplayListener(listener, new HandlerExecutor(springBoard), eventsMask,
+ registerDisplayListener(listener, new HandlerExecutor(springBoard), eventFlagsMask,
packageName);
}
@@ -358,32 +359,32 @@ public final class DisplayManagerGlobal {
*
* @param listener The listener that will be called when display changes occur.
* @param executor Executor for the thread that will be receiving the callbacks. Cannot be null.
- * @param eventsMask Mask of events to be listened to.
+ * @param eventFlagsMask Flag of events to be listened to.
* @param packageName of the calling package.
*/
public void registerDisplayListener(@NonNull DisplayListener listener,
- @NonNull Executor executor, @EventsMask long eventsMask, String packageName) {
+ @NonNull Executor executor, @EventFlag long eventFlagsMask, String packageName) {
if (listener == null) {
throw new IllegalArgumentException("listener must not be null");
}
- if (eventsMask == 0) {
+ if (eventFlagsMask == 0) {
throw new IllegalArgumentException("The set of events to listen to must not be empty.");
}
if (extraLogging()) {
Slog.i(TAG, "Registering Display Listener: "
- + Long.toBinaryString(eventsMask) + ", packageName: " + packageName);
+ + Long.toBinaryString(eventFlagsMask) + ", packageName: " + packageName);
}
synchronized (mLock) {
int index = findDisplayListenerLocked(listener);
if (index < 0) {
- mDisplayListeners.add(new DisplayListenerDelegate(listener, executor, eventsMask,
- packageName));
+ mDisplayListeners.add(new DisplayListenerDelegate(listener, executor,
+ eventFlagsMask, packageName));
registerCallbackIfNeededLocked();
} else {
- mDisplayListeners.get(index).setEventsMask(eventsMask);
+ mDisplayListeners.get(index).setEventFlagsMask(eventFlagsMask);
}
updateCallbackIfNeededLocked();
maybeLogAllDisplayListeners();
@@ -455,12 +456,12 @@ public final class DisplayManagerGlobal {
return -1;
}
- @EventsMask
- private int calculateEventsMaskLocked() {
+ @EventFlag
+ private int calculateEventFlagsMaskLocked() {
int mask = 0;
final int numListeners = mDisplayListeners.size();
for (int i = 0; i < numListeners; i++) {
- mask |= mDisplayListeners.get(i).mEventsMask;
+ mask |= mDisplayListeners.get(i).mEventFlagsMask;
}
if (mDispatchNativeCallbacks) {
mask |= DisplayManager.EVENT_FLAG_DISPLAY_ADDED
@@ -478,14 +479,14 @@ public final class DisplayManagerGlobal {
}
private void updateCallbackIfNeededLocked() {
- int mask = calculateEventsMaskLocked();
+ int mask = calculateEventFlagsMaskLocked();
if (DEBUG) {
- Log.d(TAG, "Mask for listener: " + mask);
+ Log.d(TAG, "Flag for listener: " + mask);
}
- if (mask != mRegisteredEventsMask) {
+ if (mask != mRegisteredEventFlagsMask) {
try {
mDm.registerCallbackWithEventMask(mCallback, mask);
- mRegisteredEventsMask = mask;
+ mRegisteredEventFlagsMask = mask;
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
@@ -1276,7 +1277,7 @@ public final class DisplayManagerGlobal {
private static final class DisplayListenerDelegate {
public final DisplayListener mListener;
- public volatile long mEventsMask;
+ public volatile long mEventFlagsMask;
private final DisplayInfo mDisplayInfo = new DisplayInfo();
private final Executor mExecutor;
@@ -1284,10 +1285,10 @@ public final class DisplayManagerGlobal {
private final String mPackageName;
DisplayListenerDelegate(DisplayListener listener, @NonNull Executor executor,
- @EventsMask long eventsMask, String packageName) {
+ @EventFlag long eventFlag, String packageName) {
mExecutor = executor;
mListener = listener;
- mEventsMask = eventsMask;
+ mEventFlagsMask = eventFlag;
mPackageName = packageName;
}
@@ -1309,16 +1310,16 @@ public final class DisplayManagerGlobal {
mGenerationId.incrementAndGet();
}
- void setEventsMask(@EventsMask long newEventsMask) {
- mEventsMask = newEventsMask;
+ void setEventFlagsMask(@EventFlag long newEventsFlag) {
+ mEventFlagsMask = newEventsFlag;
}
- private void handleDisplayEventInner(int displayId, @DisplayEvent int event,
+ private void handleDisplayEventInner(int displayId, @DisplayEvent int eventFlagsMask,
@Nullable DisplayInfo info, boolean forceUpdate) {
if (extraLogging()) {
- Slog.i(TAG, "DLD(" + eventToString(event)
+ Slog.i(TAG, "DLD(" + eventToString(eventFlagsMask)
+ ", display=" + displayId
- + ", mEventsMask=" + Long.toBinaryString(mEventsMask)
+ + ", mEventsFlagMask=" + Long.toBinaryString(mEventFlagsMask)
+ ", mPackageName=" + mPackageName
+ ", displayInfo=" + info
+ ", listener=" + mListener.getClass() + ")");
@@ -1326,18 +1327,18 @@ public final class DisplayManagerGlobal {
if (DEBUG) {
Trace.beginSection(
TextUtils.trimToSize(
- "DLD(" + eventToString(event)
+ "DLD(" + eventToString(eventFlagsMask)
+ ", display=" + displayId
+ ", listener=" + mListener.getClass() + ")", 127));
}
- switch (event) {
+ switch (eventFlagsMask) {
case EVENT_DISPLAY_ADDED:
- if ((mEventsMask & DisplayManager.EVENT_FLAG_DISPLAY_ADDED) != 0) {
+ if ((mEventFlagsMask & DisplayManager.EVENT_FLAG_DISPLAY_ADDED) != 0) {
mListener.onDisplayAdded(displayId);
}
break;
case EVENT_DISPLAY_CHANGED:
- if ((mEventsMask & DisplayManager.EVENT_FLAG_DISPLAY_CHANGED) != 0) {
+ if ((mEventFlagsMask & DisplayManager.EVENT_FLAG_DISPLAY_CHANGED) != 0) {
if (info != null && (forceUpdate || !info.equals(mDisplayInfo))) {
if (extraLogging()) {
Slog.i(TAG, "Sending onDisplayChanged: Display Changed. Info: "
@@ -1349,27 +1350,29 @@ public final class DisplayManagerGlobal {
}
break;
case EVENT_DISPLAY_BRIGHTNESS_CHANGED:
- if ((mEventsMask & DisplayManager.EVENT_FLAG_DISPLAY_BRIGHTNESS) != 0) {
+ if ((mEventFlagsMask & DisplayManager.EVENT_FLAG_DISPLAY_BRIGHTNESS) != 0) {
mListener.onDisplayChanged(displayId);
}
break;
case EVENT_DISPLAY_REMOVED:
- if ((mEventsMask & DisplayManager.EVENT_FLAG_DISPLAY_REMOVED) != 0) {
+ if ((mEventFlagsMask & DisplayManager.EVENT_FLAG_DISPLAY_REMOVED) != 0) {
mListener.onDisplayRemoved(displayId);
}
break;
case EVENT_DISPLAY_HDR_SDR_RATIO_CHANGED:
- if ((mEventsMask & DisplayManager.EVENT_FLAG_HDR_SDR_RATIO_CHANGED) != 0) {
+ if ((mEventFlagsMask & DisplayManager.EVENT_FLAG_HDR_SDR_RATIO_CHANGED) != 0) {
mListener.onDisplayChanged(displayId);
}
break;
case EVENT_DISPLAY_CONNECTED:
- if ((mEventsMask & DisplayManager.EVENT_FLAG_DISPLAY_CONNECTION_CHANGED) != 0) {
+ if ((mEventFlagsMask & DisplayManager.EVENT_FLAG_DISPLAY_CONNECTION_CHANGED)
+ != 0) {
mListener.onDisplayConnected(displayId);
}
break;
case EVENT_DISPLAY_DISCONNECTED:
- if ((mEventsMask & DisplayManager.EVENT_FLAG_DISPLAY_CONNECTION_CHANGED) != 0) {
+ if ((mEventFlagsMask & DisplayManager.EVENT_FLAG_DISPLAY_CONNECTION_CHANGED)
+ != 0) {
mListener.onDisplayDisconnected(displayId);
}
break;
@@ -1381,7 +1384,7 @@ public final class DisplayManagerGlobal {
@Override
public String toString() {
- return "mask: {" + mEventsMask + "}, for " + mListener.getClass();
+ return "mEventFlagsMask: {" + mEventFlagsMask + "}, for " + mListener.getClass();
}
}
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index f39fbfbc8a05..f5a75c7d1c38 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -25,7 +25,7 @@ import static android.Manifest.permission.MANAGE_DISPLAYS;
import static android.Manifest.permission.RESTRICT_DISPLAY_MODES;
import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_CACHED;
import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_GONE;
-import static android.hardware.display.DisplayManager.EventsMask;
+import static android.hardware.display.DisplayManager.EventFlag;
import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_ALWAYS_UNLOCKED;
import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR;
import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_CAN_SHOW_WITH_INSECURE_KEYGUARD;
@@ -1390,16 +1390,16 @@ public final class DisplayManagerService extends SystemService {
}
private void registerCallbackInternal(IDisplayManagerCallback callback, int callingPid,
- int callingUid, @EventsMask long eventsMask) {
+ int callingUid, @EventFlag long eventFlagsMask) {
synchronized (mSyncRoot) {
CallbackRecord record = mCallbacks.get(callingPid);
if (record != null) {
- record.updateEventsMask(eventsMask);
+ record.updateEventFlagsMask(eventFlagsMask);
return;
}
- record = new CallbackRecord(callingPid, callingUid, callback, eventsMask);
+ record = new CallbackRecord(callingPid, callingUid, callback, eventFlagsMask);
try {
IBinder binder = callback.asBinder();
binder.linkToDeath(record, 0);
@@ -4009,7 +4009,7 @@ public final class DisplayManagerService extends SystemService {
public final int mPid;
public final int mUid;
private final IDisplayManagerCallback mCallback;
- private @EventsMask AtomicLong mEventsMask;
+ private @DisplayManager.EventFlag AtomicLong mEventFlagsMask;
private final String mPackageName;
public boolean mWifiDisplayScanRequested;
@@ -4030,11 +4030,11 @@ public final class DisplayManagerService extends SystemService {
private boolean mFrozen;
CallbackRecord(int pid, int uid, @NonNull IDisplayManagerCallback callback,
- @EventsMask long eventsMask) {
+ @EventFlag long eventFlagsMask) {
mPid = pid;
mUid = uid;
mCallback = callback;
- mEventsMask = new AtomicLong(eventsMask);
+ mEventFlagsMask = new AtomicLong(eventFlagsMask);
mCached = false;
mFrozen = false;
@@ -4056,8 +4056,8 @@ public final class DisplayManagerService extends SystemService {
mPackageName = packageNames == null ? null : packageNames[0];
}
- public void updateEventsMask(@EventsMask long eventsMask) {
- mEventsMask.set(eventsMask);
+ public void updateEventFlagsMask(@EventFlag long eventFlag) {
+ mEventFlagsMask.set(eventFlag);
}
/**
@@ -4121,12 +4121,13 @@ public final class DisplayManagerService extends SystemService {
if (!shouldSendEvent(event)) {
if (extraLogging(mPackageName)) {
Slog.i(TAG,
- "Not sending displayEvent: " + event + " due to mask:" + mEventsMask);
+ "Not sending displayEvent: " + event + " due to flag:"
+ + mEventFlagsMask);
}
if (Trace.isTagEnabled(Trace.TRACE_TAG_POWER)) {
Trace.instant(Trace.TRACE_TAG_POWER,
- "notifyDisplayEventAsync#notSendingEvent=" + event + ",mEventsMask="
- + mEventsMask);
+ "notifyDisplayEventAsync#notSendingEvent=" + event + ",mEventsFlag="
+ + mEventFlagsMask);
}
// The client is not interested in this event, so do nothing.
return true;
@@ -4172,22 +4173,22 @@ public final class DisplayManagerService extends SystemService {
* Return true if the client is interested in this event.
*/
private boolean shouldSendEvent(@DisplayEvent int event) {
- final long mask = mEventsMask.get();
+ final long flag = mEventFlagsMask.get();
switch (event) {
case DisplayManagerGlobal.EVENT_DISPLAY_ADDED:
- return (mask & DisplayManager.EVENT_FLAG_DISPLAY_ADDED) != 0;
+ return (flag & DisplayManager.EVENT_FLAG_DISPLAY_ADDED) != 0;
case DisplayManagerGlobal.EVENT_DISPLAY_CHANGED:
- return (mask & DisplayManager.EVENT_FLAG_DISPLAY_CHANGED) != 0;
+ return (flag & DisplayManager.EVENT_FLAG_DISPLAY_CHANGED) != 0;
case DisplayManagerGlobal.EVENT_DISPLAY_BRIGHTNESS_CHANGED:
- return (mask & DisplayManager.EVENT_FLAG_DISPLAY_BRIGHTNESS) != 0;
+ return (flag & DisplayManager.EVENT_FLAG_DISPLAY_BRIGHTNESS) != 0;
case DisplayManagerGlobal.EVENT_DISPLAY_REMOVED:
- return (mask & DisplayManager.EVENT_FLAG_DISPLAY_REMOVED) != 0;
+ return (flag & DisplayManager.EVENT_FLAG_DISPLAY_REMOVED) != 0;
case DisplayManagerGlobal.EVENT_DISPLAY_HDR_SDR_RATIO_CHANGED:
- return (mask & DisplayManager.EVENT_FLAG_HDR_SDR_RATIO_CHANGED) != 0;
+ return (flag & DisplayManager.EVENT_FLAG_HDR_SDR_RATIO_CHANGED) != 0;
case DisplayManagerGlobal.EVENT_DISPLAY_CONNECTED:
// fallthrough
case DisplayManagerGlobal.EVENT_DISPLAY_DISCONNECTED:
- return (mask & DisplayManager.EVENT_FLAG_DISPLAY_CONNECTION_CHANGED) != 0;
+ return (flag & DisplayManager.EVENT_FLAG_DISPLAY_CONNECTION_CHANGED) != 0;
default:
// This should never happen.
Slog.e(TAG, "Unknown display event " + event);
@@ -4381,7 +4382,7 @@ public final class DisplayManagerService extends SystemService {
@Override // Binder call
@SuppressLint("AndroidFrameworkRequiresPermission") // Permission only required sometimes
public void registerCallbackWithEventMask(IDisplayManagerCallback callback,
- @EventsMask long eventsMask) {
+ @EventFlag long eventFlagsMask) {
if (callback == null) {
throw new IllegalArgumentException("listener must not be null");
}
@@ -4390,7 +4391,7 @@ public final class DisplayManagerService extends SystemService {
final int callingUid = Binder.getCallingUid();
if (mFlags.isConnectedDisplayManagementEnabled()) {
- if ((eventsMask & DisplayManager.EVENT_FLAG_DISPLAY_CONNECTION_CHANGED) != 0) {
+ if ((eventFlagsMask & DisplayManager.EVENT_FLAG_DISPLAY_CONNECTION_CHANGED) != 0) {
mContext.enforceCallingOrSelfPermission(MANAGE_DISPLAYS,
"Permission required to get signals about connection events.");
}
@@ -4398,7 +4399,7 @@ public final class DisplayManagerService extends SystemService {
final long token = Binder.clearCallingIdentity();
try {
- registerCallbackInternal(callback, callingPid, callingUid, eventsMask);
+ registerCallbackInternal(callback, callingPid, callingUid, eventFlagsMask);
} finally {
Binder.restoreCallingIdentity(token);
}