Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b641d53b authored by Vladimir Komsiyski's avatar Vladimir Komsiyski Committed by Android (Google) Code Review
Browse files

Merge "Use deviceId instead of displayId for Vibration." into main

parents 3e91eef8 ce43ebe7
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -33,13 +33,13 @@ interface IVibratorManagerService {
    boolean unregisterVibratorStateListener(int vibratorId, in IVibratorStateListener listener);
    boolean setAlwaysOnEffect(int uid, String opPkg, int alwaysOnId,
            in CombinedVibration vibration, in VibrationAttributes attributes);
    void vibrate(int uid, int displayId, String opPkg, in CombinedVibration vibration,
    void vibrate(int uid, int deviceId, String opPkg, in CombinedVibration vibration,
            in VibrationAttributes attributes, String reason, IBinder token);
    void cancelVibrate(int usageFilter, IBinder token);

    // Async oneway APIs.
    // There is no order guarantee with respect to the two-way APIs above like
    // vibrate/isVibrating/cancel.
    oneway void performHapticFeedback(int uid, int displayId, String opPkg, int constant,
    oneway void performHapticFeedback(int uid, int deviceId, String opPkg, int constant,
            boolean always, String reason, IBinder token);
}
+4 −4
Original line number Diff line number Diff line
@@ -137,8 +137,8 @@ public class SystemVibratorManager extends VibratorManager {
            return;
        }
        try {
            mService.vibrate(uid, mContext.getAssociatedDisplayId(), opPkg, effect, attributes,
                    reason, mToken);
            mService.vibrate(uid, mContext.getDeviceId(), opPkg, effect, attributes, reason,
                    mToken);
        } catch (RemoteException e) {
            Log.w(TAG, "Failed to vibrate.", e);
        }
@@ -152,8 +152,8 @@ public class SystemVibratorManager extends VibratorManager {
        }
        try {
            mService.performHapticFeedback(
                    Process.myUid(), mContext.getAssociatedDisplayId(), mPackageName, constant,
                    always, reason, mToken);
                    Process.myUid(), mContext.getDeviceId(), mPackageName, constant, always, reason,
                    mToken);
        } catch (RemoteException e) {
            Log.w(TAG, "Failed to perform haptic feedback.", e);
        }
+2 −43
Original line number Diff line number Diff line
@@ -441,10 +441,8 @@ public class VirtualDeviceManagerService extends SystemService {
                                + " is not the owner of the supplied VirtualDevice");
            }

            int displayId = virtualDeviceImpl.createVirtualDisplay(virtualDisplayConfig, callback,
                    packageName);
            mLocalService.onVirtualDisplayCreated(displayId);
            return displayId;
            return virtualDeviceImpl.createVirtualDisplay(
                    virtualDisplayConfig, callback, packageName);
        }

        @Override // Binder call
@@ -625,9 +623,6 @@ public class VirtualDeviceManagerService extends SystemService {

    private final class LocalService extends VirtualDeviceManagerInternal {
        @GuardedBy("mVirtualDeviceManagerLock")
        private final ArrayList<VirtualDisplayListener>
                mVirtualDisplayListeners = new ArrayList<>();
        @GuardedBy("mVirtualDeviceManagerLock")
        private final ArrayList<AppsOnVirtualDeviceListener>
                mAppsOnVirtualDeviceListeners = new ArrayList<>();
        @GuardedBy("mVirtualDeviceManagerLock")
@@ -664,36 +659,16 @@ public class VirtualDeviceManagerService extends SystemService {
            return result;
        }

        @Override
        public void onVirtualDisplayCreated(int displayId) {
            final VirtualDisplayListener[] listeners;
            synchronized (mVirtualDeviceManagerLock) {
                listeners = mVirtualDisplayListeners.toArray(new VirtualDisplayListener[0]);
            }
            mHandler.post(() -> {
                for (VirtualDisplayListener listener : listeners) {
                    listener.onVirtualDisplayCreated(displayId);
                }
            });
        }

        @Override
        public void onVirtualDisplayRemoved(IVirtualDevice virtualDevice, int displayId) {
            final VirtualDisplayListener[] listeners;
            VirtualDeviceImpl virtualDeviceImpl;
            synchronized (mVirtualDeviceManagerLock) {
                listeners = mVirtualDisplayListeners.toArray(new VirtualDisplayListener[0]);
                virtualDeviceImpl = mVirtualDevices.get(
                        ((VirtualDeviceImpl) virtualDevice).getDeviceId());
            }
            if (virtualDeviceImpl != null) {
                virtualDeviceImpl.onVirtualDisplayRemoved(displayId);
            }
            mHandler.post(() -> {
                for (VirtualDisplayListener listener : listeners) {
                    listener.onVirtualDisplayRemoved(displayId);
                }
            });
        }

        @Override
@@ -798,22 +773,6 @@ public class VirtualDeviceManagerService extends SystemService {
            return virtualDevice == null ? null : virtualDevice.getPersistentDeviceId();
        }

        @Override
        public void registerVirtualDisplayListener(
                @NonNull VirtualDisplayListener listener) {
            synchronized (mVirtualDeviceManagerLock) {
                mVirtualDisplayListeners.add(listener);
            }
        }

        @Override
        public void unregisterVirtualDisplayListener(
                @NonNull VirtualDisplayListener listener) {
            synchronized (mVirtualDeviceManagerLock) {
                mVirtualDisplayListeners.remove(listener);
            }
        }

        @Override
        public void registerAppsOnVirtualDeviceListener(
                @NonNull AppsOnVirtualDeviceListener listener) {
+0 −24
Original line number Diff line number Diff line
@@ -32,29 +32,12 @@ import java.util.Set;
 */
public abstract class VirtualDeviceManagerInternal {

    /** Interface to listen to the creation and destruction of virtual displays. */
    public interface VirtualDisplayListener {
        /** Notifies that a virtual display was created. */
        void onVirtualDisplayCreated(int displayId);

        /** Notifies that a virtual display was removed. */
        void onVirtualDisplayRemoved(int displayId);
    }

    /** Interface to listen to the changes on the list of app UIDs running on any virtual device. */
    public interface AppsOnVirtualDeviceListener {
        /** Notifies that running apps on any virtual device has changed */
        void onAppsOnAnyVirtualDeviceChanged(Set<Integer> allRunningUids);
    }

    /** Register a listener for the creation and destruction of virtual displays. */
    public abstract void registerVirtualDisplayListener(
            @NonNull VirtualDisplayListener listener);

    /** Unregister a listener for the creation and destruction of virtual displays. */
    public abstract void unregisterVirtualDisplayListener(
            @NonNull VirtualDisplayListener listener);

    /** Register a listener for changes of running app UIDs on any virtual device. */
    public abstract void registerAppsOnVirtualDeviceListener(
            @NonNull AppsOnVirtualDeviceListener listener);
@@ -103,13 +86,6 @@ public abstract class VirtualDeviceManagerInternal {
     */
    public abstract @NonNull ArraySet<Integer> getDeviceIdsForUid(int uid);

    /**
     * Notifies that a virtual display is created.
     *
     * @param displayId The display id of the created virtual display.
     */
    public abstract void onVirtualDisplayCreated(int displayId);

    /**
     * Notifies that a virtual display is removed.
     *
+9 −9
Original line number Diff line number Diff line
@@ -117,16 +117,16 @@ abstract class Vibration {
    static final class CallerInfo {
        public final VibrationAttributes attrs;
        public final int uid;
        public final int displayId;
        public final int deviceId;
        public final String opPkg;
        public final String reason;

        CallerInfo(@NonNull VibrationAttributes attrs, int uid, int displayId,
                String opPkg, String reason) {
        CallerInfo(@NonNull VibrationAttributes attrs, int uid, int deviceId, String opPkg,
                String reason) {
            Objects.requireNonNull(attrs);
            this.attrs = attrs;
            this.uid = uid;
            this.displayId = displayId;
            this.deviceId = deviceId;
            this.opPkg = opPkg;
            this.reason = reason;
        }
@@ -138,14 +138,14 @@ abstract class Vibration {
            CallerInfo that = (CallerInfo) o;
            return Objects.equals(attrs, that.attrs)
                    && uid == that.uid
                    && displayId == that.displayId
                    && deviceId == that.deviceId
                    && Objects.equals(opPkg, that.opPkg)
                    && Objects.equals(reason, that.reason);
        }

        @Override
        public int hashCode() {
            return Objects.hash(attrs, uid, displayId, opPkg, reason);
            return Objects.hash(attrs, uid, deviceId, opPkg, reason);
        }

        @Override
@@ -153,7 +153,7 @@ abstract class Vibration {
            return "CallerInfo{"
                    + " uid=" + uid
                    + ", opPkg=" + opPkg
                    + ", displayId=" + displayId
                    + ", deviceId=" + deviceId
                    + ", attrs=" + attrs
                    + ", reason=" + reason
                    + '}';
@@ -267,8 +267,8 @@ abstract class Vibration {
                    mStartTime == 0 ? "" : DEBUG_TIME_FORMAT.format(new Date(mStartTime)),
                    mEndTime == 0 ? "" : DEBUG_TIME_FORMAT.format(new Date(mEndTime)));
            String callerInfoStr = String.format(Locale.ROOT,
                    " | %s (uid=%d, displayId=%d) | usage: %s (audio=%s) | flags: %s | reason: %s",
                    mCallerInfo.opPkg, mCallerInfo.uid, mCallerInfo.displayId,
                    " | %s (uid=%d, deviceId=%d) | usage: %s (audio=%s) | flags: %s | reason: %s",
                    mCallerInfo.opPkg, mCallerInfo.uid, mCallerInfo.deviceId,
                    mCallerInfo.attrs.usageToString(),
                    AudioAttributes.usageToString(mCallerInfo.attrs.getAudioUsage()),
                    Long.toBinaryString(mCallerInfo.attrs.getFlags()),
Loading