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
This commit is contained in:
@@ -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
|
||||
|
@@ -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>
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user