From 3e4c0d8789e394968fcc153090729110e3287069 Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Wed, 9 Mar 2016 12:42:33 -0800 Subject: [PATCH] Correctly compose activity name of add-printer and print-settings activity Previously we were missing to specify the service's package name, hence we did not have a complete component name. Bug: 27567031 Change-Id: I88c515a0b8a9defd6329309574aaa8a8e053fddb --- .../print/PrintServiceSettingsFragment.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/print/PrintServiceSettingsFragment.java b/src/com/android/settings/print/PrintServiceSettingsFragment.java index 6d6967bf1ce..e54241c3f42 100644 --- a/src/com/android/settings/print/PrintServiceSettingsFragment.java +++ b/src/com/android/settings/print/PrintServiceSettingsFragment.java @@ -341,8 +341,12 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment mServiceEnabled = service.isEnabled(); if (service.getSettingsActivityName() != null) { - Intent settingsIntent = new Intent(Intent.ACTION_MAIN).setComponent( - ComponentName.unflattenFromString(service.getSettingsActivityName())); + Intent settingsIntent = new Intent(Intent.ACTION_MAIN); + + settingsIntent.setComponent( + new ComponentName(service.getComponentName().getPackageName(), + service.getSettingsActivityName())); + List resolvedActivities = getPackageManager().queryIntentActivities( settingsIntent, 0); if (!resolvedActivities.isEmpty()) { @@ -356,9 +360,12 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment } if (service.getAddPrintersActivityName() != null) { - Intent addPrintersIntent = new Intent(Intent.ACTION_MAIN) - .setComponent(ComponentName.unflattenFromString( + Intent addPrintersIntent = new Intent(Intent.ACTION_MAIN); + + addPrintersIntent.setComponent( + new ComponentName(service.getComponentName().getPackageName(), service.getAddPrintersActivityName())); + List resolvedActivities = getPackageManager().queryIntentActivities( addPrintersIntent, 0); if (!resolvedActivities.isEmpty()) {