summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorErik Wolsheimer <ewol@google.com>2022-03-09 20:40:25 -0800
committerErik Wolsheimer <ewol@google.com>2022-03-29 21:38:35 +0000
commitb7b880315a81073a724db2dbba1ce9b7e94dfdcd (patch)
treecef0f76bf7c4a0be686f5de66e4fffcba6aed6fd /core/java
parent781829d9a6ea41875a352a9b943d5f289a56a3e3 (diff)
Add method PrintManager#isPrintServiceEnabled(ComponentName)
Bug: 180582919 Test: atest FrameworksCoreTests Change-Id: I2f7e87d9e56f3abc22c04eee3e0863d5de48a9f9
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/print/IPrintManager.aidl9
-rw-r--r--core/java/android/print/PrintManager.java19
2 files changed, 28 insertions, 0 deletions
diff --git a/core/java/android/print/IPrintManager.aidl b/core/java/android/print/IPrintManager.aidl
index d3d38744a1a9..da9d23b5303a 100644
--- a/core/java/android/print/IPrintManager.aidl
+++ b/core/java/android/print/IPrintManager.aidl
@@ -91,6 +91,15 @@ interface IPrintManager {
void setPrintServiceEnabled(in ComponentName service, boolean isEnabled, int userId);
/**
+ * Checks whether the given print service is enabled.
+ *
+ * @param service the service to check
+ * @param userId the id of the user requesting the check
+ * @return whether the given print service is enabled
+ */
+ boolean isPrintServiceEnabled(in ComponentName service, int userId);
+
+ /**
* Listen for changes to the print service recommendations.
*
* @param listener the listener to add
diff --git a/core/java/android/print/PrintManager.java b/core/java/android/print/PrintManager.java
index 9abce5d46ac6..a5e2f33d4418 100644
--- a/core/java/android/print/PrintManager.java
+++ b/core/java/android/print/PrintManager.java
@@ -785,6 +785,25 @@ public final class PrintManager {
}
/**
+ * Checks whether a given print service is enabled. The provided service must share UID
+ * with the calling package, otherwise a {@link SecurityException} is thrown.
+ *
+ * @return true if the given print service is enabled
+ */
+ public boolean isPrintServiceEnabled(@NonNull ComponentName service) {
+ if (mService == null) {
+ Log.w(LOG_TAG, "Feature android.software.print not available");
+ return false;
+ }
+ try {
+ return mService.isPrintServiceEnabled(service, mUserId);
+ } catch (RemoteException re) {
+ Log.e(LOG_TAG, "Error sampling enabled/disabled " + service, re);
+ return false;
+ }
+ }
+
+ /**
* @hide
*/
public static final class PrintDocumentAdapterDelegate extends IPrintDocumentAdapter.Stub