Bug 908224 - Dispatch a11y selection changed events on the address bar even when the text edit is hidden. r=mfinkle

This commit is contained in:
Eitan Isaacson 2015-01-12 13:21:08 -08:00
parent f0cb6227fd
commit d8edd541d0
2 changed files with 18 additions and 0 deletions

View File

@ -15,6 +15,7 @@
android:inputType="textUri|textNoSuggestions"
android:imeOptions="actionGo|flagNoExtractUi|flagNoFullscreen"
android:selectAllOnFocus="true"
android:contentDescription="@string/url_bar_default_text"
gecko:autoUpdateTheme="false"/>
</merge>

View File

@ -32,6 +32,8 @@ import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputConnectionWrapper;
import android.view.inputmethod.InputMethodManager;
import android.view.ViewParent;
import android.view.accessibility.AccessibilityEvent;
import android.widget.TextView;
/**
@ -118,6 +120,21 @@ public class ToolbarEditText extends CustomEditText
resetAutocompleteState();
}
@Override
public void sendAccessibilityEventUnchecked(AccessibilityEvent event) {
// We need to bypass the isShown() check in the default implementation
// for TYPE_VIEW_TEXT_SELECTION_CHANGED events so that accessibility
// services could detect a url change.
if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_TEXT_SELECTION_CHANGED &&
getParent() != null && !isShown()) {
onInitializeAccessibilityEvent(event);
dispatchPopulateAccessibilityEvent(event);
getParent().requestSendAccessibilityEvent(this, event);
} else {
super.sendAccessibilityEventUnchecked(event);
}
}
void setToolbarPrefs(final ToolbarPrefs prefs) {
mPrefs = prefs;
}