Merge "Use new getIcon and getMoreInfo api to show more information in Print Settings"
diff --git a/res/layout/printer_dropdown_item.xml b/res/layout/printer_dropdown_item.xml
index eaf7c96..0063477 100644
--- a/res/layout/printer_dropdown_item.xml
+++ b/res/layout/printer_dropdown_item.xml
@@ -49,6 +49,7 @@
             android:singleLine="true"
             android:ellipsize="marquee"
             android:fadingEdge="horizontal"
+            android:textColor="?android:attr/textColorPrimary"
             android:textIsSelectable="false">
         </TextView>
 
diff --git a/src/com/android/settings/print/PrintServiceSettingsFragment.java b/src/com/android/settings/print/PrintServiceSettingsFragment.java
index f174614..722be0e 100644
--- a/src/com/android/settings/print/PrintServiceSettingsFragment.java
+++ b/src/com/android/settings/print/PrintServiceSettingsFragment.java
@@ -22,9 +22,8 @@
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
+import android.content.IntentSender.SendIntentException;
 import android.content.Loader;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.ResolveInfo;
 import android.database.ContentObserver;
 import android.database.DataSetObserver;
@@ -47,6 +46,7 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityManager;
+import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.Filter;
 import android.widget.Filterable;
@@ -74,6 +74,8 @@
 public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
         implements SwitchBar.OnSwitchChangeListener {
 
+    private static final String LOG_TAG = "PrintServiceSettingsFragment";
+
     private static final int LOADER_ID_PRINTERS_LOADER = 1;
 
     private final SettingsContentObserver mSettingsContentObserver =
@@ -150,6 +152,7 @@
     public void onStart() {
         super.onStart();
         mSettingsContentObserver.register(getContentResolver());
+
         updateEmptyView();
         updateUiForServiceState();
     }
@@ -283,6 +286,21 @@
 
         getBackupListView().setSelector(new ColorDrawable(Color.TRANSPARENT));
         getBackupListView().setAdapter(mPrintersAdapter);
+        getBackupListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                PrinterInfo printer = (PrinterInfo) mPrintersAdapter.getItem(position);
+
+                if (printer.getInfoIntent() != null) {
+                    try {
+                        getActivity().startIntentSender(printer.getInfoIntent().getIntentSender(),
+                                null, 0, 0, 0);
+                    } catch (SendIntentException e) {
+                        Log.e(LOG_TAG, "Could not execute info intent: %s", e);
+                    }
+                }
+            }
+        });
     }
 
 
@@ -518,16 +536,8 @@
 
             PrinterInfo printer = (PrinterInfo) getItem(position);
             CharSequence title = printer.getName();
-            CharSequence subtitle = null;
-            Drawable icon = null;
-            try {
-                PackageInfo packageInfo = getPackageManager().getPackageInfo(
-                        printer.getId().getServiceName().getPackageName(), 0);
-                        subtitle = packageInfo.applicationInfo.loadLabel(getPackageManager());
-                        icon = packageInfo.applicationInfo.loadIcon(getPackageManager());
-            } catch (NameNotFoundException nnfe) {
-                /* ignore */
-            }
+            CharSequence subtitle = printer.getDescription();
+            Drawable icon = printer.loadIcon(getActivity());
 
             TextView titleView = (TextView) convertView.findViewById(R.id.title);
             titleView.setText(title);
@@ -553,11 +563,6 @@
         }
 
         @Override
-        public boolean isEnabled(int position) {
-            return false;
-        }
-
-        @Override
         public Loader<List<PrinterInfo>> onCreateLoader(int id, Bundle args) {
             if (id == LOADER_ID_PRINTERS_LOADER) {
                 return new PrintersLoader(getActivity());