1 /*
2  * Copyright (C) 2014 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.print.test.services;
18 
19 import android.content.Context;
20 import android.printservice.PrintJob;
21 import android.printservice.PrintService;
22 import android.printservice.PrinterDiscoverySession;
23 
24 import java.util.List;
25 
26 public abstract class StubbablePrintService extends PrintService {
27 
28     @Override
onCreatePrinterDiscoverySession()29     public PrinterDiscoverySession onCreatePrinterDiscoverySession() {
30         PrintServiceCallbacks callbacks = getCallbacks();
31         if (callbacks != null) {
32             return new StubbablePrinterDiscoverySession(this,
33                     getCallbacks().onCreatePrinterDiscoverySessionCallbacks());
34         }
35         return null;
36     }
37 
38     @Override
onRequestCancelPrintJob(PrintJob printJob)39     public void onRequestCancelPrintJob(PrintJob printJob) {
40         PrintServiceCallbacks callbacks = getCallbacks();
41         if (callbacks != null) {
42             callbacks.onRequestCancelPrintJob(printJob);
43         }
44     }
45 
46     @Override
onPrintJobQueued(PrintJob printJob)47     public void onPrintJobQueued(PrintJob printJob) {
48         PrintServiceCallbacks callbacks = getCallbacks();
49         if (callbacks != null) {
50             callbacks.onPrintJobQueued(printJob);
51         }
52     }
53 
getCallbacks()54     protected abstract PrintServiceCallbacks getCallbacks();
55 
callAttachBaseContext(Context base)56     public void callAttachBaseContext(Context base) {
57         attachBaseContext(base);
58     }
59 
callGetActivePrintJobs()60     public List<PrintJob> callGetActivePrintJobs() {
61         return getActivePrintJobs();
62     }
63 
64 }
65