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

Commit e1d68076 authored by Yuting Fang's avatar Yuting Fang
Browse files

Move VDM initialization from PermissionManager constructor to the caller

ag/26028525 caused a regression in logcat size stats. It's due to virtual device service not found when initializing PermissionManager.
Since there is only one caller of VDM, move VDM initialization to the caller.

Bug: 324493673
Test: presubmit
Change-Id: I6d84071ddcdb0bf24c75a862706d2505c2d96623
parent 017fde98
Loading
Loading
Loading
Loading
+12 −11
Original line number Diff line number Diff line
@@ -247,8 +247,6 @@ public final class PermissionManager {

    private final LegacyPermissionManager mLegacyPermissionManager;

    private final VirtualDeviceManager mVirtualDeviceManager;

    private final ArrayMap<PackageManager.OnPermissionsChangedListener,
            IOnPermissionsChangeListener> mPermissionListeners = new ArrayMap<>();
    private PermissionUsageHelper mUsageHelper;
@@ -269,7 +267,6 @@ public final class PermissionManager {
        mPermissionManager = IPermissionManager.Stub.asInterface(ServiceManager.getServiceOrThrow(
                "permissionmgr"));
        mLegacyPermissionManager = context.getSystemService(LegacyPermissionManager.class);
        mVirtualDeviceManager = context.getSystemService(VirtualDeviceManager.class);
    }

    /**
@@ -1918,7 +1915,10 @@ public final class PermissionManager {
        if (deviceId == Context.DEVICE_ID_DEFAULT) {
            persistentDeviceId = VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT;
        } else if (android.companion.virtual.flags.Flags.vdmPublicApis()) {
            VirtualDevice virtualDevice = mVirtualDeviceManager.getVirtualDevice(deviceId);
            VirtualDeviceManager virtualDeviceManager = mContext.getSystemService(
                    VirtualDeviceManager.class);
            if (virtualDeviceManager != null) {
                VirtualDevice virtualDevice = virtualDeviceManager.getVirtualDevice(deviceId);
                if (virtualDevice == null) {
                    Slog.e(LOG_TAG, "Virtual device is not found with device Id " + deviceId);
                    return null;
@@ -1927,6 +1927,7 @@ public final class PermissionManager {
                if (persistentDeviceId == null) {
                    Slog.e(LOG_TAG, "Cannot find persistent device Id for " + deviceId);
                }
            }
        } else {
            Slog.e(LOG_TAG, "vdmPublicApis flag is not enabled when device Id " + deviceId
                    + "is not default.");