IllegalStateException fixed in print service settings
Settings crashed due to IllegalStateException
as OnQueryTextListener refers to an already
detached view. The listener is set to null
on press of home key (onPause).
Change-Id: I96052f95689ae17dd1b4e9d1c313100b7b47a599
diff --git a/src/com/android/settings/print/PrintServiceSettingsFragment.java b/src/com/android/settings/print/PrintServiceSettingsFragment.java
index 49fd6df..e36e92c 100644
--- a/src/com/android/settings/print/PrintServiceSettingsFragment.java
+++ b/src/com/android/settings/print/PrintServiceSettingsFragment.java
@@ -137,6 +137,8 @@
private boolean mServiceEnabled;
+ private SearchView mSearchView;
+
@Override
public void onResume() {
super.onResume();
@@ -148,6 +150,9 @@
@Override
public void onPause() {
mSettingsContentObserver.unregister(getContentResolver());
+ if (mSearchView != null) {
+ mSearchView.setOnQueryTextListener(null);
+ }
super.onPause();
}
@@ -408,8 +413,8 @@
MenuItem searchItem = menu.findItem(R.id.print_menu_item_search);
if (mServiceEnabled && mPrintersAdapter.getUnfilteredCount() > 0) {
- SearchView searchView = (SearchView) searchItem.getActionView();
- searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
+ mSearchView = (SearchView) searchItem.getActionView();
+ mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return true;
@@ -421,7 +426,7 @@
return true;
}
});
- searchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
+ mSearchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
@Override
public void onViewAttachedToWindow(View view) {
if (AccessibilityManager.getInstance(getActivity()).isEnabled()) {