Loading core/java/android/inputmethodservice/ExtractEditLayout.java +2 −170 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -49,166 +38,9 @@ public class ExtractEditLayout extends LinearLayout { super(context, attrs); } @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) { } } } core/java/android/inputmethodservice/InputMethodService.java +1 −8 Original line number Diff line number Diff line Loading @@ -1800,13 +1800,6 @@ public class InputMethodService extends AbstractInputMethodService { 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); Loading core/res/res/layout/input_method_extract_view.xml +8 −18 Original line number Diff line number Diff line Loading @@ -30,8 +30,7 @@ android:scrollbars="vertical" android:gravity="top" android:minLines="1" android:inputType="text" > android:inputType="text"> </android.inputmethodservice.ExtractEditText> <FrameLayout Loading @@ -39,22 +38,13 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:paddingStart="8dip" android:paddingEnd="8dip" > android:paddingEnd="8dip"> <android.inputmethodservice.ExtractButton android:id="@+id/inputExtractAction" <android.inputmethodservice.ExtractButton android:id="@+id/inputExtractAction" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> <android.inputmethodservice.ExtractButton android:id="@+id/inputExtractEditButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/extract_edit_menu_button" android:visibility="invisible" /> android:layout_gravity="center"/> </FrameLayout> </android.inputmethodservice.ExtractEditLayout> core/res/res/values-af/strings.xml +0 −1 Original line number Diff line number Diff line Loading @@ -1230,7 +1230,6 @@ <string name="storage_usb_drive" msgid="6261899683292244209">"USB-datastokkie"</string> <string name="storage_usb_drive_label" msgid="4501418548927759953">"<xliff:g id="MANUFACTURER">%s</xliff:g>-USB-datastokkie"</string> <string name="storage_usb" msgid="3017954059538517278">"USB-berging"</string> <string name="extract_edit_menu_button" msgid="8940478730496610137">"Redigeer"</string> <string name="data_usage_warning_title" msgid="1955638862122232342">"Dataverbruik-waarskuwing"</string> <string name="data_usage_warning_body" msgid="2814673551471969954">"Raak gebruik/instellings te sien."</string> <string name="data_usage_3g_limit_title" msgid="4361523876818447683">"2G-3G-datalimiet bereik"</string> Loading core/res/res/values-am/strings.xml +0 −1 Original line number Diff line number Diff line Loading @@ -1230,7 +1230,6 @@ <string name="storage_usb_drive" msgid="6261899683292244209">"የዩኤስቢ አንጻፊ"</string> <string name="storage_usb_drive_label" msgid="4501418548927759953">"የ<xliff:g id="MANUFACTURER">%s</xliff:g> ዩኤስቢ አንጻፊ"</string> <string name="storage_usb" msgid="3017954059538517278">"የUSB ማከማቻ"</string> <string name="extract_edit_menu_button" msgid="8940478730496610137">"አርትዕ"</string> <string name="data_usage_warning_title" msgid="1955638862122232342">"የውሂብ አጠቃቀም ማስጠንቀቂየ"</string> <string name="data_usage_warning_body" msgid="2814673551471969954">"ቅንብሮችን እና አጠቃቀምን ለማየት ይንኩ።"</string> <string name="data_usage_3g_limit_title" msgid="4361523876818447683">"የ2ጂ-3ጂ ውሂብ ገደብ ላይ ተደርሷል"</string> Loading Loading
core/java/android/inputmethodservice/ExtractEditLayout.java +2 −170 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -49,166 +38,9 @@ public class ExtractEditLayout extends LinearLayout { super(context, attrs); } @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) { } } }
core/java/android/inputmethodservice/InputMethodService.java +1 −8 Original line number Diff line number Diff line Loading @@ -1800,13 +1800,6 @@ public class InputMethodService extends AbstractInputMethodService { 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); Loading
core/res/res/layout/input_method_extract_view.xml +8 −18 Original line number Diff line number Diff line Loading @@ -30,8 +30,7 @@ android:scrollbars="vertical" android:gravity="top" android:minLines="1" android:inputType="text" > android:inputType="text"> </android.inputmethodservice.ExtractEditText> <FrameLayout Loading @@ -39,22 +38,13 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:paddingStart="8dip" android:paddingEnd="8dip" > android:paddingEnd="8dip"> <android.inputmethodservice.ExtractButton android:id="@+id/inputExtractAction" <android.inputmethodservice.ExtractButton android:id="@+id/inputExtractAction" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> <android.inputmethodservice.ExtractButton android:id="@+id/inputExtractEditButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/extract_edit_menu_button" android:visibility="invisible" /> android:layout_gravity="center"/> </FrameLayout> </android.inputmethodservice.ExtractEditLayout>
core/res/res/values-af/strings.xml +0 −1 Original line number Diff line number Diff line Loading @@ -1230,7 +1230,6 @@ <string name="storage_usb_drive" msgid="6261899683292244209">"USB-datastokkie"</string> <string name="storage_usb_drive_label" msgid="4501418548927759953">"<xliff:g id="MANUFACTURER">%s</xliff:g>-USB-datastokkie"</string> <string name="storage_usb" msgid="3017954059538517278">"USB-berging"</string> <string name="extract_edit_menu_button" msgid="8940478730496610137">"Redigeer"</string> <string name="data_usage_warning_title" msgid="1955638862122232342">"Dataverbruik-waarskuwing"</string> <string name="data_usage_warning_body" msgid="2814673551471969954">"Raak gebruik/instellings te sien."</string> <string name="data_usage_3g_limit_title" msgid="4361523876818447683">"2G-3G-datalimiet bereik"</string> Loading
core/res/res/values-am/strings.xml +0 −1 Original line number Diff line number Diff line Loading @@ -1230,7 +1230,6 @@ <string name="storage_usb_drive" msgid="6261899683292244209">"የዩኤስቢ አንጻፊ"</string> <string name="storage_usb_drive_label" msgid="4501418548927759953">"የ<xliff:g id="MANUFACTURER">%s</xliff:g> ዩኤስቢ አንጻፊ"</string> <string name="storage_usb" msgid="3017954059538517278">"የUSB ማከማቻ"</string> <string name="extract_edit_menu_button" msgid="8940478730496610137">"አርትዕ"</string> <string name="data_usage_warning_title" msgid="1955638862122232342">"የውሂብ አጠቃቀም ማስጠንቀቂየ"</string> <string name="data_usage_warning_body" msgid="2814673551471969954">"ቅንብሮችን እና አጠቃቀምን ለማየት ይንኩ።"</string> <string name="data_usage_3g_limit_title" msgid="4361523876818447683">"የ2ጂ-3ጂ ውሂብ ገደብ ላይ ተደርሷል"</string> Loading