diff options
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/inputmethodservice/ExtractEditLayout.java | 172 | ||||
-rw-r--r-- | core/java/android/inputmethodservice/InputMethodService.java | 9 |
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); |