From 9a2ace95870b72bdea6c630c5f7b1ce0c8634cbc Mon Sep 17 00:00:00 2001 From: Svetoslav Date: Mon, 30 Sep 2013 16:22:29 -0700 Subject: [PATCH] Show appropriate empty state if not printers are found. One can search for printers in the print service settings and we need to show appropriate empty state if none is found. bug:11009053 Change-Id: If3ed6aa3a5e2eb4d7f7bae37f885e4b8eb0909b4 --- res/layout/empty_print_state.xml | 5 +++-- res/values/strings.xml | 3 +++ .../print/PrintServiceSettingsFragment.java | 21 +++++++++++++++++-- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/res/layout/empty_print_state.xml b/res/layout/empty_print_state.xml index 135b3dd24d8..e97bb85cdad 100644 --- a/res/layout/empty_print_state.xml +++ b/res/layout/empty_print_state.xml @@ -15,7 +15,7 @@ --> @@ -28,11 +28,12 @@ android:orientation="vertical"> + android:contentDescription="@null"> No services installed + + No printers found + Settings diff --git a/src/com/android/settings/print/PrintServiceSettingsFragment.java b/src/com/android/settings/print/PrintServiceSettingsFragment.java index 9db2decf1bb..044d86e4e77 100644 --- a/src/com/android/settings/print/PrintServiceSettingsFragment.java +++ b/src/com/android/settings/print/PrintServiceSettingsFragment.java @@ -95,6 +95,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment @Override public void onChanged() { invalidateOptionsMenuIfNeeded(); + updateEmptyView(); } @Override @@ -227,14 +228,15 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment ViewGroup contentRoot = (ViewGroup) listView.getParent(); View emptyView = listView.getEmptyView(); if (!mToggleSwitch.isChecked()) { - if (emptyView != null - && emptyView.getId() != R.id.empty_printers_list_service_disabled) { + if (emptyView != null && emptyView.getId() != R.id.empty_print_state) { contentRoot.removeView(emptyView); emptyView = null; } if (emptyView == null) { emptyView = getActivity().getLayoutInflater().inflate( R.layout.empty_print_state, contentRoot, false); + ImageView iconView = (ImageView) emptyView.findViewById(R.id.icon); + iconView.setContentDescription(getString(R.string.print_service_disabled)); TextView textView = (TextView) emptyView.findViewById(R.id.message); textView.setText(R.string.print_service_disabled); contentRoot.addView(emptyView); @@ -252,6 +254,21 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment contentRoot.addView(emptyView); listView.setEmptyView(emptyView); } + } else if (mPrintersAdapter.getCount() <= 0) { + if (emptyView != null && emptyView.getId() != R.id.empty_print_state) { + contentRoot.removeView(emptyView); + emptyView = null; + } + if (emptyView == null) { + emptyView = getActivity().getLayoutInflater().inflate( + R.layout.empty_print_state, contentRoot, false); + ImageView iconView = (ImageView) emptyView.findViewById(R.id.icon); + iconView.setContentDescription(getString(R.string.print_no_printers_found)); + TextView textView = (TextView) emptyView.findViewById(R.id.message); + textView.setText(R.string.print_no_printers_found); + contentRoot.addView(emptyView); + listView.setEmptyView(emptyView); + } } }