summaryrefslogtreecommitdiff
path: root/core/java/android/inputmethodservice/AbstractInputMethodService.java
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:45 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:45 -0800
commitd83a98f4ce9cfa908f5c54bbd70f03eec07e7553 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /core/java/android/inputmethodservice/AbstractInputMethodService.java
parent076357b8567458d4b6dfdcf839ef751634cd2bfb (diff)
auto import from //depot/cupcake/@135843
Diffstat (limited to 'core/java/android/inputmethodservice/AbstractInputMethodService.java')
-rw-r--r--core/java/android/inputmethodservice/AbstractInputMethodService.java180
1 files changed, 0 insertions, 180 deletions
diff --git a/core/java/android/inputmethodservice/AbstractInputMethodService.java b/core/java/android/inputmethodservice/AbstractInputMethodService.java
deleted file mode 100644
index eedcc354e613..000000000000
--- a/core/java/android/inputmethodservice/AbstractInputMethodService.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (C) 2007-2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package android.inputmethodservice;
-
-import android.app.Service;
-import android.content.Intent;
-import android.os.IBinder;
-import android.view.KeyEvent;
-import android.view.MotionEvent;
-import android.view.inputmethod.InputMethod;
-import android.view.inputmethod.InputMethodSession;
-
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-
-/**
- * AbstractInputMethodService provides a abstract base class for input methods.
- * Normal input method implementations will not derive from this directly,
- * instead building on top of {@link InputMethodService} or another more
- * complete base class. Be sure to read {@link InputMethod} for more
- * information on the basics of writing input methods.
- *
- * <p>This class combines a Service (representing the input method component
- * to the system with the InputMethod interface that input methods must
- * implement. This base class takes care of reporting your InputMethod from
- * the service when clients bind to it, but provides no standard implementation
- * of the InputMethod interface itself. Derived classes must implement that
- * interface.
- */
-public abstract class AbstractInputMethodService extends Service
- implements KeyEvent.Callback {
- private InputMethod mInputMethod;
-
- /**
- * Base class for derived classes to implement their {@link InputMethod}
- * interface. This takes care of basic maintenance of the input method,
- * but most behavior must be implemented in a derived class.
- */
- public abstract class AbstractInputMethodImpl implements InputMethod {
- /**
- * Instantiate a new client session for the input method, by calling
- * back to {@link AbstractInputMethodService#onCreateInputMethodSessionInterface()
- * AbstractInputMethodService.onCreateInputMethodSessionInterface()}.
- */
- public void createSession(SessionCallback callback) {
- callback.sessionCreated(onCreateInputMethodSessionInterface());
- }
-
- /**
- * Take care of enabling or disabling an existing session by calling its
- * {@link AbstractInputMethodSessionImpl#revokeSelf()
- * AbstractInputMethodSessionImpl.setEnabled()} method.
- */
- public void setSessionEnabled(InputMethodSession session, boolean enabled) {
- ((AbstractInputMethodSessionImpl)session).setEnabled(enabled);
- }
-
- /**
- * Take care of killing an existing session by calling its
- * {@link AbstractInputMethodSessionImpl#revokeSelf()
- * AbstractInputMethodSessionImpl.revokeSelf()} method.
- */
- public void revokeSession(InputMethodSession session) {
- ((AbstractInputMethodSessionImpl)session).revokeSelf();
- }
- }
-
- /**
- * Base class for derived classes to implement their {@link InputMethodSession}
- * interface. This takes care of basic maintenance of the session,
- * but most behavior must be implemented in a derived class.
- */
- public abstract class AbstractInputMethodSessionImpl implements InputMethodSession {
- boolean mEnabled = true;
- boolean mRevoked;
-
- /**
- * Check whether this session has been enabled by the system. If not
- * enabled, you should not execute any calls on to it.
- */
- public boolean isEnabled() {
- return mEnabled;
- }
-
- /**
- * Check whether this session has been revoked by the system. Revoked
- * session is also always disabled, so there is generally no need to
- * explicitly check for this.
- */
- public boolean isRevoked() {
- return mRevoked;
- }
-
- /**
- * Change the enabled state of the session. This only works if the
- * session has not been revoked.
- */
- public void setEnabled(boolean enabled) {
- if (!mRevoked) {
- mEnabled = enabled;
- }
- }
-
- /**
- * Revoke the session from the client. This disabled the session, and
- * prevents it from ever being enabled again.
- */
- public void revokeSelf() {
- mRevoked = true;
- mEnabled = false;
- }
-
- /**
- * Take care of dispatching incoming key events to the appropriate
- * callbacks on the service, and tell the client when this is done.
- */
- public void dispatchKeyEvent(int seq, KeyEvent event, EventCallback callback) {
- boolean handled = event.dispatch(AbstractInputMethodService.this);
- if (callback != null) {
- callback.finishedEvent(seq, handled);
- }
- }
-
- /**
- * Take care of dispatching incoming trackball events to the appropriate
- * callbacks on the service, and tell the client when this is done.
- */
- public void dispatchTrackballEvent(int seq, MotionEvent event, EventCallback callback) {
- boolean handled = onTrackballEvent(event);
- if (callback != null) {
- callback.finishedEvent(seq, handled);
- }
- }
- }
-
- /**
- * Called by the framework during initialization, when the InputMethod
- * interface for this service needs to be created.
- */
- public abstract AbstractInputMethodImpl onCreateInputMethodInterface();
-
- /**
- * Called by the framework when a new InputMethodSession interface is
- * needed for a new client of the input method.
- */
- public abstract AbstractInputMethodSessionImpl onCreateInputMethodSessionInterface();
-
- /**
- * Implement this to handle {@link android.os.Binder#dump Binder.dump()}
- * calls on your input method.
- */
- protected void dump(FileDescriptor fd, PrintWriter fout, String[] args) {
- }
-
- @Override
- final public IBinder onBind(Intent intent) {
- if (mInputMethod == null) {
- mInputMethod = onCreateInputMethodInterface();
- }
- return new IInputMethodWrapper(this, mInputMethod);
- }
-
- public boolean onTrackballEvent(MotionEvent event) {
- return false;
- }
-}