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