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

Commit 792d58fb authored by Vladislav Kuzkokov's avatar Vladislav Kuzkokov
Browse files

Implement Policy to disable printing.

This adds a new "isPrintingEnabled" policy (true by default)
and hooks it into PrintManagerService.

Bug: 64140119
Test: manual

Change-Id: Ifb0f6772af51e6185135e9dcf5551e9ef0d88af3
parent e6c2b502
Loading
Loading
Loading
Loading
+46 −0
Original line number Diff line number Diff line
@@ -9197,4 +9197,50 @@ public class DevicePolicyManager {
            throw re.rethrowFromSystemServer();
        }
    }

    /**
     * Allows/disallows printing.
     *
     * @param admin which {@link DeviceAdminReceiver} this request is associated with.
     * @param enabled whether printing should be allowed or not.
     * @throws SecurityException if {@code admin} is neither device, nor profile owner.
     * @hide
     */
    public void setPrintingEnabled(@NonNull ComponentName admin, boolean enabled) {
        try {
            mService.setPrintingEnabled(admin, enabled);
        } catch (RemoteException re) {
            throw re.rethrowFromSystemServer();
        }
    }

    /**
     * Returns whether printing is enabled for current user.
     *
     * @return {@code true} iff printing is enabled.
     * @hide
     */
    public boolean isPrintingEnabled() {
        try {
            return mService.isPrintingEnabled();
        } catch (RemoteException re) {
            throw re.rethrowFromSystemServer();
        }
    }

    /**
     * Returns error message to be displayed when printing is disabled.
     *
     * Used only by PrintService.
     * @return Localized error message.
     * @throws SecurityException if caller is not system.
     * @hide
     */
    public CharSequence getPrintingDisabledReason() {
        try {
            return mService.getPrintingDisabledReason();
        } catch (RemoteException re) {
            throw re.rethrowFromSystemServer();
        }
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -396,4 +396,8 @@ interface IDevicePolicyManager {
    void setEndUserSessionMessage(in ComponentName admin, in CharSequence endUserSessionMessage);
    CharSequence getStartUserSessionMessage(in ComponentName admin);
    CharSequence getEndUserSessionMessage(in ComponentName admin);

    void setPrintingEnabled(in ComponentName admin, boolean enabled);
    boolean isPrintingEnabled();
    CharSequence getPrintingDisabledReason();
}
+3 −0
Original line number Diff line number Diff line
@@ -379,6 +379,9 @@
    <string name="factory_reset_message">The admin app can\'t be used. Your device will now be
        erased.\n\nIf you have questions, contact your organization's admin.</string>

    <!-- A toast message displayed when printing is attempted but disabled by policy. -->
    <string name="printing_disabled_by">Printing disabled by <xliff:g id="owner_app">%s</xliff:g>.</string>

    <!-- Display name for any time a piece of data refers to the owner of the phone. For example, this could be used in place of the phone's phone number. -->
    <string name="me">Me</string>

+1 −0
Original line number Diff line number Diff line
@@ -878,6 +878,7 @@
  <java-symbol type="string" name="preposition_for_time" />
  <java-symbol type="string" name="print_service_installed_title" />
  <java-symbol type="string" name="print_service_installed_message" />
  <java-symbol type="string" name="printing_disabled_by" />
  <java-symbol type="string" name="progress_erasing" />
  <java-symbol type="string" name="mobile_provisioning_apn" />
  <java-symbol type="string" name="mobile_provisioning_url" />
+15 −0
Original line number Diff line number Diff line
@@ -126,4 +126,19 @@ abstract class BaseIDevicePolicyManager extends IDevicePolicyManager.Stub {
    public String getEndUserSessionMessage(ComponentName admin) {
        return null;
    }

    @Override
    public void setPrintingEnabled(ComponentName admin, boolean enabled) {
        throw new UnsupportedOperationException();
    }

    @Override
    public boolean isPrintingEnabled() {
        return true;
    }

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