IPrintManager.aidl revision 66c96591e2ddb464c67e60dbf4193ef4ec8a620b
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
17package android.print;
18
19import android.content.ComponentName;
20import android.graphics.drawable.Icon;
21import android.os.Bundle;
22import android.print.IPrinterDiscoveryObserver;
23import android.print.IPrintDocumentAdapter;
24import android.print.PrintJobId;
25import android.print.IPrintJobStateChangeListener;
26import android.print.IPrintServicesChangeListener;
27import android.print.PrinterId;
28import android.print.PrintJobInfo;
29import android.print.PrintAttributes;
30import android.printservice.PrintServiceInfo;
31
32/**
33 * Interface for communication with the core print manager service.
34 *
35 * @hide
36 */
37interface IPrintManager {
38    List<PrintJobInfo> getPrintJobInfos(int appId, int userId);
39    PrintJobInfo getPrintJobInfo(in PrintJobId printJobId, int appId, int userId);
40    Bundle print(String printJobName, in IPrintDocumentAdapter printAdapter,
41            in PrintAttributes attributes, String packageName, int appId, int userId);
42    void cancelPrintJob(in PrintJobId printJobId, int appId, int userId);
43    void restartPrintJob(in PrintJobId printJobId, int appId, int userId);
44
45    void addPrintJobStateChangeListener(in IPrintJobStateChangeListener listener,
46            int appId, int userId);
47    void removePrintJobStateChangeListener(in IPrintJobStateChangeListener listener,
48            int userId);
49
50    /**
51     * Listen for changes to the installed and enabled print services.
52     *
53     * @param listener the listener to add
54     * @param userId the id of the user listening
55     *
56     * @see android.print.PrintManager#getPrintServices(int, String)
57     */
58    void addPrintServicesChangeListener(in IPrintServicesChangeListener listener,
59            int userId);
60
61    /**
62     * Stop listening for changes to the installed and enabled print services.
63     *
64     * @param listener the listener to remove
65     * @param userId the id of the user requesting the removal
66     *
67     * @see android.print.PrintManager#getPrintServices(int, String)
68     */
69    void removePrintServicesChangeListener(in IPrintServicesChangeListener listener,
70            int userId);
71
72    /**
73     * Get the print services.
74     *
75     * @param selectionFlags flags selecting which services to get
76     * @param selectedService if not null, the id of the print service to get
77     * @param userId the id of the user requesting the services
78     *
79     * @return the list of selected print services.
80     */
81    List<PrintServiceInfo> getPrintServices(int selectionFlags, int userId);
82
83    /**
84     * Enable or disable a print service.
85     *
86     * @param service The service to enabled or disable
87     * @param isEnabled whether the service should be enabled or disabled
88     * @param userId the id of the user requesting the services
89     */
90    void setPrintServiceEnabled(in ComponentName service, boolean isEnabled, int userId);
91
92    void createPrinterDiscoverySession(in IPrinterDiscoveryObserver observer, int userId);
93    void startPrinterDiscovery(in IPrinterDiscoveryObserver observer,
94            in List<PrinterId> priorityList, int userId);
95    void stopPrinterDiscovery(in IPrinterDiscoveryObserver observer, int userId);
96    void validatePrinters(in List<PrinterId> printerIds, int userId);
97    void startPrinterStateTracking(in PrinterId printerId, int userId);
98
99    /**
100     * Get the custom icon for a printer. If the icon is not cached, the icon is
101     * requested asynchronously. Once it is available the printer is updated.
102     *
103     * @param printerId the id of the printer the icon should be loaded for
104     * @param userId the id of the user requesting the printer
105     * @return the custom icon to be used for the printer or null if the icon is
106     *         not yet available
107     * @see android.print.PrinterInfo.Builder#setHasCustomPrinterIcon()
108     */
109    Icon getCustomPrinterIcon(in PrinterId printerId, int userId);
110
111    void stopPrinterStateTracking(in PrinterId printerId, int userId);
112    void destroyPrinterDiscoverySession(in IPrinterDiscoveryObserver observer,
113            int userId);
114}
115