TC-4029: normalize tab selection/unselection cross-platform, and keyboard hiding improvement #5636
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Prior to this PR, in Android we had no reliable event for tab selection and unselection. The tab focus and blur events would fire in these cases, but as the JIRA issue shows they also fired under additional circumstances as well. In order to not mess with the (rather complex!!!) focus/blur bubbling logic in Titanium Android (and not break existing apps), this PR simply added the
selected
andunselected
events for tabs (with the additional benefit of the clearer event name than focus and blur).In iOS, the
focus
andblur
events functioned exactly as tab selection indicators, and there was no bubbling event confusion in their case between window, tab, and tab group. However, to be compatible with Android these events were renamed toselected
andunselected
. The tabfocus
andblur
events have been removed for iOS.Additionally, in Android the keyboard is now hidden when the tab selection changes, and not when the tab loses focus (e.g. when the screen is locked), providing for a much smoother user experience.