From 792d58fbcef3da36dbde5fd8b0cf5a5b972bd12e Mon Sep 17 00:00:00 2001 From: Vladislav Kuzkokov Date: Mon, 15 Jan 2018 15:04:05 +0100 Subject: 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 --- .../android/app/admin/DevicePolicyManager.java | 46 ++++++++++++++++++++++ .../android/app/admin/IDevicePolicyManager.aidl | 4 ++ 2 files changed, 50 insertions(+) (limited to 'core/java/android') diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 9329d56a8de9..0be55642d4cf 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -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(); + } + } } diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl index eac7f7ed4b3e..d2a2be7bbcb5 100644 --- a/core/java/android/app/admin/IDevicePolicyManager.aidl +++ b/core/java/android/app/admin/IDevicePolicyManager.aidl @@ -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(); } -- cgit v1.2.3