• Home
  • History
  • Annotate
  • only in /frameworks/base/core/java/android/view/textservice/
History log of /frameworks/base/core/java/android/view/textservice/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0cf7b310125ea283f2177d705cb134e895ff32bd 21-Mar-2018 Yohei Yukawa <yukawa@google.com> Fix confusing Log.e message in SpellCheckerSession

With this CL, calling SpellCheckerSession#close() multiple times will
no longer show the following error message in logcat, which was quite
confusing.

E SpellCheckerSession: ignoring processOrEnqueueTask due to
unexpected mState=TASK_CLOSE scp.mWhat=TASK_CLOSE

Note that with a recent CL [1], we now more often see the above
message. A typical scenario is:

1. App creates SpellCheckerSession x.
2. App calls x.close().
3. x is garbage-collected. ART calls x.finalize(), which internally
calls x.close() again.

[1]: I4e00c3a2cec93d1dacff20546e481fe757279661
9b64367193ffb252f869fb9f65a60b51a654119e

Bug: 72974646
Fix: 72974646
Test: Made sure that no error message in question with a test app
that calls SpellCheckerSession#close() multiple times then
trigger SpellCheckerSession#finalize().
Change-Id: Ie9690860e6d0406dc6746cd03c28f693e65c1dde
pellCheckerSession.java
3f8c568883e5df9dd0c44d19c5c4d23edd3756c3 01-Mar-2018 Yohei Yukawa <yukawa@google.com> Re-enable cross-profile use of spell checker APIs

Recently we successfully removed the restriction that up to one
SpellCheckerService can be active at the same time [1]. This still
makes much sense at high level, but at the ecosystem level there are
still some products / components that depend on the previous behavior
that child profile users can use parent profile's spell checker
service, which was originally introduced as a stopgap solution for
Android N MR1 [2].

Our decision for Android P for now is to revert back to the previous
behavior only when the calling process is running under work
profile.

At the implementation level, we can summarize the new behavior as
follows:
* When TextServicesManager APIs are called from work-profile
processes, those API calls will be evaluated with parent-profile's
user ID to match the previous behavior [2].
* If the currently selected spell checker is not a pre-installed
one, then API calls from work profile will fail to match the
previous behavior [2].
* When TextServicesManager APIs are called from non work-profile
processes, those API calls will continue being evaluated with
calling user ID, as we planned for Android P [1].
* TextServicesData will not be created for child profile users.

[1]: I06c27ef834203a21cc445dc126602c799384527b
06a2624049f09e1ad68f8ab74fdb525aacd5c1e5
[2]: Iae9045ba5baccd04ed68906e7afb9160677ec4a5
095fa371643b1d8e829067ea4ed93c357b39e773

Bug: 63041121
Bug: 64718412
Bug: 70922751
Bug: 73609140
Fix: 73862883
Test: atest FrameworksCoreTests:com.android.internal.textservice.LazyIntToIntMapTest
Test: Manually tested with Test DPC as follows:
* When AOSP Spell Checker is pre-installed and the current spell
checker, both main profile and work profile can use AOSP spell
checker.
* When SampleSpellCheckerService is side-loaded and the current
spell checker, only main profile can use
SampleSpellCheckerService.
Change-Id: Ic046f832f203115106409a53418a5746eb6d4939
extServicesManager.java
46a54e8be637c0e7922bcbec0bf5bc308dcdf69d 23-Jun-2017 Guliz Tuncay <gulizseray@google.com> Remove the internal APIs of TSM to change spell checker settings

Previously, TextServicesManager was exposing APIs to system services to
modify spell checker settings. However, Settings application is the only
client of these APIs and there is no need to expose it to all the other
services. Settings app already has the WRITE_SECURE_SETTINGS permission
and can directly update the spell checker settings. Hence, we can remove
these APIs from TSM.

Fixes: 62950392
Test: Manually as follows.
1. Build and flash an OS image.
2. Complete the setup wizard (if any).
3. Make sure AOSP Keyboard (com.android.inputmethod.latin) is installed
4. Install SampleSpellCheckerService
4.1 tapas SampleSpellCheckerService
4.2. make -j
4.3. adb install -r out/target/product/generic/system/app/SampleSpellCheckerService/SampleSpellCheckerService.apk
5. Set the current spell checker service to be AOSP SCS by
adb shell settings put secure selected_spell_checker com.android.inputmethod.latin/.spellcheck.AndroidSpellCheckerService
6. Run a test program that has TextView and tap on one of the
TextViews and type some text.
7. Observe that there is a connection to AOSP SCS by
adb shell dumpsys textservices
8. Set the current spell checker service to be
SampleSpellCheckerService SCS by
adb shell settings put secure selected_spell_checker com.example.android.samplespellcheckerservice/.SampleSpellCheckerService
9. Observe that there is a connection to SampleSpellCheckerService
SCS by
adb shell dumpsys textservices
Change-Id: I4513ca661788f00785f684c21d7244c233b6e33e
extServicesManager.java
ec68b46bc85b2317053da7e2933876fc6e51ac2f 06-Jun-2017 Jeff Sharkey <jsharkey@google.com> Merge "Annotate @SystemApi with required permissions." into oc-dev am: c1406978a4
am: 7a2e4a8486

Change-Id: Ib629e25dbf047c110feaf03e4ff744b5c6df9aeb
d86b8fea43ebb6e5c31691b44d8ceb0d8d3c9072 03-Jun-2017 Jeff Sharkey <jsharkey@android.com> Annotate @SystemApi with required permissions.

Most @SystemApi methods should be protected with system (or higher)
permissions, so annotate common methods with @RequiresPermission to
make automatic verification easier.

Verification is really only relevant when calling into system
services (where permissions checking can happen on the other side of
a Binder call), so annotate managers with the new @SystemService
annotation, which is now automatically documented.

This is purely a docs change; no logic changes are being made.

Test: make -j32 update-api && make -j32 offline-sdk-docs
Bug: 62263906
Change-Id: I2554227202d84465676aa4ab0dd336b5c45fc651
extServicesManager.java
9b64367193ffb252f869fb9f65a60b51a654119e 22-Mar-2017 Narayan Kamath <narayan@google.com> SpellCheckerSession: Fix brittle finalizer pattern.

Always call super.finalize, also make sure super-class finalizers
are called last (i.e in reverse order of construction). While we're
here, we can switch to dalvik.system.CloseGuard to warn if the object
hasn't been properly closed.

Test: make
Bug: 35609098
Change-Id: I4e00c3a2cec93d1dacff20546e481fe757279661
pellCheckerSession.java
06b4be771cc59bcc64e86d5763eee41431a03523 29-Jan-2017 Yohei Yukawa <yukawa@google.com> Minor code clean-ups with no behavior change

As another preparation CL to work on Bug 7254002, this CL cleans up
miscellaneous minor coding style issues that do not cause any
user-visible problems.

- Add final keyboard to classes that are not intended to be extended.
- Add static keyboard to nested classes if possible.
- Fix a typo in log message.
- Remove a redundant synchronized keyword in method signature.
- Remove unused class fields.

Test: checkbuild
Bug: 7254002
Change-Id: I3b54179116a74cafc99a3dfd3f2a429a7111c12e
pellCheckerSession.java
extServicesManager.java
67e2ae86396c6d0f989285275cbf908dee5e71f7 12-Oct-2016 Aurimas Liutikas <aurimas@google.com> Fix import statement in view|transition|animation packages.

This change also remove trailing whitespace.

Test: code still compiles
Change-Id: I7eff4546320d67d2bae58d31bad0625ea0791b8f
pellCheckerInfo.java
pellCheckerSession.java
pellCheckerSubtype.java
uggestionsInfo.java
49ca529a850e60482ddcc8c0762105b4aa10f35f 10-May-2016 Jeff Sharkey <jsharkey@android.com> Avoid caching services with missing binders.

When fetching system services early during boot, if the underlying
binder interface hasn't been published yet, we end up caching a
manager class that is broken for the remainder of the process
lifetime, and innocent downstream callers end up using the broken
cached manager.

Fix this by using an explicit exception to quickly abort manager
creation when the underlying binder is missing. The exception is
only used to skip the remainder of the manager creation, and it
doesn't actually crash the process.

Bug: 28634953
Change-Id: I0cb62261e6d6833660704b93a11185aa11a2ac97
extServicesManager.java
514c5ef8d5774d8820ed1bf90fe53af1606cf106 25-May-2016 Aurimas Liutikas <aurimas@google.com> Add missing @Deprecated annotations.

Add missing @Deprecated annotations for methods with @deprecated tag
in javadoc.

Change-Id: I35b78ccb97832d86b914c21a300444ba29e33844
pellCheckerSubtype.java
ad150ee271d9a0d27289407bd023924e23ec2b26 17-Mar-2016 Yohei Yukawa <yukawa@google.com> Remove an unnecessary int to String conversion.

This is a safe refactoring to remove an unnecessary int to String
conversion in TextServicesSettings.

Settings.Secure.SELECTED_SPELL_CHECKER_SUBTYPE is a integer value that
indicates subtype ID (or SpellCheckerSubtype#hashCode() if the subtype
ID is not specified), and we can just rely on
Settings.Secure#putIntForUser() rather than converting int to String
by ourselves then pass it to Settings.Secure#putStringForUser().

Note that this change is still OK for existing users because
Settings.Secure#putIntForUser() has been internally doing exactly the
same thing.

Bug: 27687531
Change-Id: Ibcf12746f1295c12bec095300ea7f6ced0a51d09
pellCheckerSubtype.java
85df698df50262602ee2ac622d5c46f630c18f02 09-Mar-2016 Yohei Yukawa <yukawa@google.com> Dump spell checker service info from TSMS.

This is a preparation CL to make TextServicesManagerService (TSMS)
encryption-aware.

This CL changes nothing except for the output of TSMS#dump().

To diagnose File-Based Encryption (FBE) related issues, it would be
useful if we can see if each spell checker service is encryption-aware
or not. To do that this CL updates TSMS#dump() so that it can include
the result of ResolveInfo#dump() as we have done in
InputMethodManagerService.

This CL also updates TSMS#dump() so that its output can be more
consistent with IMMS#dump().

Bug: 27456430
Change-Id: Ie2321278f1d52533a3cd74d98f1f84c950a8f6d0
pellCheckerInfo.java
868d19b93b1e20c802a001c7304f8bcac5fe5114 08-Dec-2015 Yohei Yukawa <yukawa@google.com> Use BCP-47 LanguageTag in IME/Spell-Checker.

The primary goal of this CL is to make it clear that BCP-47 is the
expected format to annotate locale information for each
{InputMethod, SpellCkecker}Subtype. In order to avoid possible
compatibility issues, this CL introduce a new "languageTag" attribute
instead of reusing existing "imeSubtypeMode" and "subtypeLocale"
attributes.

For IME developers, this CL changes nothing unless "languageTag"
attribute is specified. To summarize:

A: If only legacy locale-string is specified
(existing IMEs/Spell-Checkers fall into this category):
-> The system uses locale-string.

B: If only LanguageTag is specified:
-> The system uses LanguageTag.

C: If both locale-string and languageTag are specified:
-> The system uses LanguageTag. Legacy locale-string is ignored.

For application developers, there should be some follow-ups CLs because
even with this CL most likely they would still have to take care of
previous versions of Android where:
- Locale#forLanguageTag() (N/A in API Level 20 and prior)
- Locale#toLanguageTag() (N/A in API Level 20 and prior)
- InputMethodSubtype#getLocale() (Deprecated in N)
- SpellCheckerSubtype#getLocale() (Deprecated in N)
- InputMethodSubtype#getLanguageTag() (N/A in M and prior)
- SpellCheckerSubtype#getLanguageTag() (N/A in M and prior)
One idea would be is in the official support library to provide a utility
method that takes care of above tasks and just returns a Locale object.
If we had a utility method in the support library, probably not
returning a Locale object from #getLanguageTag() would make sense.

From performance point of view both existing legacy locale-string
attribute and new LanguageTag attribute are just String objects that
travel from XML manifest to system services to applications via IPCs.
Hence there are no performance implications except for having one more
String objects.

Bug: 22858221
Change-Id: I6db107ad2afc7709167f7c4e5d24bd589ac8bd70
pellCheckerInfo.java
pellCheckerSubtype.java
0894319162a2a1f4260805938d4807c4ffcbcb0f 05-Dec-2015 Yohei Yukawa <yukawa@google.com> Add subtypeId for SpellCheckerSubtype.

What this CL actually does is just copying the existing concept
"subtypeId" from InputMethodSubtype to SpellCheckerSubtype.

To recap, the underlying problem is that the system has stored only the
return value of SpellCheckerSubtype#hashCode() to track the set of
enabled subtypes, and SpellCheckerSubtype#hashCode() has been
implemented as Arrays.hashCode(new Object[] {locale, extraValue}), which
is problematic because:
- Spell checker developers cannot change "locale" and/or 'extraValue'
if they want to keep enabled subtypes enabled.
- Android Framework developers cannot change the hash function even
when new fields are added if they want to keep enabled subtypes
enabled.
InputMethodSubtype has had the same issue, and what we did was
introducing a concept "subtypeId", which allows IME developers to
specify the return value of #hashCode().

For instance, suppose that a subtype X has already been used in
production with the following attributes:
- locale: "tl_PH"
- extraValues: "key1=value1,key2=value2"

With "subtypeId", you can change the attributes of subtype X without
losing the enabled state of subtype X on devices as follows.
- locale: "fil_PH"
- extraValues: "key1=value1,key2=value2,key3=value3"
- subtypeId: Arrays.hashCode(new Object[] {
"tl_PH", "key1=value1,key2=value2"})

This CL also deprecates existing public constructor of
SpellCheckerSubtype, which was probably published as a public API by
mistake. Note that the constructor of SpellCheckerInfo class is @hide.
Also there is no public API that receives SpellCheckerSubtype object
instantiated by developers with custom data. Making developers to be
able to instantiate SpellCheckerSubtype does not make sense right now.

Bug: 11736916
Bug: 22858221
Change-Id: I98f05c1e9421c47a93769bc4a6fe11b678bc2509
pellCheckerInfo.java
pellCheckerSubtype.java
eae60ba5a4a39d59940e9749a4ad26281d016d03 04-Dec-2015 Yohei Yukawa <yukawa@google.com> Rewrite a fake language code "tl" in SpellChecker.

With following CLs, we already have a special rewrite rule of "tl" to
"fil" for IMEs that are targeting older versions of Android earlier than
Lollipop that did not support three letter language codes and used
"tl" (Tagalog) as the language string for "fil" (Filipino).
- 92280cd309b0f5967dd253280962d8581844db89 [1]
- ed65bc0c62ca99a118057db7ad54c4ccc14d52d0 [2]

[1]: I94f203bddceb9c87710cb187cc3cc0ee6d9092a5
[2]: Ica9cd2baac002c406f92331aadd7725d7424046a

With this CL, we have the same rewrite rule for spell checker services.

Bug: 20696126
Change-Id: I0af0f520a15337e33973391c9965364e3ae1ee4c
pellCheckerSubtype.java
658c29e86ef7c2d4c3a3fa8ebad5726d692e7c68 04-Dec-2015 Yohei Yukawa <yukawa@google.com> retry: Add @hide SpellCheckerSubtype#getLocaleObject().

This is the 2nd try of I39dc0c310158ad23ba6c987efce07deaf30ce693.

This is a mechanical refactoring with no behavior change.

With this CL, InputMethodSubtype and SpellCheckerSubtype have the same
getLocaleObject() hidden API, which makes it easy to share the logic in
subsequent CLs.

No behavior change is intended.

Bug: 11736916
Bug: 20696126
Bug: 22858221
Change-Id: I51be014c752b736a808e2b0d56e664941a218a2f
pellCheckerSubtype.java
80a918c3bd2de754027b7e7dffdd38ed138b69ce 04-Dec-2015 Yohei Yukawa <yukawa@google.com> Revert "Add @hide SpellCheckerSubtype#getLocaleObject()."

This reverts commit e3c761c87efdee7c28461559015fa76602d4605a.

Previous CL unintentionaly contained behavior change.

Change-Id: I1e350f224df815e991d9f42ac4145ecfc5c1c8b0
pellCheckerSubtype.java
e3c761c87efdee7c28461559015fa76602d4605a 04-Dec-2015 Yohei Yukawa <yukawa@google.com> Add @hide SpellCheckerSubtype#getLocaleObject().

This is a mechanical refactoring with no behavior change.

With this CL, InputMethodSubtype and SpellCheckerSubtype have the same
getLocaleObject() hidden API, which makes it easy to share the logic in
subsequent CLs.

Bug: 11736916
Bug: 20696126
Bug: 22858221
Change-Id: I39dc0c310158ad23ba6c987efce07deaf30ce693
pellCheckerSubtype.java
f4d225a4b502ef227788447eb1a5bb2902019c01 17-Jun-2015 Yohei Yukawa <yukawa@google.com> Fix debug log for SpellCheckerSessionListenerImpl#TASK_CANCEL

This is a follow up CL for Ifd05565ac0c057c46ec88a3fb9094c04934041d.

SpellCheckerSessionListenerImpl.taskToString(TASK_CANCEL) has
somehow returned "STATE_WAIT_CONNECTION" probably because of
a copy-and-paste mistake.

With this CL, it now returns "TASK_CANCEL", which is observable
only in debug log anyway though.

Bug: 21319642
Change-Id: Ib0bf11494bd3f210e6e8192fc25a33c65f7d313d
pellCheckerSession.java
f05ce728f95ce2a294981ee94167d42a35f50f8c 16-Jun-2015 Yohei Yukawa <yukawa@google.com> Fix a reference leak in SpellCheckerSessionListenerImpl.

The primary goal of this CL is to address a reference leak
in SpellCheckerSession.SpellCheckerSessionListenerImpl if
the SpellCheckerSession is closed too early. Here is the
minimum repro code.

TextServicesManager tsm = (TextServicesManager)
getSystemService(Context.TEXT_SERVICES_MANAGER_SERVICE);
SpellCheckerSession session = tsm.newSpellCheckerSession(,
Locale.ENGLISH, listener, false);
session.close();

In order to make the state management reliable and easier to
debug, this CL replaces SpellCheckerSessionListenerImpl#mOpened
with an explicit state number so that we can tell three different
"not open" cases: 1) not connected yet and not closed yet, 2)
closed before establishing connection, and 3) closed after
establishing connection.

Bug: 21319642
Change-Id: Ifd05565ac0c057c46ec88a3fb9094c04934041d7
pellCheckerSession.java
92adda2b616287146549d921dfe4c1199c0a4247 02-Jun-2015 Seigo Nonaka <nona@google.com> Use final in favor of initialization safety.

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
pellCheckerSession.java
6648dded69439eae6197450c1689b73b02493796 16-Jul-2014 Narayan Kamath <narayan@google.com> Fix broken locale related assumptions in TextServicesManager.

startsWith is a bogus check unless languages match. Also, don't
assume 2 letter languages.

bug: 10090157
Change-Id: I8adda61bddc465aac261c0ce2023fa9606affe1b
extServicesManager.java
bf655982f8b05ee6aa3a35cf4581a6849d846b25 09-Jul-2014 Yohei Yukawa <yukawa@google.com> Fix regressions in existing constructors of TextInfo

This is a follow up CL for Ib58ece68dee4c6187d469049,
which unexpectedly changed behavior of existing public
constructors of TextInfo class.

BUG: 15869548
Change-Id: If5837eb771d78cc24f4d68079009eb98a5641db7
extInfo.java
5d6b6f2892c90e95ef3bc650a245a5f2ca021d38 25-Jun-2014 Yohei Yukawa <yukawa@google.com> Allow TextInfo to store ParcelableSpans for TextService

This CL adds a new constructor of TextService so that spell
parcelable spans can be preserved in TextInfo. The primary usage
scenario is to provide locale information for spell checker
service.

BUG: 15869548
Change-Id: Ib58ece68dee4c6187d469049fca8c35a307c7a01
extInfo.java
bf9767cd8172de64693d7c88d29ff215f5c6c66d 30-May-2014 Keisuke Kuroyanagi <ksk@google.com> Null check for sentence level spell checking method.

Bug: 15334309
Change-Id: Id7dd440f7df37da76ae6381abe057ff92a76f4a1
pellCheckerSession.java
1eac6b7b0554eb126d113e49009208a1da5f23d9 09-Oct-2012 Satoshi Kataoka <satok@google.com> Don't update the text services locale in the main thread

This is a revised version of I9f8a81d3c9261a6cfc00292b9f5cb06053b9112d

Bug: 6761326
Change-Id: I43a0a65df6e4b6941bd0dca548c4af20b7e5bf58
extServicesManager.java
a45746efadd11bb7dfab026fb3c81a25fae74ca4 19-Jul-2012 Jeff Smith <whydoubt@yahoo.com> Fix several cases of broken droiddoc syntax
external issue 35214

patch contributed by Jeff Smith <whydoubt@yahoo.com>

Change-Id: I70dcee88a140699bf3e1ab369bed6dcd2fdd3d83
extServicesManager.java
17150cf91be1478e367c2ef5e4f5baaa66b487d0 30-May-2012 Satoshi Kataoka <satok@google.com> Fix locale in TextServicesManagerService

Bug: 6542210
Change-Id: I1670fac014beb834ec7c065ebf040d0ff3cf4161
extServicesManager.java
f927e17ae543b6edeae8200cc86c59c3ee740670 24-May-2012 satok <satok@google.com> Use correct spell check locale

Bug: 6542210
Change-Id: I414aa2321f30e396996d90fb8e90c1dbb3bb7b9e
pellCheckerSubtype.java
c7ee1b9369ffd7c21a70738056a82dc4238e7fc1 11-Apr-2012 satok <satok@google.com> Get rid of "isSentenceLevelSpellCheckSupported"

Bug: 6320351
Change-Id: I0e931b7248f8c65268b60af599c07432d58d2f1f
pellCheckerInfo.java
pellCheckerSession.java
f6710615c6cc1746d1ecc7aebc9afed457dcca41 30-Mar-2012 satok <satok@google.com> Supplement for I772164d9c67e95876c228efcce2

This should be merged with I1519258dd3ce95ad01

Change-Id: I48c5f86ff43f51913eb69d697bb1d75714b67aa3
pellCheckerInfo.java
pellCheckerSession.java
6183cd64a98a69ea247813c9ba0a07326c4bc1ae 26-Mar-2012 satok <satok@google.com> Take sentence-level spell checking APIs public

Bug: 6136149

Change-Id: I772164d9c67e95876c228efcce2356a81a06be4f
entenceSuggestionsInfo.java
pellCheckerSession.java
f76a50ce8fdc6aea22cabc77b2977a1a15a79630 09-Mar-2012 Ken Wakasa <kwakasa@google.com> Fix obvious typos under frameworks/base/core

Change-Id: Ia5fc3db1bb51824e7523885553be926bcc42d736
pellCheckerInfo.java
2428ccbbde3ca1f6643a4952a6ca881dab80ce45 08-Mar-2012 satok <satok@google.com> Fix spell checker framework

Change-Id: I281d031259dd220936832668e7a4556473ccb2ce
pellCheckerSession.java
8898358bfdf4693af02ad454e1deb8034379ce02 30-Nov-2011 satok <satok@google.com> Handle sentence level spell checking hidden APIs

Change-Id: Ia91f1771c0b8ef458dd5b023f4c372cc36a15657
entenceSuggestionsInfo.java
pellCheckerSession.java
d404fe110558bd2e1960b428db6a2ee8bfd040cd 21-Feb-2012 satok <satok@google.com> Refactor sentence level spell checking APIs

Support sentence level spell checking APIs: Step 1

Change-Id: I31c0b88e7885f33a0694ab60b8f2dbceeffe42f1
entenceSuggestionsInfo.aidl
entenceSuggestionsInfo.java
pellCheckerSession.java
uggestionsInfo.java
11299b1b8c49e53ed25dce916aa24282b2e15662 11-Jan-2012 satok <satok@google.com> Make public SpellChecker utilities

Bug: 5639238
Change-Id: Id7dd2263a6305cc6ba0cf8f4d8ad8fb0d39a48ff
pellCheckerSubtype.java
b5052de75736527549d7e537632777c6fec2e4f0 14-Dec-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of a80bab37 to master

Change-Id: Id71cc68a617e1ea0dd2f3932d454be6dba336eef
33b8ee509f36a0168c8ce5a9091b57ab936f4c13 14-Dec-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5756204: Crespo IME briefly appears shortened when...

...rotating to landscape

When doing spell checking in the same process as the spell checker, we
need to make sure it is still done asynchronously.

Putting this in I noticed quite a few threading issues in this code, so
I also addressed those (which became very obviously a problem with the
async stuff here now).

Also tweaked the service side to run spell checking at background priority.

Change-Id: I01bafe3bec6bceeca911d6bf2f61a486a2fd4c48
pellCheckerSession.java
0dc1f648a09b46c45190ba1ce7daecf7fada4347 18-Nov-2011 satok <satok@google.com> add sentence level spell checker hidden apis

Change-Id: If65c89044bed064fd01a554e33176f64f7c21c0f
pellCheckerSession.java
pellCheckerSubtype.java
uggestionsInfo.java
extServicesManager.java
060677f4686a93d92117d7d472e754423a368bdb 17-Nov-2011 satok <satok@google.com> Clean up the spell checker framework

Change-Id: I64c0d813e53a4ebf8d7e63463e36f6900f1aa7d3
pellCheckerSession.java
b4aff97c85e730857893742f73a082f6b8d139ca 02-Nov-2011 satok <satok@google.com> Introduce an API to cancel pending/running spell check tasks

Bug: 5554629

Change-Id: Ifd840ea13976813639a2ee259124a21d9bb56893
pellCheckerSession.java
74061ff90453c79ddbde468f630a41425da07710 02-Nov-2011 satok <satok@google.com> Fix a memory leak of a Binder in SpellCheckerService

Bug: 5499490

Change-Id: I167a3e9dfdd6edd06c6ad993fbff3a535c81b09c
pellCheckerSession.java
a17b3506234638ef257a6b751a97931dc347a21b 28-Oct-2011 satok <satok@google.com> Add a flag for recommended suggestions of the spell checker

Bug: 5356130
Change-Id: I8361a2750670dadd514d02dd24bf492ce42ff8fc
uggestionsInfo.java
a80838d9d63fcc9a83a9e7c99884e5b50316d4f0 20-Oct-2011 Jean Chalard <jchalard@google.com> Fix a warning from the binder.

This patch fixes the following warning:
W/Binder: The following Binder class should be static or
leaks might occur: android.view.textservice
.SpellCheckerSession.InternalListener

...in hope of removing a possible memory leaks.
However in my tests it does nothing at all for the memory leak
in bug 5461066, so it was probably unrelated.

Change-Id: Id776665e9483121d22cc91e8d2d9f32e3413ec96
Bugs: 5481376,5461066
pellCheckerSession.java
44b75030931d9c65c9e495a86d11d71da59b4429 14-Oct-2011 satok <satok@google.com> Add documents for the spell checker framework and the input method subtype

Bug: 4973788

Change-Id: I7e650f336ba1bb8949899e8b2355e6d492a2e4b2
pellCheckerSession.java
extServicesManager.java
9f48d6348d0a1c24e51d6526fb6b282997b22ae5 21-Sep-2011 Ken Wakasa <kwakasa@google.com> Fix comment

Change-Id: Ic0fd15d0b1b4d2c24eb177a6b22e0cc08ec1de99
extServicesManager.java
0158a1e9ffc5a43780d37bb7b6b964a39eae6e62 31-Aug-2011 satok <satok@google.com> Add a functionality to disable the spell checker

Change-Id: I1c2292f457d1911c149d594c175e638c92ad3917
extServicesManager.java
b669d6d8d8434918647b311612ebe8fd6f390b36 31-Aug-2011 satok <satok@google.com> Improve the fallback of the locale of the spell checker

Change-Id: I79655dd13e60f221b07346596fb05cf7d3d5cf7d
extServicesManager.java
7926f62a073ed3a27d870cfa88ade33013d8010b 26-Aug-2011 satok <satok@google.com> Fix newSpellCheckerSession

Change-Id: Ia862dba70666c69b81d18836561b7e9a1c2d81b3
extServicesManager.java
b387954a92eb6f15b7f49d5b946745f492a26363 26-Aug-2011 satok <satok@google.com> Support system locale as the locale of the spell checkers

Bug: 5212035

Change-Id: I18d27e54b936cc7f4d6cc3c7100bce57f77f8f9f
extServicesManager.java
fbedf1a3978d5dfc4a886e4c7107d4bc1923f740 26-Aug-2011 satok <satok@google.com> Fix NPE in setCurrentSpellCheckerSubtype

Change-Id: I9fce999f91dcccd2f877a0326c4f2e3ac9024f85
extServicesManager.java
2388a7ba6218f44400ee78016282cb96c02dfc54 26-Aug-2011 satok <satok@google.com> Add getServiceInfo to SpellCheckerInfo

Change-Id: I11634b88cf65182465869b131cfdcc8815e74965
pellCheckerInfo.java
c714531952fe1c22cae77631aa25dc7441b2b878 26-Aug-2011 satok <satok@google.com> Add getDisplayName to SpellCheckerSubtype

Change-Id: Ic4d1f494a1fb67eda73ffc8e3be1caf690a602ce
pellCheckerSubtype.java
3cb5b39a0e63d98c4e7b47e9a5b5758e9d4024bd 26-Aug-2011 satok <satok@google.com> Fix setCurrentSpellCheckerSubtype

Change-Id: Ib42a3b4377b8700ceaf4b7e13150848464d073c1
extServicesManager.java
a33c4fc5bed76727f1e06e522e0136101a2304cd 25-Aug-2011 satok <satok@google.com> Add functions to enable / disable spell checker

Bug: 5057977

Change-Id: I2b27bd5f55feb305368034d7e95f83257ac4b3e6
extServicesManager.java
f874c4f93437cbbef7a915a36d5abb448e1e3209 25-Aug-2011 Gilles Debunne <debunne@google.com> Merge "Spell checking in TextViews"
ada8c4e6a3da96a795f39a1028d448eb7aebfab3 23-Aug-2011 satok <satok@google.com> Add functions to set / get SpellCheckerSubtype

Change-Id: I977326879fe201c4dee4a87da361217175eb6041
extServicesManager.java
6435a56a8c02de98befcc8cd743b2b638cffb327 05-Aug-2011 Gilles Debunne <debunne@google.com> Spell checking in TextViews

New UX interactions (the Paste action is no longer displayed after a delay)
suggestionEnabled flag replaced by existing input type flag.
removeSpans fixed in SpannableStringBuilder to always send notifications
SuggestionSpan handled by TextView instead of SpannableStringBuilder

New span update algorithm to correctly handle edition around word boundaries.

Change-Id: I52c01172f19e595fa512e285a565a3fd97c3c50e
uggestionsInfo.java
03b2ea1102d9e3e9f189173878706ab04533eea3 03-Aug-2011 satok <satok@google.com> Support xml configuration file for the spell checker and add the spell checker subtype

Change-Id: I74715855525fc0a1282238d593ad37aefd42bfc3
pellCheckerInfo.java
pellCheckerSubtype.aidl
pellCheckerSubtype.java
5357806980269d846a15c845a6fcc0384fb18860 03-Aug-2011 satok <satok@google.com> API cleanup for the spell checker framework

Bug: 5110151

- Add a bundle to an argment of newSpellCheckerSession
- Expose SpellCheckerSessionImpl in SpellCheckerService
- Fix function names
- etc

Change-Id: Ia8ec783b7b4d5fcd18389854b445fc10fc502297
pellCheckerSession.java
extServicesManager.java
c66009169622ecdb65d887987feaf91fff091af8 03-Aug-2011 satok <satok@google.com> Rename API name "RESULT_ATTR_LOOKS_TYPO"

Change-Id: I42ab73513de20ea9a39af734b358094269ca7fe4
uggestionsInfo.java
9407c601eacc0a542c45b0b2e9a9353ab0f0193e 02-Aug-2011 satok <satok@google.com> Merge "Move SpellCheckerSession"
aafd955fa8f5c31c511763c0f826b6d7acf15b9c 02-Aug-2011 satok <satok@google.com> Move SpellCheckerSession

SpellCheckerSession should be in android.view.textservice because this class will be used directly by users.

Change-Id: I0df6d7958adda421312b5f641ac4459ca4739cc9
pellCheckerSession.java
extServicesManager.java
5b9b5a9553a0276dc6b7f1f458c8d4ed03227988 01-Aug-2011 satok <satok@google.com> Change SpellCheckerInfo IPC inputs to String

Change-Id: I4c3f3c7aa7587e3f2582b43702108fa78f37ec54
extServicesManager.java
046cbe750ba6c18c8a37392896d13ecdf4e00511 01-Aug-2011 satok <satok@google.com> Add a method to set the current spell checker

Change-Id: I0e1fbe99538c873eed3723fb419bbfa626dec509
extServicesManager.java
da317ef68603dc7649f98bda495267973825e7fa 26-Jul-2011 satok <satok@google.com> [step9] Add logging code for text services

Change-Id: I4dae847951848cca85bcb73f47c509ce23327334
extServicesManager.java
562ab585f9e413d9696ee250e5ec02f95889a157 25-Jul-2011 satok <satok@google.com> [Step 2] Add apis for spell checker settings

Bug: 5057977

Change-Id: I4617b7f1487349c5de385e7392dbc39c69fa2ebc
pellCheckerInfo.java
extServicesManager.java
1bedd99761e3d2acdac947d641e7fee5db556141 23-Jul-2011 satok <satok@google.com> Tweak APIs for SpellChecker

1. Move getSupellcheckerInfo to SpellCheckerSession
2. Change the interface of getSpellCheckerSession
3. Remove a flag in SuggestionsInfo

Change-Id: I3debe09e213fc0ab74618eb3504383f2a9447fd9
uggestionsInfo.java
extServicesManager.java
3de3d6ad584d6f08f50aac1b04bc0fe6cb02fb09 22-Jul-2011 satok <satok@google.com> Fix the vendor build.

Change-Id: I856057c9418fd5194d78e34c4496bd43c520546f
uggestionsInfo.java
988323c57bd25a58f05dfa492d9b9c8ab62c5153 22-Jun-2011 satok <satok@google.com> Create TextServiceManager and SpellCheckerService

Bug: 4176026

This CL inherits https://android-git.corp.google.com/g/112600

Spec of TextServiceManager
- Chooses the most applicable TextService(e.g. SpellCheckerService, WordBreakIteratorService..)
for each locale

Spec of SpellCheckerService
- Returns whether the given string is a correct word or not
- Returns Suggestions for the given string

Change-Id: Iaa425c7915fe70767ad0b17bf6c6fbcd2a1200b2
pellCheckerInfo.aidl
pellCheckerInfo.java
uggestionsInfo.aidl
uggestionsInfo.java
extInfo.aidl
extInfo.java
extServicesManager.java