Merge "Show appropriate empty state if not printers are found." into klp-dev
diff --git a/res/layout/empty_print_state.xml b/res/layout/empty_print_state.xml
index 135b3dd..e97bb85 100644
--- a/res/layout/empty_print_state.xml
+++ b/res/layout/empty_print_state.xml
@@ -15,7 +15,7 @@
 -->
 
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/empty_printers_list_service_disabled"
+    android:id="@+id/empty_print_state"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:visibility="gone">
@@ -28,11 +28,12 @@
         android:orientation="vertical">
 
         <ImageView
+            android:id="@+id/icon"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginBottom="12dip"
             android:src="@drawable/ic_grayedout_printer"
-            android:contentDescription="@string/print_service_disabled">
+            android:contentDescription="@null">
         </ImageView>
 
         <TextView
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5eff621..83f7c32 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3430,6 +3430,9 @@
     <!-- Title for the prompt shown as a placeholder if no print serivices are installed. [CHAR LIMIT=50] -->
     <string name="print_no_services_installed">No services installed</string>
 
+    <!-- Title for the prompt shown as a placeholder if no printers are found while searching. [CHAR LIMIT=50] -->
+    <string name="print_no_printers_found">No printers found</string>
+
     <!-- Title for print menu item to launch a settings activity. [CHAR LIMIT=25] -->
     <string name="print_menu_item_settings">Settings</string>
 
diff --git a/src/com/android/settings/print/PrintServiceSettingsFragment.java b/src/com/android/settings/print/PrintServiceSettingsFragment.java
index 9db2dec..044d86e 100644
--- a/src/com/android/settings/print/PrintServiceSettingsFragment.java
+++ b/src/com/android/settings/print/PrintServiceSettingsFragment.java
@@ -95,6 +95,7 @@
         @Override
         public void onChanged() {
             invalidateOptionsMenuIfNeeded();
+            updateEmptyView();
         }
 
         @Override
@@ -227,14 +228,15 @@
         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 @@
                 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);
+            }
         }
     }