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());