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

Commit 77e936ac authored by Ján Sebechlebský's avatar Ján Sebechlebský Committed by Android (Google) Code Review
Browse files

Merge "Fix errorprone suggestions" into main

parents f4553c9d bc19dbee
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.server.companion.virtual;
import static android.hardware.camera2.CameraInjectionSession.InjectionStatusCallback.ERROR_INJECTION_UNSUPPORTED;

import android.annotation.NonNull;
import android.annotation.RequiresPermission;
import android.annotation.UserIdInt;
import android.content.Context;
import android.content.pm.ApplicationInfo;
@@ -146,6 +147,7 @@ class CameraAccessController extends CameraManager.AvailabilityCallback implemen
     *
     * @param runningUids uids of the application running on the virtual display
     */
    @RequiresPermission(android.Manifest.permission.CAMERA_INJECT_EXTERNAL_CAMERA)
    public void blockCameraAccessIfNeeded(Set<Integer> runningUids) {
        synchronized (mLock) {
            for (int i = 0; i < mAppsToBlockOnVirtualDevice.size(); i++) {
@@ -181,6 +183,7 @@ class CameraAccessController extends CameraManager.AvailabilityCallback implemen
    }

    @Override
    @RequiresPermission(android.Manifest.permission.CAMERA_INJECT_EXTERNAL_CAMERA)
    public void onCameraOpened(@NonNull String cameraId, @NonNull String packageName) {
        synchronized (mLock) {
            InjectionSessionData data = mPackageToSessionData.get(packageName);
@@ -243,6 +246,7 @@ class CameraAccessController extends CameraManager.AvailabilityCallback implemen
    /**
     * Turns on blocking for a particular camera and package.
     */
    @RequiresPermission(android.Manifest.permission.CAMERA_INJECT_EXTERNAL_CAMERA)
    private void startBlocking(String packageName, String cameraId) {
        try {
            Slog.d(
+3 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.server.companion.virtual;

import static android.text.TextUtils.formatSimple;

import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.StringDef;
@@ -350,7 +352,7 @@ class InputController {
    }

    private static String createPhys(@PhysType String type) {
        return String.format("virtual%s:%d", type, sNextPhysId.getAndIncrement());
        return formatSimple("virtual%s:%d", type, sNextPhysId.getAndIncrement());
    }

    private void setUniqueIdAssociation(int displayId, String phys) {
+0 −3
Original line number Diff line number Diff line
@@ -323,8 +323,5 @@ public class SensorController {
        SensorCreationException(String message) {
            super(message);
        }
        SensorCreationException(String message, Exception cause) {
            super(message, cause);
        }
    }
}
+15 −10
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTE
import android.annotation.EnforcePermission;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.StringRes;
import android.annotation.UserIdInt;
import android.app.Activity;
@@ -78,12 +79,14 @@ import android.os.UserHandle;
import android.os.UserManager;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.IntArray;
import android.util.Slog;
import android.util.SparseArray;
import android.view.Display;
import android.view.WindowManager;
import android.widget.Toast;


import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.BlockedAppStreamingActivity;
@@ -93,7 +96,6 @@ import com.android.server.companion.virtual.audio.VirtualAudioController;

import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -460,6 +462,7 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
    }

    @Override
    @RequiresPermission(android.Manifest.permission.CAMERA_INJECT_EXTERNAL_CAMERA)
    public void onRunningAppsChanged(ArraySet<Integer> runningUids) {
        mCameraAccessController.blockCameraAccessIfNeeded(runningUids);
        mRunningAppsChangedCallback.accept(runningUids);
@@ -718,11 +721,9 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
        try {
            synchronized (mVirtualDeviceLock) {
                mDefaultShowPointerIcon = showPointerIcon;
                for (int i = 0; i < mVirtualDisplays.size(); i++) {
                    final int displayId = mVirtualDisplays.keyAt(i);
                    mInputController.setShowPointerIcon(mDefaultShowPointerIcon, displayId);
                }
            }
            getDisplayIds().forEach(
                    displayId -> mInputController.setShowPointerIcon(showPointerIcon, displayId));
        } finally {
            Binder.restoreCallingIdentity(ident);
        }
@@ -830,6 +831,7 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
                this, gwpc, packageName);
        gwpc.setDisplayId(displayId);

        boolean showPointer;
        synchronized (mVirtualDeviceLock) {
            if (mVirtualDisplays.contains(displayId)) {
                gwpc.unregisterRunningAppsChangedListener(this);
@@ -839,11 +841,12 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub

            PowerManager.WakeLock wakeLock = createAndAcquireWakeLockForDisplay(displayId);
            mVirtualDisplays.put(displayId, new VirtualDisplayWrapper(callback, gwpc, wakeLock));
            showPointer = mDefaultShowPointerIcon;
        }

        final long token = Binder.clearCallingIdentity();
        try {
            mInputController.setShowPointerIcon(mDefaultShowPointerIcon, displayId);
            mInputController.setShowPointerIcon(showPointer, displayId);
            mInputController.setPointerAcceleration(1f, displayId);
            mInputController.setDisplayEligibilityForPointerCapture(/* isEligible= */ false,
                    displayId);
@@ -869,6 +872,7 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
        }
    }

    @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS)
    private void onActivityBlocked(int displayId, ActivityInfo activityInfo) {
        Intent intent = BlockedAppStreamingActivity.createIntent(
                activityInfo, mAssociationInfo.getDisplayName());
@@ -950,6 +954,7 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
        }
    }

    @SuppressWarnings("AndroidFrameworkRequiresPermission")
    private void checkVirtualInputDeviceDisplayIdAssociation(int displayId) {
        if (mContext.checkCallingPermission(android.Manifest.permission.INJECT_EVENTS)
                    == PackageManager.PERMISSION_GRANTED) {
@@ -1031,8 +1036,8 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
     */
    void showToastWhereUidIsRunning(int uid, String text, @Toast.Duration int duration,
            Looper looper) {
        ArrayList<Integer> displayIdsForUid = getDisplayIdsWhereUidIsRunning(uid);
        if (displayIdsForUid.isEmpty()) {
        IntArray displayIdsForUid = getDisplayIdsWhereUidIsRunning(uid);
        if (displayIdsForUid.size() == 0) {
            return;
        }
        DisplayManager displayManager = mContext.getSystemService(DisplayManager.class);
@@ -1045,8 +1050,8 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
        }
    }

    private ArrayList<Integer> getDisplayIdsWhereUidIsRunning(int uid) {
        ArrayList<Integer> displayIdsForUid = new ArrayList<>();
    private IntArray getDisplayIdsWhereUidIsRunning(int uid) {
        IntArray displayIdsForUid = new IntArray();
        synchronized (mVirtualDeviceLock) {
            for (int i = 0; i < mVirtualDisplays.size(); i++) {
                if (mVirtualDisplays.valueAt(i).getWindowPolicyController().containsUid(uid)) {
+5 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static com.android.server.wm.ActivityInterceptorCallback.VIRTUAL_DEVICE_S

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
import android.app.ActivityOptions;
import android.companion.AssociationInfo;
@@ -96,6 +97,7 @@ public class VirtualDeviceManagerService extends SystemService {
    private final CompanionDeviceManager.OnAssociationsChangedListener mCdmAssociationListener =
            new CompanionDeviceManager.OnAssociationsChangedListener() {
                @Override
                @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE)
                public void onAssociationsChanged(@NonNull List<AssociationInfo> associations) {
                    syncVirtualDevicesToCdmAssociations(associations);
                }
@@ -241,6 +243,7 @@ public class VirtualDeviceManagerService extends SystemService {
        return true;
    }

    @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE)
    private void syncVirtualDevicesToCdmAssociations(List<AssociationInfo> associations) {
        Set<VirtualDeviceImpl> virtualDevicesToRemove = new HashSet<>();
        synchronized (mVirtualDeviceManagerLock) {
@@ -266,6 +269,7 @@ public class VirtualDeviceManagerService extends SystemService {
        }
    }

    @RequiresPermission(android.Manifest.permission.MANAGE_COMPANION_DEVICES)
    private void registerCdmAssociationListener() {
        final CompanionDeviceManager cdm = getContext().getSystemService(
                CompanionDeviceManager.class);
@@ -273,6 +277,7 @@ public class VirtualDeviceManagerService extends SystemService {
                mCdmAssociationListener);
    }

    @RequiresPermission(android.Manifest.permission.MANAGE_COMPANION_DEVICES)
    private void unregisterCdmAssociationListener() {
        final CompanionDeviceManager cdm = getContext().getSystemService(
                CompanionDeviceManager.class);