diff options
author | satok <satok@google.com> | 2011-10-14 14:48:59 +0900 |
---|---|---|
committer | satok <satok@google.com> | 2011-10-18 20:28:23 +0900 |
commit | 44b75030931d9c65c9e495a86d11d71da59b4429 (patch) | |
tree | 63ad85a89a6fb70ac4eeb6f9deb9e8cc3878b4d1 /core/java/android/view/textservice | |
parent | 840b8a678537519c27ddf2f818494eaa20a135d4 (diff) | |
download | frameworks_base-44b75030931d9c65c9e495a86d11d71da59b4429.zip frameworks_base-44b75030931d9c65c9e495a86d11d71da59b4429.tar.gz frameworks_base-44b75030931d9c65c9e495a86d11d71da59b4429.tar.bz2 |
Add documents for the spell checker framework and the input method subtype
Bug: 4973788
Change-Id: I7e650f336ba1bb8949899e8b2355e6d492a2e4b2
Diffstat (limited to 'core/java/android/view/textservice')
-rw-r--r-- | core/java/android/view/textservice/SpellCheckerSession.java | 45 | ||||
-rw-r--r-- | core/java/android/view/textservice/TextServicesManager.java | 25 |
2 files changed, 70 insertions, 0 deletions
diff --git a/core/java/android/view/textservice/SpellCheckerSession.java b/core/java/android/view/textservice/SpellCheckerSession.java index b940b80..793f514 100644 --- a/core/java/android/view/textservice/SpellCheckerSession.java +++ b/core/java/android/view/textservice/SpellCheckerSession.java @@ -34,6 +34,51 @@ import java.util.Queue; /** * The SpellCheckerSession interface provides the per client functionality of SpellCheckerService. + * + * + * <a name="Applications"></a> + * <h3>Applications</h3> + * + * <p>In most cases, applications that are using the standard + * {@link android.widget.TextView} or its subclasses will have little they need + * to do to work well with spell checker services. The main things you need to + * be aware of are:</p> + * + * <ul> + * <li> Properly set the {@link android.R.attr#inputType} in your editable + * text views, so that the spell checker will have enough context to help the + * user in editing text in them. + * </ul> + * + * <p>For the rare people amongst us writing client applications that use the spell checker service + * directly, you will need to use {@link #getSuggestions(TextInfo, int)} or + * {@link #getSuggestions(TextInfo[], int, boolean)} for obtaining results from the spell checker + * service by yourself.</p> + * + * <h3>Security</h3> + * + * <p>There are a lot of security issues associated with spell checkers, + * since they could monitor all the text being sent to them + * through, for instance, {@link android.widget.TextView}. + * The Android spell checker framework also allows + * arbitrary third party spell checkers, so care must be taken to restrict their + * selection and interactions.</p> + * + * <p>Here are some key points about the security architecture behind the + * spell checker framework:</p> + * + * <ul> + * <li>Only the system is allowed to directly access a spell checker framework's + * {@link android.service.textservice.SpellCheckerService} interface, via the + * {@link android.Manifest.permission#BIND_TEXT_SERVICE} permission. This is + * enforced in the system by not binding to a spell checker service that does + * not require this permission. + * + * <li>The user must explicitly enable a new spell checker in settings before + * they can be enabled, to confirm with the system that they know about it + * and want to make it available for use. + * </ul> + * */ public class SpellCheckerSession { private static final String TAG = SpellCheckerSession.class.getSimpleName(); diff --git a/core/java/android/view/textservice/TextServicesManager.java b/core/java/android/view/textservice/TextServicesManager.java index b06c112..69f88a5 100644 --- a/core/java/android/view/textservice/TextServicesManager.java +++ b/core/java/android/view/textservice/TextServicesManager.java @@ -35,6 +35,31 @@ import java.util.Locale; * * The user can change the current text services in Settings. And also applications can specify * the target text services. + * + * <h3>Architecture Overview</h3> + * + * <p>There are three primary parties involved in the text services + * framework (TSF) architecture:</p> + * + * <ul> + * <li> The <strong>text services manager</strong> as expressed by this class + * is the central point of the system that manages interaction between all + * other parts. It is expressed as the client-side API here which exists + * in each application context and communicates with a global system service + * that manages the interaction across all processes. + * <li> A <strong>text service</strong> implements a particular + * interaction model allowing the client application to retrieve information of text. + * The system binds to the current text service that is in use, causing it to be created and run. + * <li> Multiple <strong>client applications</strong> arbitrate with the text service + * manager for connections to text services. + * </ul> + * + * <h3>Text services sessions</h3> + * <ul> + * <li>The <strong>spell checker session</strong> is one of the text services. + * {@link android.view.textservice.SpellCheckerSession}</li> + * </ul> + * */ public final class TextServicesManager { private static final String TAG = TextServicesManager.class.getSimpleName(); |