Fix a crash in the print service settigns.

When the search view is attached and detached we announce that
 for accessibility. The trouble is that if the activity is being
 torn down we are trying to access resources from a fragment that
 is detached and the qcrash occurs. This change does not try to
 access resources if the activity is finishing and also we do not
 load resource strings if accessibility is not enabled.

bug:11127814

Change-Id: If3e97b6e94687775386a43c8fa54fd45140306eb
This commit is contained in:
Svetoslav
2013-10-08 12:08:14 -07:00
parent 1955bf1bb3
commit 39392ef9b0

View File

@@ -53,6 +53,7 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityManager;
import android.widget.BaseAdapter;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
@@ -425,13 +426,19 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
searchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
@Override
public void onViewAttachedToWindow(View view) {
view.announceForAccessibility(getString(
R.string.print_search_box_shown_utterance));
if (AccessibilityManager.getInstance(getActivity()).isEnabled()) {
view.announceForAccessibility(getString(
R.string.print_search_box_shown_utterance));
}
}
@Override
public void onViewDetachedFromWindow(View view) {
view.announceForAccessibility(getString(
R.string.print_search_box_hidden_utterance));
Activity activity = getActivity();
if (activity != null && !activity.isFinishing()
&& AccessibilityManager.getInstance(activity).isEnabled()) {
view.announceForAccessibility(getString(
R.string.print_search_box_hidden_utterance));
}
}
});
} else {