summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorVladislav Kuzkokov <vkuzkokov@google.com>2018-01-15 15:04:05 +0100
committerVladislav Kuzkokov <vkuzkokov@google.com>2018-01-18 17:18:54 +0100
commit792d58fbcef3da36dbde5fd8b0cf5a5b972bd12e (patch)
treea5d52a2c41d21d788f2e9c690029b560aaa367f7 /core/java/android
parente6c2b50229bb370b57fd769c28496c550c50c499 (diff)
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
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/admin/DevicePolicyManager.java46
-rw-r--r--core/java/android/app/admin/IDevicePolicyManager.aidl4
2 files changed, 50 insertions, 0 deletions
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();
}