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.print;
184b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov
197bfbbcb04bf4ba8f3069b2df136f708c9849bacfSvetoslavimport android.os.Bundle;
2044720af55a8fdf991929983dad5d53c02851dd1eSvetoslav Ganovimport android.print.IPrinterDiscoveryObserver;
21a00271533f639c8ed36429c663889ac9f654bc72Svetoslav Ganovimport android.print.IPrintDocumentAdapter;
222fbd2a7f070f246ddafd9de94efa9a98861e9136Svetoslavimport android.print.PrintJobId;
23704697b6197262678e930daa831a1916ddee4dcfSvetoslav Ganovimport android.print.IPrintJobStateChangeListener;
2444720af55a8fdf991929983dad5d53c02851dd1eSvetoslav Ganovimport android.print.PrinterId;
254b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganovimport android.print.PrintJobInfo;
264b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganovimport android.print.PrintAttributes;
27860f8a6b663ca96d30d17da09eca8caf065aae62Svetoslav Ganovimport android.printservice.PrintServiceInfo;
284b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov
294b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov/**
304b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * Interface for communication with the core print manager service.
314b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov *
324b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * @hide
334b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov */
344b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganovinterface IPrintManager {
35a00271533f639c8ed36429c663889ac9f654bc72Svetoslav Ganov    List<PrintJobInfo> getPrintJobInfos(int appId, int userId);
362fbd2a7f070f246ddafd9de94efa9a98861e9136Svetoslav    PrintJobInfo getPrintJobInfo(in PrintJobId printJobId, int appId, int userId);
377bfbbcb04bf4ba8f3069b2df136f708c9849bacfSvetoslav    Bundle print(String printJobName, in IPrintDocumentAdapter printAdapter,
387bfbbcb04bf4ba8f3069b2df136f708c9849bacfSvetoslav            in PrintAttributes attributes, String packageName, int appId, int userId);
392fbd2a7f070f246ddafd9de94efa9a98861e9136Svetoslav    void cancelPrintJob(in PrintJobId printJobId, int appId, int userId);
402fbd2a7f070f246ddafd9de94efa9a98861e9136Svetoslav    void restartPrintJob(in PrintJobId printJobId, int appId, int userId);
4144720af55a8fdf991929983dad5d53c02851dd1eSvetoslav Ganov
42704697b6197262678e930daa831a1916ddee4dcfSvetoslav Ganov    void addPrintJobStateChangeListener(in IPrintJobStateChangeListener listener,
43704697b6197262678e930daa831a1916ddee4dcfSvetoslav Ganov            int appId, int userId);
44704697b6197262678e930daa831a1916ddee4dcfSvetoslav Ganov    void removePrintJobStateChangeListener(in IPrintJobStateChangeListener listener,
45704697b6197262678e930daa831a1916ddee4dcfSvetoslav Ganov            int userId);
46704697b6197262678e930daa831a1916ddee4dcfSvetoslav Ganov
47d8dbc13b47bec3248a86a505a30af9d0474240dcSvetoslav    List<PrintServiceInfo> getInstalledPrintServices(int userId);
48860f8a6b663ca96d30d17da09eca8caf065aae62Svetoslav Ganov    List<PrintServiceInfo> getEnabledPrintServices(int userId);
49860f8a6b663ca96d30d17da09eca8caf065aae62Svetoslav Ganov
5044720af55a8fdf991929983dad5d53c02851dd1eSvetoslav Ganov    void createPrinterDiscoverySession(in IPrinterDiscoveryObserver observer, int userId);
5144720af55a8fdf991929983dad5d53c02851dd1eSvetoslav Ganov    void startPrinterDiscovery(in IPrinterDiscoveryObserver observer,
5244720af55a8fdf991929983dad5d53c02851dd1eSvetoslav Ganov            in List<PrinterId> priorityList, int userId);
5344720af55a8fdf991929983dad5d53c02851dd1eSvetoslav Ganov    void stopPrinterDiscovery(in IPrinterDiscoveryObserver observer, int userId);
54d26d4898fcc9b78f4b66118895c375384098205eSvetoslav Ganov    void validatePrinters(in List<PrinterId> printerIds, int userId);
55d26d4898fcc9b78f4b66118895c375384098205eSvetoslav Ganov    void startPrinterStateTracking(in PrinterId printerId, int userId);
56d26d4898fcc9b78f4b66118895c375384098205eSvetoslav Ganov    void stopPrinterStateTracking(in PrinterId printerId, int userId);
5744720af55a8fdf991929983dad5d53c02851dd1eSvetoslav Ganov    void destroyPrinterDiscoverySession(in IPrinterDiscoveryObserver observer,
5844720af55a8fdf991929983dad5d53c02851dd1eSvetoslav Ganov            int userId);
594b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov}
60