summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Svetoslav <svetoslavganov@google.com> 2013-10-08 11:25:32 -0700
committer Svetoslav <svetoslavganov@google.com> 2013-10-08 12:05:24 -0700
commit53e8a26d6178c41c59c3dcad4a8a04ce2449f246 (patch)
tree129bc4fa4b4899ebc3af0a88da2c29e581541d3b
parent46ec729a88079d3878a95a57ab703e64638dfc1a (diff)
Fix a crash in the select printers activity.
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: I4a47a8ed3b6a13544cf17b4395560246a33f0e2d
-rw-r--r--packages/PrintSpooler/src/com/android/printspooler/SelectPrinterFragment.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/packages/PrintSpooler/src/com/android/printspooler/SelectPrinterFragment.java b/packages/PrintSpooler/src/com/android/printspooler/SelectPrinterFragment.java
index 20315caae650..7a91cef275b2 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/SelectPrinterFragment.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/SelectPrinterFragment.java
@@ -52,6 +52,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.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Filter;
@@ -138,13 +139,19 @@ public final class SelectPrinterFragment extends ListFragment {
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));
+ }
}
});