summaryrefslogtreecommitdiffstats
path: root/core/java/android/inputmethodservice
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/inputmethodservice')
-rw-r--r--core/java/android/inputmethodservice/ExtractEditLayout.java172
-rw-r--r--core/java/android/inputmethodservice/InputMethodService.java9
2 files changed, 3 insertions, 178 deletions
diff --git a/core/java/android/inputmethodservice/ExtractEditLayout.java b/core/java/android/inputmethodservice/ExtractEditLayout.java
index e902443..37ca4b4 100644
--- a/core/java/android/inputmethodservice/ExtractEditLayout.java
+++ b/core/java/android/inputmethodservice/ExtractEditLayout.java
@@ -16,30 +16,19 @@
package android.inputmethodservice;
-import com.android.internal.view.menu.MenuBuilder;
-import com.android.internal.view.menu.MenuPopupHelper;
-
import android.content.Context;
import android.util.AttributeSet;
-import android.view.ActionMode;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.accessibility.AccessibilityEvent;
import android.widget.Button;
import android.widget.LinearLayout;
/**
- * ExtractEditLayout provides an ActionMode presentation for the
- * limited screen real estate in extract mode.
+ * ExtractEditLayout provides an ActionMode presentation for the limited screen real estate in
+ * extract mode.
*
* @hide
*/
public class ExtractEditLayout extends LinearLayout {
- ExtractActionMode mActionMode;
Button mExtractActionButton;
- Button mEditButton;
public ExtractEditLayout(Context context) {
super(context);
@@ -50,165 +39,8 @@ public class ExtractEditLayout extends LinearLayout {
}
@Override
- public ActionMode startActionModeForChild(View sourceView, ActionMode.Callback cb) {
- final ExtractActionMode mode = new ExtractActionMode(cb);
- if (mode.dispatchOnCreate()) {
- mode.invalidate();
- mExtractActionButton.setVisibility(INVISIBLE);
- mEditButton.setVisibility(VISIBLE);
- mActionMode = mode;
- sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
- return mode;
- }
- return null;
- }
-
- /**
- * @return true if an action mode is currently active.
- */
- public boolean isActionModeStarted() {
- return mActionMode != null;
- }
-
- /**
- * Finishes a possibly started action mode.
- */
- public void finishActionMode() {
- if (mActionMode != null) {
- mActionMode.finish();
- }
- }
-
- @Override
public void onFinishInflate() {
super.onFinishInflate();
mExtractActionButton = (Button) findViewById(com.android.internal.R.id.inputExtractAction);
- mEditButton = (Button) findViewById(com.android.internal.R.id.inputExtractEditButton);
- mEditButton.setOnClickListener(new OnClickListener() {
- public void onClick(View clicked) {
- if (mActionMode != null) {
- new MenuPopupHelper(getContext(), mActionMode.mMenu, clicked).show();
- }
- }
- });
- }
-
- private class ExtractActionMode extends ActionMode implements MenuBuilder.Callback {
- private ActionMode.Callback mCallback;
- MenuBuilder mMenu;
-
- public ExtractActionMode(Callback cb) {
- mMenu = new MenuBuilder(getContext());
- mMenu.setCallback(this);
- mCallback = cb;
- }
-
- @Override
- public void setTitle(CharSequence title) {
- // Title will not be shown.
- }
-
- @Override
- public void setTitle(int resId) {
- // Title will not be shown.
- }
-
- @Override
- public void setSubtitle(CharSequence subtitle) {
- // Subtitle will not be shown.
- }
-
- @Override
- public void setSubtitle(int resId) {
- // Subtitle will not be shown.
- }
-
- @Override
- public boolean isTitleOptional() {
- // Not only is it optional, it will *never* be shown.
- return true;
- }
-
- @Override
- public void setCustomView(View view) {
- // Custom view is not supported here.
- }
-
- @Override
- public void invalidate() {
- mMenu.stopDispatchingItemsChanged();
- try {
- mCallback.onPrepareActionMode(this, mMenu);
- } finally {
- mMenu.startDispatchingItemsChanged();
- }
- }
-
- public boolean dispatchOnCreate() {
- mMenu.stopDispatchingItemsChanged();
- try {
- return mCallback.onCreateActionMode(this, mMenu);
- } finally {
- mMenu.startDispatchingItemsChanged();
- }
- }
-
- @Override
- public void finish() {
- if (mActionMode != this) {
- // Not the active action mode - no-op
- return;
- }
-
- mCallback.onDestroyActionMode(this);
- mCallback = null;
-
- mMenu.close();
-
- mExtractActionButton.setVisibility(VISIBLE);
- mEditButton.setVisibility(INVISIBLE);
-
- sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
-
- mActionMode = null;
- }
-
- @Override
- public Menu getMenu() {
- return mMenu;
- }
-
- @Override
- public CharSequence getTitle() {
- return null;
- }
-
- @Override
- public CharSequence getSubtitle() {
- return null;
- }
-
- @Override
- public View getCustomView() {
- return null;
- }
-
- @Override
- public MenuInflater getMenuInflater() {
- return new MenuInflater(getContext());
- }
-
- @Override
- public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) {
- if (mCallback != null) {
- return mCallback.onActionItemClicked(this, item);
- }
- return false;
- }
-
- @Override
- public void onMenuModeChange(MenuBuilder menu) {
- }
-
}
}
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index a7afa91..ae74b9a 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -1797,16 +1797,9 @@ public class InputMethodService extends AbstractInputMethodService {
private void requestShowSelf(int flags) {
mImm.showSoftInputFromInputMethod(mToken, flags);
}
-
+
private boolean handleBack(boolean doIt) {
if (mShowInputRequested) {
- if (isExtractViewShown() && mExtractView instanceof ExtractEditLayout) {
- ExtractEditLayout extractEditLayout = (ExtractEditLayout) mExtractView;
- if (extractEditLayout.isActionModeStarted()) {
- if (doIt) extractEditLayout.finishActionMode();
- return true;
- }
- }
// If the soft input area is shown, back closes it and we
// consume the back key.
if (doIt) requestHideSelf(0);