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