1a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav/*
2a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav * Copyright (C) 2014 The Android Open Source Project
3a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav *
4a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav * Licensed under the Apache License, Version 2.0 (the "License");
5a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav * you may not use this file except in compliance with the License.
6a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav * You may obtain a copy of the License at
7a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav *
8a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav *      http://www.apache.org/licenses/LICENSE-2.0
9a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav *
10a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav * Unless required by applicable law or agreed to in writing, software
11a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav * distributed under the License is distributed on an "AS IS" BASIS,
12a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav * See the License for the specific language governing permissions and
14a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav * limitations under the License.
15a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav */
16a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav
17a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslavpackage com.android.printspooler.util;
18a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav
19a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslavimport android.content.ComponentName;
20a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslavimport android.content.Context;
21a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslavimport android.content.pm.ServiceInfo;
22a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslavimport android.print.PrintManager;
23a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslavimport android.printservice.PrintServiceInfo;
24a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav
25a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslavimport java.util.List;
26a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav
27a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslavpublic class PrintOptionUtils {
28a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav
29a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav    private PrintOptionUtils() {
30a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav        /* ignore - hide constructor */
31a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav    }
32a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav
33a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav    /**
34a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav     * Gets the advanced options activity name for a print service.
35a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav     *
36a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav     * @param context Context for accessing system resources.
37a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav     * @param serviceName The print service name.
38a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav     * @return The advanced options activity name or null.
39a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav     */
40a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav    public static String getAdvancedOptionsActivityName(Context context,
41a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav            ComponentName serviceName) {
42a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav        PrintManager printManager = (PrintManager) context.getSystemService(
43a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav                Context.PRINT_SERVICE);
44a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav        List<PrintServiceInfo> printServices = printManager.getEnabledPrintServices();
45a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav        final int printServiceCount = printServices.size();
46a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav        for (int i = 0; i < printServiceCount; i ++) {
47a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav            PrintServiceInfo printServiceInfo = printServices.get(i);
48a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav            ServiceInfo serviceInfo = printServiceInfo.getResolveInfo().serviceInfo;
49a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav            if (serviceInfo.name.equals(serviceName.getClassName())
50a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav                    && serviceInfo.packageName.equals(serviceName.getPackageName())) {
51a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav                return printServiceInfo.getAdvancedOptionsActivityName();
52a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav            }
53a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav        }
54a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav        return null;
55a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav    }
56a798c0a984f29f7180883a61839f68d2cbf0c6ceSvetoslav}
57