Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 39392ef9 authored by Svetoslav's avatar Svetoslav
Browse files

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
parent 1955bf1b
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -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,14 +426,20 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
            searchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
                @Override
                public void onViewAttachedToWindow(View view) {
                    if (AccessibilityManager.getInstance(getActivity()).isEnabled()) {
                        view.announceForAccessibility(getString(
                                R.string.print_search_box_shown_utterance));
                    }
                }
                @Override
                public void onViewDetachedFromWindow(View view) {
                    Activity activity = getActivity();
                    if (activity != null && !activity.isFinishing()
                            && AccessibilityManager.getInstance(activity).isEnabled()) {
                        view.announceForAccessibility(getString(
                                R.string.print_search_box_hidden_utterance));
                    }
                }
            });
        } else {
            menu.removeItem(R.id.print_menu_item_search);