Merge "Offer to enable a print service after it is installed (Settings)." into klp-dev
diff --git a/res/drawable-hdpi/ic_print.png b/res/drawable-hdpi/ic_print.png
deleted file mode 100644
index aaff3dd..0000000
--- a/res/drawable-hdpi/ic_print.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_print.png b/res/drawable-mdpi/ic_print.png
deleted file mode 100644
index a3954b5..0000000
--- a/res/drawable-mdpi/ic_print.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_print.png b/res/drawable-xhdpi/ic_print.png
deleted file mode 100644
index 6b55a14..0000000
--- a/res/drawable-xhdpi/ic_print.png
+++ /dev/null
Binary files differ
diff --git a/res/xml/settings_headers.xml b/res/xml/settings_headers.xml
index 55b3bca..8744328 100644
--- a/res/xml/settings_headers.xml
+++ b/res/xml/settings_headers.xml
@@ -192,7 +192,7 @@
     <header
         android:id="@+id/print_settings"
         android:fragment="com.android.settings.print.PrintSettingsFragment"
-        android:icon="@drawable/ic_print"
+        android:icon="@*android:drawable/ic_print"
         android:title="@string/print_settings" />
 
     <!-- Development -->
diff --git a/src/com/android/settings/print/PrintSettingsFragment.java b/src/com/android/settings/print/PrintSettingsFragment.java
index d254842..49f0e65 100644
--- a/src/com/android/settings/print/PrintSettingsFragment.java
+++ b/src/com/android/settings/print/PrintSettingsFragment.java
@@ -65,6 +65,9 @@
     static final String EXTRA_ADD_PRINTERS_COMPONENT_NAME = "add_printers_component_name";
     static final String EXTRA_SERVICE_COMPONENT_NAME = "service_component_name";
 
+    private static final String EXTRA_PRINT_SERVICE_COMPONENT_NAME =
+            "EXTRA_PRINT_SERVICE_COMPONENT_NAME";
+
     private final PackageMonitor mSettingsPackageMonitor = new SettingsPackageMonitor();
 
     private final Handler mHandler = new Handler() {
@@ -97,6 +100,7 @@
         mSettingsPackageMonitor.register(getActivity(), getActivity().getMainLooper(), false);
         mSettingsContentObserver.register(getContentResolver());
         updateServicesPreferences();
+        startPrintServiceSettingsIfNeeded();
         setHasOptionsMenu(true);
     }
 
@@ -213,6 +217,20 @@
         }
     }
 
+    private void startPrintServiceSettingsIfNeeded() {
+        if (getArguments() == null) {
+            return;
+        }
+        String componentName = getArguments().getString(EXTRA_PRINT_SERVICE_COMPONENT_NAME);
+        if (componentName != null) {
+            getArguments().remove(EXTRA_PRINT_SERVICE_COMPONENT_NAME);
+            Preference prereference = findPreference(componentName);
+            if (prereference != null) {
+                prereference.performClick(getPreferenceScreen());
+            }
+        }
+    }
+
     private class SettingsPackageMonitor extends PackageMonitor {
         @Override
         public void onPackageAdded(String packageName, int uid) {