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

Commit fef75eee authored by Vladislav Kuzkokov's avatar Vladislav Kuzkokov
Browse files

Fix Printing policy in profile owner.

Sometimes app inside profile can't get package info for its owner.
Instead of relying on calling user id, we make PrintManagerService switch to
system id and pass user that called print() explicitly.

Bug: 72309652
Test: cts-tradefed run cts-dev --module CtsDevicePolicyManagerTestCases --test com.android.cts.devicepolicy.MixedDeviceOwnerTest#testPrintingPolicy
Test: cts-tradefed run cts-dev --module CtsDevicePolicyManagerTestCases --test com.android.cts.devicepolicy.MixedManagedProfileOwnerTest#testPrintingPolicy
Test: cts-tradefed run cts-dev --module CtsDevicePolicyManagerTestCases --test com.android.cts.devicepolicy.MixedProfileOwnerTest#testPrintingPolicy
Test: bit FrameworksServicesTests:com.android.server.devicepolicy.DevicePolicyManagerTest
Change-Id: Ib97018f56693549fbca506dba6efaadb6dd010b3
parent ae992b63
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -382,7 +382,6 @@ package android.app.admin {
    method public java.lang.CharSequence getDeviceOwnerOrganizationName();
    method public java.util.List<java.lang.String> getPermittedAccessibilityServices(int);
    method public java.util.List<java.lang.String> getPermittedInputMethodsForCurrentUser();
    method public java.lang.CharSequence getPrintingDisabledReason();
    method public android.content.ComponentName getProfileOwner() throws java.lang.IllegalArgumentException;
    method public java.lang.String getProfileOwnerNameAsUser(int) throws java.lang.IllegalArgumentException;
    method public int getUserProvisioningState();
+0 −16
Original line number Diff line number Diff line
@@ -9284,22 +9284,6 @@ public class DevicePolicyManager {
        }
    }

    /**
     * Returns error message to be displayed when printing is disabled.
     *
     * Used only by PrintService.
     * @return Localized error message.
     * @hide
     */
    @SystemApi
    public CharSequence getPrintingDisabledReason() {
        try {
            return mService.getPrintingDisabledReason();
        } catch (RemoteException re) {
            throw re.rethrowFromSystemServer();
        }
    }

    /**
     * Called by device owner to add an override APN.
     *
+9 −0
Original line number Diff line number Diff line
@@ -132,4 +132,13 @@ public abstract class DevicePolicyManagerInternal {
     * @param userId The user in question
     */
    public abstract boolean canUserHaveUntrustedCredentialReset(@UserIdInt int userId);

    /**
     * Return text of error message if printing is disabled.
     * Called by Print Service when printing is disabled by PO or DO when printing is attempted.
     *
     * @param userId The user in question
     * @return localized error message
     */
    public abstract CharSequence getPrintingDisabledReasonForUser(@UserIdInt int userId);
}
+0 −1
Original line number Diff line number Diff line
@@ -400,7 +400,6 @@ interface IDevicePolicyManager {

    void setPrintingEnabled(in ComponentName admin, boolean enabled);
    boolean isPrintingEnabled();
    CharSequence getPrintingDisabledReason();

    List<String> setMeteredDataDisabled(in ComponentName admin, in List<String> packageNames);
    List<String> getMeteredDataDisabled(in ComponentName admin);
+0 −5
Original line number Diff line number Diff line
@@ -134,11 +134,6 @@ abstract class BaseIDevicePolicyManager extends IDevicePolicyManager.Stub {
        return true;
    }

    @Override
    public CharSequence getPrintingDisabledReason() {
        return null;
    }

    @Override
    public List<String> setMeteredDataDisabled(ComponentName admin, List<String> packageNames) {
        return packageNames;
Loading