14b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov/*
24b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * Copyright (C) 2013 The Android Open Source Project
34b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov *
44b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * Licensed under the Apache License, Version 2.0 (the "License");
54b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * you may not use this file except in compliance with the License.
64b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * You may obtain a copy of the License at
74b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov *
84b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov *      http://www.apache.org/licenses/LICENSE-2.0
94b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov *
104b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * Unless required by applicable law or agreed to in writing, software
114b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * distributed under the License is distributed on an "AS IS" BASIS,
124b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * See the License for the specific language governing permissions and
144b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * limitations under the License.
154b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov */
164b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov
174b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganovpackage android.printservice;
184b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov
19bb9f686b40743df2642b7d3b7778dbf7284ae665Philip P. Moltmannimport android.graphics.drawable.Icon;
204b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganovimport android.os.ParcelFileDescriptor;
214b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganovimport android.print.PrintJobInfo;
224b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganovimport android.print.PrinterId;
234b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganovimport android.print.PrinterInfo;
242fbd2a7f070f246ddafd9de94efa9a98861e9136Svetoslavimport android.print.PrintJobId;
252fbd2a7f070f246ddafd9de94efa9a98861e9136Svetoslavimport android.content.pm.ParceledListSlice;
264b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov
274b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov/**
284b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * The top-level interface from a print service to the system.
294b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov *
304b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * @hide
314b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov */
324b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganovinterface IPrintServiceClient {
33a00271533f639c8ed36429c663889ac9f654bc72Svetoslav Ganov    List<PrintJobInfo> getPrintJobInfos();
342fbd2a7f070f246ddafd9de94efa9a98861e9136Svetoslav    PrintJobInfo getPrintJobInfo(in PrintJobId printJobId);
352fbd2a7f070f246ddafd9de94efa9a98861e9136Svetoslav    boolean setPrintJobState(in PrintJobId printJobId, int state, String error);
362fbd2a7f070f246ddafd9de94efa9a98861e9136Svetoslav    boolean setPrintJobTag(in PrintJobId printJobId, String tag);
372fbd2a7f070f246ddafd9de94efa9a98861e9136Svetoslav    oneway void writePrintJobData(in ParcelFileDescriptor fd, in PrintJobId printJobId);
38269403b032f965ff3847eb982c2f697229dc5a92Svetoslav
39b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann    /**
40b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann     * Set the progress of this print job
41b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann     *
42b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann     * @param printJobId The print job to update
43b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann     * @param progress The new progress
44b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann     */
45b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann    void setProgress(in PrintJobId printJobId, in float progress);
46b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann
47b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann    /**
48b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann     * Set the status of this print job
49b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann     *
50b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann     * @param printJobId The print job to update
51b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann     * @param status The new status, can be null
52b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann     */
53b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann    void setStatus(in PrintJobId printJobId, in CharSequence status);
54b3078c235e7674fd61be75fb469105ba6174aba5Philip P. Moltmann
55d74d1e549168ba521e8009961b76e8718be37aa1Philip P. Moltmann    /**
56d74d1e549168ba521e8009961b76e8718be37aa1Philip P. Moltmann     * Set the status of this print job
57d74d1e549168ba521e8009961b76e8718be37aa1Philip P. Moltmann     *
58d74d1e549168ba521e8009961b76e8718be37aa1Philip P. Moltmann     * @param printJobId The print job to update
59d74d1e549168ba521e8009961b76e8718be37aa1Philip P. Moltmann     * @param status The new status as a string resource
60d74d1e549168ba521e8009961b76e8718be37aa1Philip P. Moltmann     * @param appPackageName The app package name the string belongs to
61d74d1e549168ba521e8009961b76e8718be37aa1Philip P. Moltmann     */
62d74d1e549168ba521e8009961b76e8718be37aa1Philip P. Moltmann    void setStatusRes(in PrintJobId printJobId, int status, in CharSequence appPackageName);
63d74d1e549168ba521e8009961b76e8718be37aa1Philip P. Moltmann
642fbd2a7f070f246ddafd9de94efa9a98861e9136Svetoslav    void onPrintersAdded(in ParceledListSlice printers);
652fbd2a7f070f246ddafd9de94efa9a98861e9136Svetoslav    void onPrintersRemoved(in ParceledListSlice printerIds);
66bb9f686b40743df2642b7d3b7778dbf7284ae665Philip P. Moltmann
67bb9f686b40743df2642b7d3b7778dbf7284ae665Philip P. Moltmann    /**
68bb9f686b40743df2642b7d3b7778dbf7284ae665Philip P. Moltmann     * Handle that a custom icon for a printer was loaded.
69bb9f686b40743df2642b7d3b7778dbf7284ae665Philip P. Moltmann     *
70bb9f686b40743df2642b7d3b7778dbf7284ae665Philip P. Moltmann     * @param printerId the id of the printer the icon belongs to
71bb9f686b40743df2642b7d3b7778dbf7284ae665Philip P. Moltmann     * @param icon the icon that was loaded
72bb9f686b40743df2642b7d3b7778dbf7284ae665Philip P. Moltmann     * @see android.print.PrinterInfo.Builder#setHasCustomPrinterIcon()
73bb9f686b40743df2642b7d3b7778dbf7284ae665Philip P. Moltmann     */
74bb9f686b40743df2642b7d3b7778dbf7284ae665Philip P. Moltmann    void onCustomPrinterIconLoaded(in PrinterId printerId, in Icon icon);
754b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov}
76