Outsets are used during measure/layout pass, but this can be called on a
view that is not currently attached.
Bug: 21602590
Change-Id: I23e3acc45ca4bf7684d8913f839e29e8e9e94d78
Making a member field final would be beneficial not
only for the readability but also for the initialization
safety.
Leaving SpellCheckerSession#mSpellCheckerSessionListener
non-final does not make sense not only because we never
change that member field once SpellCheckerSession object
is created and but also because SpellCheckerSession
instance is designed to be accessed from multiple threads
at the same time, no matter if it has something to do
with Bug 18945456 or not.
Change-Id: I1a7ebb54a5d0beddee8799fc5b0800c6e1059099
On Android, "tl" is a historic hack for what should really
be "fil". Now that we properly support 3-letter language codes,
we should be using "fil" throughout. Given this historical usage,
IMEs that really want to support Tagalog (and not Filipino)
should use the ISO-639-3 code for Tagalog, which is "tgl".
For backward compatibility reasons, this CL uses the similar
approach to I26e3aa0333aa3c76c80a3c1c9090cc2b368c8e10.
InputMethodSubtype.getLocale() continues to return the "locale"
string parameter passed to the constructor as is, but in the
Android framework we do normalizations/conversions whenever
we need a valid ISO-639-3 code.
In I26e3aa0333aa3c76c80a3c1c9090cc2b368c8e10, we rely on the
conversion in the Locale constructor. In this CL, we do replace
"tl" with "fil" by ourselves.
This CL also adds InputMethodSubtype#getLocaleObject() a hidden
API so that we can start relying on the Locale object at least
in the framework.
This CL is based on the investigation by Narayan Kamath and his
patch.
Bug: 20696126
Change-Id: I94f203bddceb9c87710cb187cc3cc0ee6d9092a5
Per discussion on another CL, this CL retires
PFLAG_ONLY_DRAWS_BACKGROUND because this is over-optimizing and
misleading. Also setFlags() needs to care both the background
and the foreground.
Bug: 20734520
Change-Id: I57d63e776b5fbad9effd10ad87e683bbb2a6dacd
One can set a view to be visited before/after another one for
accessibility but the before/after target views were always added
to the node info for the view regardless if they are included
for accessiilbity. Now the target viwes are reported only if they
should be included for accessibility.
Change-Id: Iba64e6f0ee0dc090c8c3e6a0a940df8c7ecd49d9
The legitimate uses of value to string coercion, including the
interaction between lax attribute formatting and AAPT type inference,
combined with the low likelihood of unintentional coercion and low cost
of most string coercions, makes the value to string coercion violation
overkill.
Bug: 21563086
Change-Id: I7892e776d3e5479fcba507749b074c2abdf1b781
Action modes that are not of type PRIMARY currently go through some
compatibility gymnastics so that the non-typed startActionModeForChild
ViewParent method has an opportunity to process them. Unfortunately, a
lot of apps in the wild use AppCompat, which intercepts these and
presents its own contextual action bar UI.
In practice this now means that the new floating toolbars for
TextViews and similar components don't show up in the majority of
existing apps. While this may be more correct from a compatibility
standpoint, it presents a poor user experience.
Only take the compatibility code path that calls through the older,
untyped startActionModeForChild method when the type is PRIMARY. The
tradeoff is that apps that previously would use parent views to modify
a text selection action mode will now no longer be able to do so.
Change-Id: I8c892a7a84ec36e6a484a5cba0c95281ea6beafb
This is the 3rd trial to fix Bug 20820914.
In followig CLs, we have tried to address a input session
leak when the focused view is detached from the focused
window by relying on IMM#focusOut() but failed because of
regressions like Bug 21508503.
- Ib4bd70ce0305a6bde6a929bcc6ad20a2b8402a97
- I219394178e4172bc47864297f1418e677dba25e5
- Id6afc8fc64512225578c62557b96c7dc2e969adf
- Ib1b037594ebbb4ad4cf2d59e21c7a8ca9d8dc930
- I2228ae0c48ad3d9e0b55875f0dcb5ef8c55b0c5f
What we have learned from Bug 21508503 was that re-enabling
IMM#focusOut() probably requires much more work than we
thought. Also relying on IMM#focusOut() might be overkill
because the situation in Bug 20820914 is really special where
the focused view is detached from the focused window hence
we should be able to be fix the issue more conservatively
by closing input session when and only when the focused
view is detached from the focused view, rather than
re-enabling IMM#focusOut() globally.
Bug: 20820914
Change-Id: Iaf3fe2c065b5bf91e49a729ba46262114bb6da88