176d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann/* 276d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann * Copyright (C) 2016 The Android Open Source Project 376d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann * 476d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann * Licensed under the Apache License, Version 2.0 (the "License"); 576d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann * you may not use this file except in compliance with the License. 676d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann * You may obtain a copy of the License at 776d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann * 876d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann * http://www.apache.org/licenses/LICENSE-2.0 976d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann * 1076d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann * Unless required by applicable law or agreed to in writing, software 1176d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann * distributed under the License is distributed on an "AS IS" BASIS, 1276d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1376d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann * See the License for the specific language governing permissions and 1476d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann * limitations under the License. 1576d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann */ 1676d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann 1776d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmannpackage android.print.mockservice; 1876d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann 1976d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmannimport android.printservice.PrintJob; 2076d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmannimport android.printservice.PrintService; 2176d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmannimport android.printservice.PrinterDiscoverySession; 2276d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann 2376d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmannpublic abstract class StubbablePrintService extends PrintService { 2476d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann 2576d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann @Override 2676d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann public PrinterDiscoverySession onCreatePrinterDiscoverySession() { 2776d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann PrintServiceCallbacks callbacks = getCallbacks(); 2876d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann if (callbacks != null) { 2976d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann return new StubbablePrinterDiscoverySession(this, 3076d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann getCallbacks().onCreatePrinterDiscoverySessionCallbacks()); 3176d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann } 3276d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann return null; 3376d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann } 3476d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann 3576d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann @Override 3676d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann public void onRequestCancelPrintJob(PrintJob printJob) { 3776d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann PrintServiceCallbacks callbacks = getCallbacks(); 3876d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann if (callbacks != null) { 3976d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann callbacks.onRequestCancelPrintJob(printJob); 4076d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann } 4176d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann } 4276d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann 4376d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann @Override 4476d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann public void onPrintJobQueued(PrintJob printJob) { 4576d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann PrintServiceCallbacks callbacks = getCallbacks(); 4676d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann if (callbacks != null) { 4776d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann callbacks.onPrintJobQueued(printJob); 4876d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann } 4976d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann } 5076d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann 5176d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann protected abstract PrintServiceCallbacks getCallbacks(); 5276d7e3ee70c4299b22b1a03505d2b4f108716c75Philip P. Moltmann} 53