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.printservice; 18 19 import android.graphics.drawable.Icon; 20 import android.os.ParcelFileDescriptor; 21 import android.print.PrintJobInfo; 22 import android.print.PrinterId; 23 import android.print.PrinterInfo; 24 import android.print.PrintJobId; 25 import android.content.pm.ParceledListSlice; 26 27 /** 28 * The top-level interface from a print service to the system. 29 * 30 * @hide 31 */ 32 interface IPrintServiceClient { getPrintJobInfos()33 List<PrintJobInfo> getPrintJobInfos(); getPrintJobInfo(in PrintJobId printJobId)34 PrintJobInfo getPrintJobInfo(in PrintJobId printJobId); setPrintJobState(in PrintJobId printJobId, int state, String error)35 boolean setPrintJobState(in PrintJobId printJobId, int state, String error); setPrintJobTag(in PrintJobId printJobId, String tag)36 boolean setPrintJobTag(in PrintJobId printJobId, String tag); writePrintJobData(in ParcelFileDescriptor fd, in PrintJobId printJobId)37 oneway void writePrintJobData(in ParcelFileDescriptor fd, in PrintJobId printJobId); 38 39 /** 40 * Set the progress of this print job 41 * 42 * @param printJobId The print job to update 43 * @param progress The new progress 44 */ setProgress(in PrintJobId printJobId, in float progress)45 void setProgress(in PrintJobId printJobId, in float progress); 46 47 /** 48 * Set the status of this print job 49 * 50 * @param printJobId The print job to update 51 * @param status The new status, can be null 52 */ setStatus(in PrintJobId printJobId, in CharSequence status)53 void setStatus(in PrintJobId printJobId, in CharSequence status); 54 55 /** 56 * Set the status of this print job 57 * 58 * @param printJobId The print job to update 59 * @param status The new status as a string resource 60 * @param appPackageName The app package name the string belongs to 61 */ setStatusRes(in PrintJobId printJobId, int status, in CharSequence appPackageName)62 void setStatusRes(in PrintJobId printJobId, int status, in CharSequence appPackageName); 63 onPrintersAdded(in ParceledListSlice printers)64 void onPrintersAdded(in ParceledListSlice printers); onPrintersRemoved(in ParceledListSlice printerIds)65 void onPrintersRemoved(in ParceledListSlice printerIds); 66 67 /** 68 * Handle that a custom icon for a printer was loaded. 69 * 70 * @param printerId the id of the printer the icon belongs to 71 * @param icon the icon that was loaded 72 * @see android.print.PrinterInfo.Builder#setHasCustomPrinterIcon() 73 */ onCustomPrinterIconLoaded(in PrinterId printerId, in Icon icon)74 void onCustomPrinterIconLoaded(in PrinterId printerId, in Icon icon); 75 } 76