• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2013 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.print;
18 
19 import android.content.ComponentName;
20 import android.graphics.drawable.Icon;
21 import android.os.Bundle;
22 import android.print.IPrinterDiscoveryObserver;
23 import android.print.IPrintDocumentAdapter;
24 import android.print.PrintJobId;
25 import android.print.IPrintJobStateChangeListener;
26 import android.print.IPrintServicesChangeListener;
27 import android.printservice.recommendation.IRecommendationsChangeListener;
28 import android.print.PrinterId;
29 import android.print.PrintJobInfo;
30 import android.print.PrintAttributes;
31 import android.printservice.recommendation.RecommendationInfo;
32 import android.printservice.PrintServiceInfo;
33 
34 /**
35  * Interface for communication with the core print manager service.
36  *
37  * @hide
38  */
39 interface IPrintManager {
getPrintJobInfos(int appId, int userId)40     List<PrintJobInfo> getPrintJobInfos(int appId, int userId);
getPrintJobInfo(in PrintJobId printJobId, int appId, int userId)41     PrintJobInfo getPrintJobInfo(in PrintJobId printJobId, int appId, int userId);
print(String printJobName, in IPrintDocumentAdapter printAdapter, in PrintAttributes attributes, String packageName, int appId, int userId)42     Bundle print(String printJobName, in IPrintDocumentAdapter printAdapter,
43             in PrintAttributes attributes, String packageName, int appId, int userId);
cancelPrintJob(in PrintJobId printJobId, int appId, int userId)44     void cancelPrintJob(in PrintJobId printJobId, int appId, int userId);
restartPrintJob(in PrintJobId printJobId, int appId, int userId)45     void restartPrintJob(in PrintJobId printJobId, int appId, int userId);
46 
addPrintJobStateChangeListener(in IPrintJobStateChangeListener listener, int appId, int userId)47     void addPrintJobStateChangeListener(in IPrintJobStateChangeListener listener,
48             int appId, int userId);
removePrintJobStateChangeListener(in IPrintJobStateChangeListener listener, int userId)49     void removePrintJobStateChangeListener(in IPrintJobStateChangeListener listener,
50             int userId);
51 
52     /**
53      * Listen for changes to the installed and enabled print services.
54      *
55      * @param listener the listener to add
56      * @param userId the id of the user listening
57      *
58      * @see android.print.PrintManager#getPrintServices(int, String)
59      */
addPrintServicesChangeListener(in IPrintServicesChangeListener listener, int userId)60     void addPrintServicesChangeListener(in IPrintServicesChangeListener listener,
61             int userId);
62 
63     /**
64      * Stop listening for changes to the installed and enabled print services.
65      *
66      * @param listener the listener to remove
67      * @param userId the id of the user requesting the removal
68      *
69      * @see android.print.PrintManager#getPrintServices(int, String)
70      */
removePrintServicesChangeListener(in IPrintServicesChangeListener listener, int userId)71     void removePrintServicesChangeListener(in IPrintServicesChangeListener listener,
72             int userId);
73 
74     /**
75      * Get the print services.
76      *
77      * @param selectionFlags flags selecting which services to get
78      * @param userId the id of the user requesting the services
79      *
80      * @return the list of selected print services.
81      */
getPrintServices(int selectionFlags, int userId)82     List<PrintServiceInfo> getPrintServices(int selectionFlags, int userId);
83 
84     /**
85      * Enable or disable a print service.
86      *
87      * @param service The service to enabled or disable
88      * @param isEnabled whether the service should be enabled or disabled
89      * @param userId the id of the user requesting the services
90      */
setPrintServiceEnabled(in ComponentName service, boolean isEnabled, int userId)91     void setPrintServiceEnabled(in ComponentName service, boolean isEnabled, int userId);
92 
93     /**
94      * Checks whether the given print service is enabled.
95      *
96      * @param service the service to check
97      * @param userId the id of the user requesting the check
98      * @return whether the given print service is enabled
99      */
isPrintServiceEnabled(in ComponentName service, int userId)100     boolean isPrintServiceEnabled(in ComponentName service, int userId);
101 
102     /**
103      * Listen for changes to the print service recommendations.
104      *
105      * @param listener the listener to add
106      * @param userId the id of the user listening
107      *
108      * @see android.print.PrintManager#getPrintServiceRecommendations
109      */
addPrintServiceRecommendationsChangeListener(in IRecommendationsChangeListener listener, int userId)110     void addPrintServiceRecommendationsChangeListener(in IRecommendationsChangeListener listener,
111             int userId);
112 
113     /**
114      * Stop listening for changes to the print service recommendations.
115      *
116      * @param listener the listener to remove
117      * @param userId the id of the user requesting the removal
118      *
119      * @see android.print.PrintManager#getPrintServiceRecommendations
120      */
removePrintServiceRecommendationsChangeListener(in IRecommendationsChangeListener listener, int userId)121     void removePrintServiceRecommendationsChangeListener(in IRecommendationsChangeListener listener,
122             int userId);
123 
124     /**
125      * Get the print service recommendations.
126      *
127      * @param userId the id of the user requesting the recommendations
128      *
129      * @return the list of selected print services.
130      */
getPrintServiceRecommendations(int userId)131     List<RecommendationInfo> getPrintServiceRecommendations(int userId);
132 
createPrinterDiscoverySession(in IPrinterDiscoveryObserver observer, int userId)133     void createPrinterDiscoverySession(in IPrinterDiscoveryObserver observer, int userId);
startPrinterDiscovery(in IPrinterDiscoveryObserver observer, in List<PrinterId> priorityList, int userId)134     void startPrinterDiscovery(in IPrinterDiscoveryObserver observer,
135             in List<PrinterId> priorityList, int userId);
stopPrinterDiscovery(in IPrinterDiscoveryObserver observer, int userId)136     void stopPrinterDiscovery(in IPrinterDiscoveryObserver observer, int userId);
validatePrinters(in List<PrinterId> printerIds, int userId)137     void validatePrinters(in List<PrinterId> printerIds, int userId);
startPrinterStateTracking(in PrinterId printerId, int userId)138     void startPrinterStateTracking(in PrinterId printerId, int userId);
139 
140     /**
141      * Get the custom icon for a printer. If the icon is not cached, the icon is
142      * requested asynchronously. Once it is available the printer is updated.
143      *
144      * @param printerId the id of the printer the icon should be loaded for
145      * @param userId the id of the user requesting the printer
146      * @return the custom icon to be used for the printer or null if the icon is
147      *         not yet available
148      * @see android.print.PrinterInfo.Builder#setHasCustomPrinterIcon()
149      */
getCustomPrinterIcon(in PrinterId printerId, int userId)150     Icon getCustomPrinterIcon(in PrinterId printerId, int userId);
151 
stopPrinterStateTracking(in PrinterId printerId, int userId)152     void stopPrinterStateTracking(in PrinterId printerId, int userId);
destroyPrinterDiscoverySession(in IPrinterDiscoveryObserver observer, int userId)153     void destroyPrinterDiscoverySession(in IPrinterDiscoveryObserver observer,
154             int userId);
155 
156     /**
157      * Check if the system will bind to print services in intant app.
158      *
159      * @param userId the Id of the user the behavior should be checked for
160      *
161      * @return {@code true} iff the system will bind to print services in instant apps.
162      */
getBindInstantServiceAllowed(int userId)163     boolean getBindInstantServiceAllowed(int userId);
164 
165     /**
166      * Set if the system will bind to print services in intant app.
167      *
168      * @param userId the Id of the user the behavior should be changed for
169      * @param allows iff {@code true} the system will bind to print services in instant apps
170      */
setBindInstantServiceAllowed(int userId, boolean allowed)171     void setBindInstantServiceAllowed(int userId, boolean allowed);
172 }
173